From acc126ce0c3da7ed1acb2a198514fe2211a1117a Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Fri, 7 Aug 2026 19:35:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9F=BA=E6=9C=AC=E7=A8=B3=E5=AE=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .transpyc_cache/067c78e9f121dce3.pyi | 136 ---- .transpyc_cache/06f53cc594b4ac6c.pyi | 109 --- .transpyc_cache/bbdf3bbd4c3bc28c.pyi | 138 ---- .transpyc_cache/c9f4be41ca1cc2b4.pyi | 22 - .transpyc_cache/f5522571bcce7bcb.pyi | 100 --- .transpyc_cache/f6b51804a0ba8ff0.pyi | 192 ----- TODO | 7 +- .../.tpv_build/temp/08/08ea5281873244fd.vpi | 15 - .../temp/22/22bc0df83b3f0e62.deps.txt | 1 - .../temp/2b/2b77d783c41d21d1.deps.txt | 1 - .../.tpv_build/temp/2b/2b77d783c41d21d1.vpi | 41 - .../temp/32/32cfd766982bc6e7.deps.txt | 1 - .../temp/43/4337fb260448bbe2.deps.txt | 1 - .../.tpv_build/temp/_sha1_map.txt | 10 +- .../temp/b3/b370d93b74bf55cc.deps.txt | 1 - .../.tpv_build/temp/b3/b370d93b74bf55cc.vpi | 64 -- .../temp/b5/b543bc1dfb592119.deps.txt | 1 - .../temp/de/de3357cb9182715e.deps.txt | 1 - .../temp/f5/f5d13f1be34f417a.deps.txt | 1 - .../temp/f9/f9d023d1df2bc9c5.deps.txt | 1 - .../.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi | 97 --- .../temp/ff/ffaf70367668b227.deps.txt | 1 - .../.tpv_build/temp/ff/ffaf70367668b227.vpi | 54 -- Test/ArgparseTest/App/main.vp | 3 +- .../output/08ea5281873244fd.deps.json | 1 - .../output/2b77d783c41d21d1.deps.json | 1 - .../output/748d0424e8976fa0.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 430556 -> 434276 bytes .../output/aa246c6e6aa30484.deps.json | 2 +- .../output/b370d93b74bf55cc.deps.json | 1 - .../output/b9a33a5027b4571b.deps.json | 1 - .../output/bbdf3bbd4c3bc28c.deps.json | 2 +- .../output/c9f4be41ca1cc2b4.deps.json | 2 +- .../output/f9d023d1df2bc9c5.deps.json | 1 - .../output/fc980acec33d69a7.deps.json | 2 +- .../output/ffaf70367668b227.deps.json | 1 - .../temp/08ea5281873244fd.doc.json | 1 - Test/ArgparseTest/temp/08ea5281873244fd.pyi | 19 - Test/ArgparseTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/ArgparseTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 .../temp/2b77d783c41d21d1.stub.ll.dep | 1 - Test/ArgparseTest/temp/2b77d783c41d21d1.vpi | 46 -- Test/ArgparseTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/ArgparseTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/ArgparseTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/ArgparseTest/temp/_phase1_manifest.json | 2 +- Test/ArgparseTest/temp/_sha1_map.txt | 26 +- Test/ArgparseTest/temp/aba439b7882ad9d6.pyi | 67 -- .../temp/aba439b7882ad9d6.stub.ll.dep | 1 - .../temp/b370d93b74bf55cc.stub.ll.dep | 1 - Test/ArgparseTest/temp/b370d93b74bf55cc.vpi | 66 -- Test/ArgparseTest/temp/b8c66c8ff44eb874.pyi | 46 -- .../temp/b8c66c8ff44eb874.stub.ll.dep | 1 - .../temp/b9a33a5027b4571b.doc.json | 1 - Test/ArgparseTest/temp/b9a33a5027b4571b.vpi | 19 - Test/ArgparseTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/ArgparseTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/ArgparseTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/ArgparseTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/ArgparseTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/ArgparseTest/temp/ffaf70367668b227.vpi | 59 -- .../.tpv_build/temp/08/0853acdbdfc9b27c.vpi | 18 - Test/AstTest/.tpv_build/temp/_sha1_map.txt | 31 +- Test/AstTest/App/main.vp | 22 +- .../AstTest/output/067c78e9f121dce3.deps.json | 2 +- .../AstTest/output/06f53cc594b4ac6c.deps.json | 2 +- .../AstTest/output/0853acdbdfc9b27c.deps.json | 2 +- .../AstTest/output/0c67644125bea0fd.deps.json | 2 +- .../AstTest/output/22bc0df83b3f0e62.deps.json | 1 - .../AstTest/output/28de517e3820658a.deps.json | 2 +- .../AstTest/output/4337fb260448bbe2.deps.json | 1 - .../AstTest/output/4dd6b3f1427d1cc5.deps.json | 1 - .../AstTest/output/6446627d4f07a1b5.deps.json | 2 +- .../AstTest/output/657e182b27c2a022.deps.json | 1 - .../AstTest/output/72e2d5ccb7cedcf1.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 1610568 -> 1554803 bytes .../AstTest/output/b543bc1dfb592119.deps.json | 1 - .../AstTest/output/b547ac4f380bddb6.deps.json | 1 - .../AstTest/output/d137b1f3311f3a7f.deps.json | 2 +- .../AstTest/output/de3357cb9182715e.deps.json | 1 - .../AstTest/output/f5d13f1be34f417a.deps.json | 1 - .../AstTest/output/f6ab8989f3545e83.deps.json | 2 +- .../AstTest/output/f6b51804a0ba8ff0.deps.json | 2 +- Test/AstTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/AstTest/temp/067c78e9f121dce3.pyi | 136 ---- .../AstTest/temp/067c78e9f121dce3.stub.ll.dep | 2 +- Test/AstTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/AstTest/temp/0853acdbdfc9b27c.pyi | 22 - Test/AstTest/temp/0c212981c180e7fb.pyi | 67 -- .../AstTest/temp/0c212981c180e7fb.stub.ll.dep | 1 - .../AstTest/temp/0c67644125bea0fd.stub.ll.dep | 2 +- .../AstTest/temp/22bc0df83b3f0e62.stub.ll.dep | 1 - Test/AstTest/temp/22bc0df83b3f0e62.vpi | 183 ----- Test/AstTest/temp/271ea3decb810db2.pyi | 26 - .../AstTest/temp/271ea3decb810db2.stub.ll.dep | 0 Test/AstTest/temp/34548789d646f432.pyi | 26 - .../AstTest/temp/34548789d646f432.stub.ll.dep | 0 Test/AstTest/temp/4337fb260448bbe2.pyi | 73 -- .../AstTest/temp/4337fb260448bbe2.stub.ll.dep | 1 - Test/AstTest/temp/4337fb260448bbe2.vpi | 73 -- Test/AstTest/temp/47767b5026a8ee15.pyi | 241 ------ .../AstTest/temp/47767b5026a8ee15.stub.ll.dep | 1 - Test/AstTest/temp/4dd6b3f1427d1cc5.pyi | 82 -- .../AstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep | 1 - Test/AstTest/temp/4dd6b3f1427d1cc5.vpi | 82 -- Test/AstTest/temp/5dab8cb390496d22.pyi | 182 ----- .../AstTest/temp/5dab8cb390496d22.stub.ll.dep | 1 - Test/AstTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/AstTest/temp/6503c97dde0c79c4.pyi | 189 ----- .../AstTest/temp/6503c97dde0c79c4.stub.ll.dep | 1 - Test/AstTest/temp/657e182b27c2a022.pyi | 226 ------ .../AstTest/temp/657e182b27c2a022.stub.ll.dep | 1 - Test/AstTest/temp/657e182b27c2a022.vpi | 226 ------ Test/AstTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../AstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/AstTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/AstTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/AstTest/temp/7e529fe7a078cfef.pyi | 100 --- .../AstTest/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/AstTest/temp/90c53dd6db8d41cf.pyi | 20 - .../AstTest/temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/AstTest/temp/93c1d18e35d188d6.pyi | 53 -- .../AstTest/temp/93c1d18e35d188d6.stub.ll.dep | 0 Test/AstTest/temp/_phase1_manifest.json | 2 +- Test/AstTest/temp/_sha1_map.txt | 50 +- .../AstTest/temp/b543bc1dfb592119.stub.ll.dep | 1 - Test/AstTest/temp/b543bc1dfb592119.vpi | 241 ------ Test/AstTest/temp/b547ac4f380bddb6.pyi | 166 ---- .../AstTest/temp/b547ac4f380bddb6.stub.ll.dep | 1 - Test/AstTest/temp/b547ac4f380bddb6.vpi | 166 ---- Test/AstTest/temp/b5a965302cded36b.pyi | 44 - .../AstTest/temp/b5a965302cded36b.stub.ll.dep | 1 - Test/AstTest/temp/ba12ed409d78139e.pyi | 59 -- .../AstTest/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/AstTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../AstTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/AstTest/temp/c3b259b4059f8668.pyi | 23 - .../AstTest/temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/AstTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/AstTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../AstTest/temp/d089e25a15c6f6e0.stub.ll.dep | 1 - .../AstTest/temp/de3357cb9182715e.stub.ll.dep | 0 Test/AstTest/temp/de3357cb9182715e.vpi | 26 - Test/AstTest/temp/ee52c08239684346.pyi | 215 ----- .../AstTest/temp/ee52c08239684346.stub.ll.dep | 1 - Test/AstTest/temp/f5522571bcce7bcb.pyi | 100 --- .../AstTest/temp/f5d13f1be34f417a.stub.ll.dep | 1 - Test/AstTest/temp/f5d13f1be34f417a.vpi | 67 -- Test/AstTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../AstTest/temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/AstTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../AstTest/temp/fde6db0747bdd959.stub.ll.dep | 1 - Test/AstTest/temp/fde6db0747bdd959.vpi | 215 ----- .../AstTest/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/AstTest/temp/ffaf70367668b227.vpi | 59 -- .../temp/0d/0df65b8ed15664b0.deps.txt | 1 - .../temp/19/19f8024d10c828e8.deps.txt | 1 - .../temp/22/22bc0df83b3f0e62.deps.txt | 1 - .../temp/2b/2b77d783c41d21d1.deps.txt | 1 - .../temp/43/4337fb260448bbe2.deps.txt | 1 - .../temp/4d/4dd6b3f1427d1cc5.deps.txt | 1 - .../temp/65/657e182b27c2a022.deps.txt | 1 - .../temp/6f/6ff26590374ae6fc.deps.txt | 1 - Test/BuddyTest/.tpv_build/temp/_sha1_map.txt | 2 +- .../temp/b3/b370d93b74bf55cc.deps.txt | 1 - .../temp/b5/b543bc1dfb592119.deps.txt | 1 - .../temp/b5/b547ac4f380bddb6.deps.txt | 1 - .../temp/c9/c9d54a4158f7f5a8.deps.txt | 1 - .../temp/ee/eec3759c4a74ce82.deps.txt | 1 - .../temp/f5/f5d13f1be34f417a.deps.txt | 1 - .../temp/fd/fde6db0747bdd959.deps.txt | 1 - .../output/067c78e9f121dce3.deps.json | 2 +- .../output/06f53cc594b4ac6c.deps.json | 2 +- .../output/5a3d93d7860d5dc0.deps.json | 1 - .../output/5e430ae5bf7af3a2.deps.json | 2 +- .../output/6446627d4f07a1b5.deps.json | 2 +- .../output/72e2d5ccb7cedcf1.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 648608 -> 591426 bytes .../output/d137b1f3311f3a7f.deps.json | 2 +- .../output/f6ab8989f3545e83.deps.json | 2 +- .../output/f6b51804a0ba8ff0.deps.json | 2 +- Test/BuddyTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/BuddyTest/temp/067c78e9f121dce3.pyi | 136 ---- .../temp/067c78e9f121dce3.stub.ll.dep | 2 +- Test/BuddyTest/temp/06f53cc594b4ac6c.pyi | 109 --- .../temp/06f53cc594b4ac6c.stub.ll.dep | 2 +- Test/BuddyTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/BuddyTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json | 1 - Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi | 21 - Test/BuddyTest/temp/5a3d93d7860d5dc0.vpi | 21 - Test/BuddyTest/temp/5e430ae5bf7af3a2.pyi | 13 - Test/BuddyTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/BuddyTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/BuddyTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/BuddyTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/BuddyTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/BuddyTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/BuddyTest/temp/_phase1_manifest.json | 2 +- Test/BuddyTest/temp/_sha1_map.txt | 32 +- Test/BuddyTest/temp/_shared_sym.json | Bin 423234 -> 425070 bytes Test/BuddyTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/BuddyTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/BuddyTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/BuddyTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/BuddyTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/BuddyTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/BuddyTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/BuddyTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/BuddyTest/temp/ffaf70367668b227.vpi | 59 -- .../temp/0d/0df65b8ed15664b0.deps.txt | 1 - .../temp/19/19f8024d10c828e8.deps.txt | 1 - .../temp/22/22bc0df83b3f0e62.deps.txt | 1 - .../temp/2b/2b77d783c41d21d1.deps.txt | 1 - .../temp/32/32cfd766982bc6e7.deps.txt | 1 - .../temp/43/4337fb260448bbe2.deps.txt | 1 - .../temp/4d/4dd6b3f1427d1cc5.deps.txt | 1 - .../temp/65/657e182b27c2a022.deps.txt | 1 - .../temp/6f/6ff26590374ae6fc.deps.txt | 1 - .../.tpv_build/temp/_sha1_map.txt | 4 +- .../temp/b3/b370d93b74bf55cc.deps.txt | 1 - .../temp/b5/b543bc1dfb592119.deps.txt | 1 - .../temp/b5/b547ac4f380bddb6.deps.txt | 1 - .../temp/c9/c9d54a4158f7f5a8.deps.txt | 1 - .../temp/de/de3357cb9182715e.deps.txt | 1 - .../temp/f5/f5d13f1be34f417a.deps.txt | 1 - .../temp/f9/f9d023d1df2bc9c5.deps.txt | 1 - .../.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi | 97 --- .../temp/fd/fde6db0747bdd959.deps.txt | 1 - .../temp/ff/ffaf70367668b227.deps.txt | 1 - .../.tpv_build/temp/ff/ffaf70367668b227.vpi | 54 -- .../output/e3ac223bdaf94a0c.deps.json | 2 +- .../temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - .../temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 .../temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - .../temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - .../temp/_phase1_manifest.json | 2 +- Test/BuiltinDecoratorTest/temp/_sha1_map.txt | 14 +- .../temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- .../temp/e3ac223bdaf94a0c.pyi | 110 --- .../temp/f5522571bcce7bcb.pyi | 100 --- .../output/7c5d5ec59c5fb0a8.deps.json | 2 +- .../output/fb6cea4f70fade7a.deps.json | 2 +- Test/CPythonTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/CPythonTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/CPythonTest/temp/7c5d5ec59c5fb0a8.pyi | 765 ------------------ Test/CPythonTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/CPythonTest/temp/_phase1_manifest.json | 2 +- Test/CPythonTest/temp/_sha1_map.txt | 14 +- Test/CPythonTest/temp/_shared_sym.json | Bin 564203 -> 624208 bytes Test/CPythonTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/CPythonTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/CPythonTest/temp/fb6cea4f70fade7a.pyi | 29 - .../temp/_phase1_manifest.json | 2 +- .../output/748d0424e8976fa0.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 291784 -> 0 bytes .../output/bbdf3bbd4c3bc28c.deps.json | 1 - .../output/fc980acec33d69a7.deps.json | 1 - Test/ClosureTest/temp/_phase1_manifest.json | 2 +- .../output/440f18f9dce85a95.deps.json | 2 +- Test/ClosureTest2/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/ClosureTest2/temp/440f18f9dce85a95.pyi | 52 -- Test/ClosureTest2/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/ClosureTest2/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/ClosureTest2/temp/_phase1_manifest.json | 2 +- Test/ClosureTest2/temp/_sha1_map.txt | 12 +- Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/ClosureTest2/temp/f5522571bcce7bcb.pyi | 100 --- .../output/b1122357fee8fd68.deps.json | 2 +- .../temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - .../temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 .../temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - .../temp/_phase1_manifest.json | 2 +- Test/DecoratorMarkerTest/temp/_sha1_map.txt | 12 +- .../temp/b1122357fee8fd68.pyi | 36 - .../temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- .../temp/f5522571bcce7bcb.pyi | 100 --- .../output/814e6b31adfc6256.deps.json | 2 +- Test/DecoratorTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/DecoratorTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/DecoratorTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/DecoratorTest/temp/814e6b31adfc6256.pyi | 69 -- Test/DecoratorTest/temp/_phase1_manifest.json | 2 +- Test/DecoratorTest/temp/_sha1_map.txt | 12 +- Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/DecoratorTest/temp/f5522571bcce7bcb.pyi | 100 --- .../output/20cd49775c100a38.deps.json | 2 +- .../output/240a9a4157959a9f.deps.json | 2 +- .../output/6ddf430432a0e373.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 712802 -> 716546 bytes .../output/b3c2b99b6f3be4c7.deps.json | 2 +- .../output/e0f0afe3caa1e486.deps.json | 2 +- .../output/e3e7b6de8d7d8b03.deps.json | 1 - Test/DictTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/DictTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/DictTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/DictTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/DictTest/temp/20cd49775c100a38.pyi | 22 - .../temp/20cd49775c100a38.stub.ll.dep | 2 +- Test/DictTest/temp/240a9a4157959a9f.pyi | 38 - .../temp/240a9a4157959a9f.stub.ll.dep | 2 +- Test/DictTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/DictTest/temp/57288496f7c2d1ad.pyi | 71 -- .../temp/57288496f7c2d1ad.stub.ll.dep | 0 Test/DictTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/DictTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/DictTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/DictTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/DictTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/DictTest/temp/_phase1_manifest.json | 2 +- Test/DictTest/temp/_sha1_map.txt | 30 +- Test/DictTest/temp/b3c2b99b6f3be4c7.pyi | 17 - Test/DictTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/DictTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/DictTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/DictTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - .../temp/e0f0afe3caa1e486.stub.ll.dep | 2 +- Test/DictTest/temp/e3e7b6de8d7d8b03.pyi | 53 -- .../temp/e3e7b6de8d7d8b03.stub.ll.dep | 1 - Test/DictTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/DictTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/DictTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/DictTest/temp/ffaf70367668b227.vpi | 59 -- .../temp/0d/0df65b8ed15664b0.deps.txt | 1 - .../temp/19/19f8024d10c828e8.deps.txt | 1 - .../temp/22/22bc0df83b3f0e62.deps.txt | 1 - .../temp/2b/2b77d783c41d21d1.deps.txt | 1 - .../temp/32/32cfd766982bc6e7.deps.txt | 1 - .../temp/43/4337fb260448bbe2.deps.txt | 1 - .../temp/4d/4dd6b3f1427d1cc5.deps.txt | 1 - .../temp/65/657e182b27c2a022.deps.txt | 1 - .../temp/6f/6ff26590374ae6fc.deps.txt | 1 - Test/DocTest/.tpv_build/temp/_sha1_map.txt | 8 +- .../temp/b3/b370d93b74bf55cc.deps.txt | 1 - .../.tpv_build/temp/b5/b51eec200527c77a.vpi | 28 - .../temp/b5/b543bc1dfb592119.deps.txt | 1 - .../temp/b5/b547ac4f380bddb6.deps.txt | 1 - .../temp/c9/c9d54a4158f7f5a8.deps.txt | 1 - .../temp/de/de3357cb9182715e.deps.txt | 1 - .../temp/f5/f5d13f1be34f417a.deps.txt | 1 - .../temp/f9/f9d023d1df2bc9c5.deps.txt | 1 - .../.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi | 97 --- .../temp/fd/fde6db0747bdd959.deps.txt | 1 - .../temp/ff/ffaf70367668b227.deps.txt | 1 - .../.tpv_build/temp/ff/ffaf70367668b227.vpi | 54 -- .../DocTest/output/11556322964401b7.deps.json | 1 - .../DocTest/output/14a9b576ab5d21c9.deps.json | 2 +- .../DocTest/output/14d33679f7fadf1f.deps.json | 1 - .../DocTest/output/748d0424e8976fa0.deps.json | 2 +- .../DocTest/output/7e529fe7a078cfef.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 307370 -> 368311 bytes .../DocTest/output/b51eec200527c77a.deps.json | 1 - .../DocTest/output/ba12ed409d78139e.deps.json | 1 - .../DocTest/output/bbdf3bbd4c3bc28c.deps.json | 2 +- .../DocTest/output/f26d7266c4f8762b.deps.json | 2 +- .../DocTest/output/fc980acec33d69a7.deps.json | 2 +- .../DocTest/output/ffaf70367668b227.deps.json | 1 - Test/DocTest/temp/11556322964401b7.doc.json | 1 - Test/DocTest/temp/11556322964401b7.vpi | 19 - Test/DocTest/temp/14a9b576ab5d21c9.pyi | 32 - Test/DocTest/temp/14d33679f7fadf1f.pyi | 31 - .../DocTest/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/DocTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../DocTest/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/DocTest/temp/7e529fe7a078cfef.pyi | 100 --- .../DocTest/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/DocTest/temp/_phase1_manifest.json | 2 +- Test/DocTest/temp/_sha1_map.txt | 16 +- Test/DocTest/temp/_shared_sym.json | Bin 304089 -> 365027 bytes Test/DocTest/temp/b51eec200527c77a.doc.json | 1 - Test/DocTest/temp/b51eec200527c77a.vpi | 32 - Test/DocTest/temp/ba12ed409d78139e.pyi | 59 -- .../DocTest/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/DocTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../DocTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/DocTest/temp/f26d7266c4f8762b.pyi | 19 - Test/DocTest/temp/f5522571bcce7bcb.pyi | 100 --- .../DocTest/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/DocTest/temp/ffaf70367668b227.vpi | 59 -- .../output/ac0d686cb2cc783b.deps.json | 2 +- Test/EdgeCaseTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/EdgeCaseTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/EdgeCaseTest/temp/_phase1_manifest.json | 2 +- Test/EdgeCaseTest/temp/_sha1_map.txt | 12 +- Test/EdgeCaseTest/temp/ac0d686cb2cc783b.pyi | 73 -- Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/EdgeCaseTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/EqTest/output/78943d0dbc89a29a.deps.json | 2 +- Test/EqTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/EqTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/EqTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/EqTest/temp/14d33679f7fadf1f.pyi | 31 - Test/EqTest/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/EqTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/EqTest/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/EqTest/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/EqTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/EqTest/temp/78943d0dbc89a29a.pyi | 16 - Test/EqTest/temp/7e529fe7a078cfef.pyi | 100 --- Test/EqTest/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/EqTest/temp/90c53dd6db8d41cf.pyi | 20 - Test/EqTest/temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/EqTest/temp/_phase1_manifest.json | 2 +- Test/EqTest/temp/_sha1_map.txt | 16 +- Test/EqTest/temp/ba12ed409d78139e.pyi | 59 -- Test/EqTest/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/EqTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/EqTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/EqTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/EqTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- Test/EqTest/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/EqTest/temp/ffaf70367668b227.vpi | 59 -- .../output/c7355810f354ba5c.deps.json | 2 +- Test/Extern2Test/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/Extern2Test/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/Extern2Test/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/Extern2Test/temp/_phase1_manifest.json | 2 +- Test/Extern2Test/temp/_sha1_map.txt | 12 +- Test/Extern2Test/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/Extern2Test/temp/c7355810f354ba5c.pyi | 21 - Test/Extern2Test/temp/f5522571bcce7bcb.pyi | 100 --- .../output/48352329f97d0858.deps.json | 2 +- .../output/5b2e220c5bae60c9.deps.json | 1 - .../output/74cd54a2cba56957.deps.json | 2 +- .../output/79b337e5ea8951e2.deps.json | 1 - .../output/7cadfe07e983fd90.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 625018 -> 689382 bytes .../output/b311b47f33281389.deps.json | 2 +- Test/FakeDuckTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/FakeDuckTest/temp/067c78e9f121dce3.pyi | 136 ---- .../temp/067c78e9f121dce3.stub.ll.dep | 2 +- Test/FakeDuckTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/FakeDuckTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/FakeDuckTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/FakeDuckTest/temp/48352329f97d0858.pyi | 19 - Test/FakeDuckTest/temp/5b2e220c5bae60c9.pyi | 33 - .../temp/5b2e220c5bae60c9.stub.ll.dep | 1 - Test/FakeDuckTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/FakeDuckTest/temp/668790e6c9efdbae.pyi | 30 - .../temp/668790e6c9efdbae.stub.ll.dep | 1 - Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/FakeDuckTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/74cd54a2cba56957.stub.ll.dep | 2 +- Test/FakeDuckTest/temp/79b337e5ea8951e2.pyi | 33 - .../temp/79b337e5ea8951e2.stub.ll.dep | 1 - .../temp/7cadfe07e983fd90.stub.ll.dep | 2 +- Test/FakeDuckTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/FakeDuckTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/FakeDuckTest/temp/_phase1_manifest.json | 2 +- Test/FakeDuckTest/temp/_sha1_map.txt | 30 +- .../temp/b311b47f33281389.stub.ll.dep | 2 +- Test/FakeDuckTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/FakeDuckTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/FakeDuckTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/FakeDuckTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/FakeDuckTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/FakeDuckTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/FakeDuckTest/temp/ffaf70367668b227.vpi | 59 -- .../output/6deb1a24b47f47fc.deps.json | 2 +- Test/ForAndLoopTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/ForAndLoopTest/temp/668790e6c9efdbae.pyi | 30 - .../temp/668790e6c9efdbae.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/6deb1a24b47f47fc.pyi | 36 - Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/ForAndLoopTest/temp/79b337e5ea8951e2.pyi | 33 - .../temp/79b337e5ea8951e2.stub.ll.dep | 1 - .../temp/7cadfe07e983fd90.stub.ll.dep | 2 +- Test/ForAndLoopTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - .../ForAndLoopTest/temp/_phase1_manifest.json | 2 +- Test/ForAndLoopTest/temp/_sha1_map.txt | 26 +- .../temp/b311b47f33281389.stub.ll.dep | 2 +- Test/ForAndLoopTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/ForAndLoopTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/ForAndLoopTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/ForAndLoopTest/temp/ffaf70367668b227.vpi | 59 -- .../output/cdff0d7b58fc935b.deps.json | 2 +- .../temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - .../temp/42ced27d9e76aef5.pyi | 11 - .../temp/42ced27d9e76aef5.stub.ll.dep | 0 .../temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 .../temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - .../temp/_phase1_manifest.json | 2 +- Test/FormatStringTest/temp/_sha1_map.txt | 14 +- .../temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- .../temp/cdff0d7b58fc935b.pyi | 14 - .../temp/f5522571bcce7bcb.pyi | 100 --- .../output/067f811511854c88.deps.json | 2 +- Test/FuncTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/FuncTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/FuncTest/temp/067f811511854c88.pyi | 48 -- Test/FuncTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/FuncTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/FuncTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/FuncTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/FuncTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/FuncTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/FuncTest/temp/_phase1_manifest.json | 2 +- Test/FuncTest/temp/_sha1_map.txt | 14 +- Test/FuncTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/FuncTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/FuncTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- Test/G3/output/750067fc4b20699b.deps.json | 2 +- Test/G3/temp/14d33679f7fadf1f.pyi | 31 - Test/G3/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/G3/temp/2d39c6c7d3557b3e.pyi | 63 -- Test/G3/temp/2d39c6c7d3557b3e.stub.ll.dep | 1 - Test/G3/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/G3/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/G3/temp/750067fc4b20699b.pyi | 25 - Test/G3/temp/7e529fe7a078cfef.pyi | 100 --- Test/G3/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/G3/temp/_phase1_manifest.json | 2 +- Test/G3/temp/_sha1_map.txt | 14 +- Test/G3/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/G3/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/G3/temp/f5522571bcce7bcb.pyi | 100 --- Test/G4/output/8569e2ead0d06bb4.deps.json | 2 +- Test/G4/output/88875f3ba3ace594.deps.json | 2 +- Test/G4/output/a45655b992cc8767.deps.json | 2 +- Test/G4/output/ca0f8dd74e6cb63c.deps.json | 2 +- Test/G4/temp/14d33679f7fadf1f.pyi | 31 - Test/G4/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/G4/temp/271ea3decb810db2.pyi | 26 - Test/G4/temp/271ea3decb810db2.stub.ll.dep | 0 Test/G4/temp/2d39c6c7d3557b3e.pyi | 63 -- Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep | 1 - Test/G4/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/G4/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/G4/temp/7e529fe7a078cfef.pyi | 100 --- Test/G4/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/G4/temp/8569e2ead0d06bb4.pyi | 31 - Test/G4/temp/88875f3ba3ace594.pyi | 17 - Test/G4/temp/90c53dd6db8d41cf.pyi | 20 - Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/G4/temp/_phase1_manifest.json | 2 +- Test/G4/temp/_sha1_map.txt | 32 +- Test/G4/temp/_shared_sym.json | Bin 349013 -> 411787 bytes Test/G4/temp/a45655b992cc8767.pyi | 17 - Test/G4/temp/ba12ed409d78139e.pyi | 59 -- Test/G4/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/G4/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/G4/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/G4/temp/ca0f8dd74e6cb63c.pyi | 17 - Test/G4/temp/d089e25a15c6f6e0.pyi | 88 -- Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/G4/temp/dbd53aaa91309ba1.pyi | 26 - Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep | 2 +- Test/G4/temp/f5522571bcce7bcb.pyi | 100 --- Test/G4/temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/G4/temp/f9d023d1df2bc9c5.vpi | 99 --- Test/G4/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/G4/temp/ffaf70367668b227.vpi | 59 -- Test/G5/output/5c5f2d19bc9e75ab.deps.json | 2 +- Test/G5/temp/14d33679f7fadf1f.pyi | 31 - Test/G5/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/G5/temp/271ea3decb810db2.pyi | 26 - Test/G5/temp/271ea3decb810db2.stub.ll.dep | 0 Test/G5/temp/2d39c6c7d3557b3e.pyi | 63 -- Test/G5/temp/2d39c6c7d3557b3e.stub.ll.dep | 1 - Test/G5/temp/5c5f2d19bc9e75ab.pyi | 39 - Test/G5/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/G5/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/G5/temp/7e529fe7a078cfef.pyi | 100 --- Test/G5/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/G5/temp/90c53dd6db8d41cf.pyi | 20 - Test/G5/temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/G5/temp/_phase1_manifest.json | 2 +- Test/G5/temp/_sha1_map.txt | 24 +- Test/G5/temp/ba12ed409d78139e.pyi | 59 -- Test/G5/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/G5/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/G5/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/G5/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/G5/temp/d089e25a15c6f6e0.pyi | 88 -- Test/G5/temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/G5/temp/f5522571bcce7bcb.pyi | 100 --- Test/G5/temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/G5/temp/f9d023d1df2bc9c5.vpi | 99 --- Test/G5/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/G5/temp/ffaf70367668b227.vpi | 59 -- Test/G6/output/c3df2c1540dfb432.deps.json | 2 +- Test/G6/temp/14d33679f7fadf1f.pyi | 31 - Test/G6/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/G6/temp/271ea3decb810db2.pyi | 26 - Test/G6/temp/271ea3decb810db2.stub.ll.dep | 0 Test/G6/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/G6/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/G6/temp/7e529fe7a078cfef.pyi | 100 --- Test/G6/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/G6/temp/_phase1_manifest.json | 2 +- Test/G6/temp/_sha1_map.txt | 14 +- Test/G6/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/G6/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/G6/temp/c3df2c1540dfb432.pyi | 22 - Test/G6/temp/f5522571bcce7bcb.pyi | 100 --- Test/G7/output/12c1b8e59d117476.deps.json | 2 +- Test/G7/temp/12c1b8e59d117476.pyi | 20 - Test/G7/temp/14d33679f7fadf1f.pyi | 31 - Test/G7/temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/G7/temp/271ea3decb810db2.pyi | 26 - Test/G7/temp/271ea3decb810db2.stub.ll.dep | 0 Test/G7/temp/2d39c6c7d3557b3e.pyi | 63 -- Test/G7/temp/2d39c6c7d3557b3e.stub.ll.dep | 1 - Test/G7/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/G7/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/G7/temp/7e529fe7a078cfef.pyi | 100 --- Test/G7/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/G7/temp/90c53dd6db8d41cf.pyi | 20 - Test/G7/temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/G7/temp/_phase1_manifest.json | 2 +- Test/G7/temp/_sha1_map.txt | 26 +- Test/G7/temp/ba12ed409d78139e.pyi | 59 -- Test/G7/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/G7/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/G7/temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/G7/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/G7/temp/d089e25a15c6f6e0.pyi | 88 -- Test/G7/temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/G7/temp/d76710b4e0707c91.pyi | 19 - Test/G7/temp/d76710b4e0707c91.stub.ll.dep | 2 +- Test/G7/temp/f5522571bcce7bcb.pyi | 100 --- Test/G7/temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/G7/temp/f9d023d1df2bc9c5.vpi | 99 --- Test/G7/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/G7/temp/ffaf70367668b227.vpi | 59 -- .../output/16e1f65b154831e8.deps.json | 2 +- Test/GenericTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/GenericTest/temp/16e1f65b154831e8.pyi | 64 -- Test/GenericTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/GenericTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/GenericTest/temp/_phase1_manifest.json | 2 +- Test/GenericTest/temp/_sha1_map.txt | 12 +- Test/GenericTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/GenericTest/temp/f5522571bcce7bcb.pyi | 100 --- .../output/bdfc8bd243b7e5b7.deps.json | 2 +- Test/GenericTest2/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/GenericTest2/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/GenericTest2/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/GenericTest2/temp/_phase1_manifest.json | 2 +- Test/GenericTest2/temp/_sha1_map.txt | 12 +- Test/GenericTest2/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/GenericTest2/temp/bdfc8bd243b7e5b7.pyi | 87 -- Test/GenericTest2/temp/f5522571bcce7bcb.pyi | 100 --- .../output/01d9e58c9dd31a4d.deps.json | 2 +- Test/GenericTest3/temp/01d9e58c9dd31a4d.pyi | 27 - Test/GenericTest3/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/GenericTest3/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/GenericTest3/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/GenericTest3/temp/_phase1_manifest.json | 2 +- Test/GenericTest3/temp/_sha1_map.txt | 12 +- Test/GenericTest3/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/GenericTest3/temp/f5522571bcce7bcb.pyi | 100 --- .../output/42e09c6149524d9d.deps.json | 2 +- Test/GenericTest4/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/GenericTest4/temp/42e09c6149524d9d.pyi | 49 -- Test/GenericTest4/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/GenericTest4/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/GenericTest4/temp/_phase1_manifest.json | 2 +- Test/GenericTest4/temp/_sha1_map.txt | 12 +- Test/GenericTest4/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/GenericTest4/temp/f5522571bcce7bcb.pyi | 100 --- .../output/02d833b3cf571c5b.deps.json | 2 +- Test/HashTableTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/HashTableTest/temp/02d833b3cf571c5b.pyi | 18 - Test/HashTableTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/HashTableTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/HashTableTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/HashTableTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 .../temp/2b77d783c41d21d1.stub.ll.dep | 1 - Test/HashTableTest/temp/2b77d783c41d21d1.vpi | 46 -- Test/HashTableTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/HashTableTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/HashTableTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/HashTableTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/HashTableTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/HashTableTest/temp/_phase1_manifest.json | 2 +- Test/HashTableTest/temp/_sha1_map.txt | 24 +- Test/HashTableTest/temp/b8c66c8ff44eb874.pyi | 46 -- .../temp/b8c66c8ff44eb874.stub.ll.dep | 1 - Test/HashTableTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/HashTableTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/HashTableTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/HashTableTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/HashTableTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/HashTableTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/HashTableTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/HashTableTest/temp/ffaf70367668b227.vpi | 59 -- .../output/6b8853854d6ef556.deps.json | 2 +- Test/IterTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/IterTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/IterTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/IterTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/IterTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/IterTest/temp/6b8853854d6ef556.pyi | 23 - Test/IterTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/IterTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/IterTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/IterTest/temp/_phase1_manifest.json | 2 +- Test/IterTest/temp/_sha1_map.txt | 16 +- Test/IterTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/IterTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/IterTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/IterTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/IterTest/temp/ffaf70367668b227.vpi | 59 -- .../temp/0d/0df65b8ed15664b0.deps.txt | 1 - .../temp/19/19f8024d10c828e8.deps.txt | 1 - .../temp/22/22bc0df83b3f0e62.deps.txt | 1 - .../temp/2b/2b77d783c41d21d1.deps.txt | 1 - .../temp/32/32cfd766982bc6e7.deps.txt | 1 - .../temp/43/4337fb260448bbe2.deps.txt | 1 - .../temp/4d/4dd6b3f1427d1cc5.deps.txt | 1 - .../temp/65/657e182b27c2a022.deps.txt | 1 - .../temp/6f/6ff26590374ae6fc.deps.txt | 1 - .../temp/8a/8a97754e9e3c2b9a.deps.txt | 1 - Test/JsonTest/.tpv_build/temp/_sha1_map.txt | 4 +- .../temp/b3/b370d93b74bf55cc.deps.txt | 1 - .../temp/b5/b543bc1dfb592119.deps.txt | 1 - .../temp/b5/b547ac4f380bddb6.deps.txt | 1 - .../temp/c9/c9d54a4158f7f5a8.deps.txt | 1 - .../temp/de/de3357cb9182715e.deps.txt | 1 - .../temp/f5/f5d13f1be34f417a.deps.txt | 1 - .../temp/f9/f9d023d1df2bc9c5.deps.txt | 1 - .../.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi | 97 --- .../temp/fd/fde6db0747bdd959.deps.txt | 1 - .../temp/ff/ffaf70367668b227.deps.txt | 1 - .../.tpv_build/temp/ff/ffaf70367668b227.vpi | 54 -- .../output/8a97754e9e3c2b9a.deps.json | 2 +- Test/JsonTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/JsonTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/JsonTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/JsonTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/JsonTest/temp/20cd49775c100a38.pyi | 22 - .../temp/20cd49775c100a38.stub.ll.dep | 2 +- Test/JsonTest/temp/240a9a4157959a9f.pyi | 38 - .../temp/240a9a4157959a9f.stub.ll.dep | 2 +- Test/JsonTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/JsonTest/temp/57288496f7c2d1ad.pyi | 71 -- .../temp/57288496f7c2d1ad.stub.ll.dep | 0 Test/JsonTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/JsonTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/JsonTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/JsonTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/JsonTest/temp/8a97754e9e3c2b9a.pyi | 30 - Test/JsonTest/temp/_phase1_manifest.json | 2 +- Test/JsonTest/temp/_sha1_map.txt | 29 +- Test/JsonTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/JsonTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/JsonTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/JsonTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/JsonTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/JsonTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/JsonTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/JsonTest/temp/ffaf70367668b227.vpi | 59 -- .../output/33d64eeb99369a85.deps.json | 2 +- .../output/40c03bc03431ef81.deps.json | 2 +- .../output/5b8cf12a5862b640.deps.json | 2 +- .../output/63d0e4548b4c4672.deps.json | 2 +- .../output/6b3bc463fd044545.deps.json | 2 +- .../output/874bac141c97bae9.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 865466 -> 869210 bytes .../output/a7748ef067f79205.deps.json | 2 +- .../output/f9e36e2cd6fa659f.deps.json | 2 +- Test/LLvmLiteTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.pyi | 121 --- .../temp/15f1ded02f3aa5bc.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/21a7fcfc665f75ef.pyi | 87 -- .../temp/21a7fcfc665f75ef.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.pyi | 63 -- .../temp/2d39c6c7d3557b3e.stub.ll.dep | 1 - .../temp/40c03bc03431ef81.stub.ll.dep | 2 +- Test/LLvmLiteTest/temp/5b8cf12a5862b640.pyi | 72 -- .../temp/63d0e4548b4c4672.stub.ll.dep | 2 +- Test/LLvmLiteTest/temp/6b3bc463fd044545.pyi | 63 -- .../temp/6b3bc463fd044545.stub.ll.dep | 2 +- Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/LLvmLiteTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/LLvmLiteTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - .../temp/874bac141c97bae9.stub.ll.dep | 2 +- Test/LLvmLiteTest/temp/89b3965176cd2407.pyi | 97 --- .../temp/89b3965176cd2407.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/946e087da91aaada.pyi | 222 ----- .../temp/946e087da91aaada.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/95394ca8da0f655a.pyi | 70 -- .../temp/95394ca8da0f655a.stub.ll.dep | 0 Test/LLvmLiteTest/temp/_phase1_manifest.json | 2 +- Test/LLvmLiteTest/temp/_sha1_map.txt | 42 +- .../temp/a7748ef067f79205.stub.ll.dep | 2 +- Test/LLvmLiteTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/LLvmLiteTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.vpi | 99 --- Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.pyi | 51 -- .../temp/f9e36e2cd6fa659f.stub.ll.dep | 2 +- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/LLvmLiteTest/temp/ffaf70367668b227.vpi | 59 -- .../output/1ff2c5eb32359e40.deps.json | 2 +- Test/ListTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/ListTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/ListTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/ListTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/ListTest/temp/1ff2c5eb32359e40.pyi | 16 - Test/ListTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/ListTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/ListTest/temp/668790e6c9efdbae.pyi | 30 - .../temp/668790e6c9efdbae.stub.ll.dep | 1 - Test/ListTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/ListTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/7cadfe07e983fd90.stub.ll.dep | 2 +- Test/ListTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/ListTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/ListTest/temp/_phase1_manifest.json | 2 +- Test/ListTest/temp/_sha1_map.txt | 24 +- Test/ListTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/ListTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/ListTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/ListTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/ListTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/ListTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/ListTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/ListTest/temp/ffaf70367668b227.vpi | 59 -- .../output/86e203c56ae4de20.deps.json | 2 +- Test/LoopTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/LoopTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/LoopTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/LoopTest/temp/86e203c56ae4de20.pyi | 27 - Test/LoopTest/temp/_phase1_manifest.json | 2 +- Test/LoopTest/temp/_sha1_map.txt | 12 +- Test/LoopTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/LoopTest/temp/f5522571bcce7bcb.pyi | 100 --- .../output/3ff210e50f345c7c.deps.json | 2 +- Test/MemhubTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/MemhubTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/MemhubTest/temp/3ff210e50f345c7c.pyi | 19 - Test/MemhubTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/MemhubTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/MemhubTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/MemhubTest/temp/_phase1_manifest.json | 2 +- Test/MemhubTest/temp/_sha1_map.txt | 22 +- Test/MemhubTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/MemhubTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/MemhubTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/MemhubTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/MemhubTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/MemhubTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/MemhubTest/temp/ffaf70367668b227.vpi | 59 -- .../output/22bc0df83b3f0e62.deps.json | 1 - .../output/4175f14c5fbef360.deps.json | 2 +- .../output/4337fb260448bbe2.deps.json | 1 - .../output/4dd6b3f1427d1cc5.deps.json | 2 +- .../output/657e182b27c2a022.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 1241963 -> 1247159 bytes .../output/b543bc1dfb592119.deps.json | 1 - .../output/b547ac4f380bddb6.deps.json | 2 +- .../output/de3357cb9182715e.deps.json | 1 - .../output/f5d13f1be34f417a.deps.json | 1 - .../output/fde6db0747bdd959.deps.json | 2 +- Test/NewAstTest/temp/0c212981c180e7fb.pyi | 67 -- .../temp/0c212981c180e7fb.stub.ll.dep | 1 - .../temp/22bc0df83b3f0e62.stub.ll.dep | 1 - Test/NewAstTest/temp/22bc0df83b3f0e62.vpi | 183 ----- Test/NewAstTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/NewAstTest/temp/34548789d646f432.pyi | 26 - .../temp/34548789d646f432.stub.ll.dep | 0 Test/NewAstTest/temp/4175f14c5fbef360.pyi | 17 - Test/NewAstTest/temp/4337fb260448bbe2.pyi | 73 -- .../temp/4337fb260448bbe2.stub.ll.dep | 1 - Test/NewAstTest/temp/4337fb260448bbe2.vpi | 73 -- Test/NewAstTest/temp/47767b5026a8ee15.pyi | 241 ------ .../temp/47767b5026a8ee15.stub.ll.dep | 1 - Test/NewAstTest/temp/4dd6b3f1427d1cc5.pyi | 82 -- .../temp/4dd6b3f1427d1cc5.stub.ll.dep | 2 +- Test/NewAstTest/temp/5dab8cb390496d22.pyi | 182 ----- .../temp/5dab8cb390496d22.stub.ll.dep | 1 - Test/NewAstTest/temp/657e182b27c2a022.pyi | 226 ------ .../temp/657e182b27c2a022.stub.ll.dep | 2 +- Test/NewAstTest/temp/668790e6c9efdbae.pyi | 30 - .../temp/668790e6c9efdbae.stub.ll.dep | 1 - Test/NewAstTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/NewAstTest/temp/71e0a3ffcb3ebfad.pyi | 20 - .../temp/7cadfe07e983fd90.stub.ll.dep | 2 +- Test/NewAstTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/NewAstTest/temp/_phase1_manifest.json | 2 +- Test/NewAstTest/temp/_sha1_map.txt | 40 +- .../temp/b543bc1dfb592119.stub.ll.dep | 1 - Test/NewAstTest/temp/b543bc1dfb592119.vpi | 241 ------ Test/NewAstTest/temp/b547ac4f380bddb6.pyi | 166 ---- .../temp/b547ac4f380bddb6.stub.ll.dep | 2 +- Test/NewAstTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/NewAstTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/NewAstTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/NewAstTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - .../temp/de3357cb9182715e.stub.ll.dep | 0 Test/NewAstTest/temp/de3357cb9182715e.vpi | 26 - Test/NewAstTest/temp/ee52c08239684346.pyi | 215 ----- .../temp/ee52c08239684346.stub.ll.dep | 1 - Test/NewAstTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f5d13f1be34f417a.stub.ll.dep | 1 - Test/NewAstTest/temp/f5d13f1be34f417a.vpi | 67 -- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/NewAstTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/fde6db0747bdd959.stub.ll.dep | 2 +- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/NewAstTest/temp/ffaf70367668b227.vpi | 59 -- .../output/22650858c377c847.deps.json | 2 +- Test/NoVTableTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/NoVTableTest/temp/22650858c377c847.pyi | 64 -- Test/NoVTableTest/temp/2d39c6c7d3557b3e.pyi | 63 -- .../temp/2d39c6c7d3557b3e.stub.ll.dep | 1 - Test/NoVTableTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/NoVTableTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/NoVTableTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/NoVTableTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/NoVTableTest/temp/_phase1_manifest.json | 2 +- Test/NoVTableTest/temp/_sha1_map.txt | 24 +- Test/NoVTableTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/NoVTableTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/NoVTableTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/NoVTableTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/NoVTableTest/temp/ffaf70367668b227.vpi | 59 -- .../output/b436212dcff1be29.deps.json | 2 +- Test/PointerTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/PointerTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/PointerTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/PointerTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/PointerTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/PointerTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/PointerTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/PointerTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/PointerTest/temp/_phase1_manifest.json | 2 +- Test/PointerTest/temp/_sha1_map.txt | 16 +- Test/PointerTest/temp/b436212dcff1be29.pyi | 48 -- Test/PointerTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/PointerTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/PointerTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/PointerTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/PointerTest/temp/ffaf70367668b227.vpi | 59 -- .../output/a711c9c66fd7c6ca.deps.json | 2 +- .../temp/0035c95a18d4f8e8.pyi | 81 -- .../temp/067c78e9f121dce3.pyi | 136 ---- .../temp/06f53cc594b4ac6c.pyi | 109 --- .../temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - .../temp/6446627d4f07a1b5.pyi | 86 -- .../temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 .../temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - .../temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - .../temp/_phase1_manifest.json | 2 +- Test/ShortCircuitTest/temp/_sha1_map.txt | 16 +- .../temp/a711c9c66fd7c6ca.pyi | 20 - .../temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - .../temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- .../temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - .../temp/ffaf70367668b227.vpi | 59 -- .../output/271ea3decb810db2.deps.json | 1 - .../output/3f7c5e78d8652535.deps.json | 2 +- .../output/6dde8fc09b24666c.deps.json | 2 +- .../output/90f67f777f23b84b.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 536170 -> 600486 bytes .../output/aa246c6e6aa30484.deps.json | 2 +- .../output/c24f25b14b4bbd0a.deps.json | 1 - .../output/c3a6aed1f1fb8b1e.deps.json | 2 +- .../output/c9f4be41ca1cc2b4.deps.json | 2 +- .../output/d089e25a15c6f6e0.deps.json | 1 - .../output/f9d023d1df2bc9c5.deps.json | 1 - Test/SimdTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/SimdTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/SimdTest/temp/3f7c5e78d8652535.pyi | 128 --- Test/SimdTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/SimdTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/SimdTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/SimdTest/temp/90f67f777f23b84b.pyi | 53 -- Test/SimdTest/temp/_phase1_manifest.json | 2 +- Test/SimdTest/temp/_sha1_map.txt | 28 +- Test/SimdTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/SimdTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/SimdTest/temp/c24f25b14b4bbd0a.pyi | 91 --- .../temp/c24f25b14b4bbd0a.stub.ll.dep | 0 Test/SimdTest/temp/c3a6aed1f1fb8b1e.pyi | 240 ------ Test/SimdTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/SimdTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/SimdTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/SimdTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/SimdTest/temp/ffaf70367668b227.vpi | 59 -- .../output/44bd5632a417f7ac.deps.json | 2 +- Test/SlotsBugTest/temp/0c212981c180e7fb.pyi | 67 -- .../temp/0c212981c180e7fb.stub.ll.dep | 1 - .../temp/22bc0df83b3f0e62.stub.ll.dep | 1 - Test/SlotsBugTest/temp/22bc0df83b3f0e62.vpi | 183 ----- Test/SlotsBugTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/SlotsBugTest/temp/34548789d646f432.pyi | 26 - .../temp/34548789d646f432.stub.ll.dep | 0 Test/SlotsBugTest/temp/4337fb260448bbe2.pyi | 73 -- .../temp/4337fb260448bbe2.stub.ll.dep | 1 - Test/SlotsBugTest/temp/4337fb260448bbe2.vpi | 73 -- Test/SlotsBugTest/temp/44bd5632a417f7ac.pyi | 19 - Test/SlotsBugTest/temp/47767b5026a8ee15.pyi | 241 ------ .../temp/47767b5026a8ee15.stub.ll.dep | 1 - Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.pyi | 82 -- .../temp/4dd6b3f1427d1cc5.stub.ll.dep | 2 +- Test/SlotsBugTest/temp/5dab8cb390496d22.pyi | 182 ----- .../temp/5dab8cb390496d22.stub.ll.dep | 1 - Test/SlotsBugTest/temp/657e182b27c2a022.pyi | 226 ------ .../temp/657e182b27c2a022.stub.ll.dep | 2 +- Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/SlotsBugTest/temp/_phase1_manifest.json | 2 +- Test/SlotsBugTest/temp/_sha1_map.txt | 37 +- .../temp/b543bc1dfb592119.stub.ll.dep | 1 - Test/SlotsBugTest/temp/b543bc1dfb592119.vpi | 241 ------ Test/SlotsBugTest/temp/b547ac4f380bddb6.pyi | 166 ---- .../temp/b547ac4f380bddb6.stub.ll.dep | 2 +- Test/SlotsBugTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/SlotsBugTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/SlotsBugTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/SlotsBugTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - .../temp/de3357cb9182715e.stub.ll.dep | 0 Test/SlotsBugTest/temp/de3357cb9182715e.vpi | 26 - Test/SlotsBugTest/temp/ee52c08239684346.pyi | 215 ----- .../temp/ee52c08239684346.stub.ll.dep | 1 - Test/SlotsBugTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f5d13f1be34f417a.stub.ll.dep | 1 - Test/SlotsBugTest/temp/f5d13f1be34f417a.vpi | 67 -- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/SlotsBugTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/fde6db0747bdd959.stub.ll.dep | 2 +- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/SlotsBugTest/temp/ffaf70367668b227.vpi | 59 -- .../output/f492cb40d913400b.deps.json | 2 +- Test/SprintfTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/SprintfTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/SprintfTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/SprintfTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/SprintfTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/SprintfTest/temp/_phase1_manifest.json | 2 +- Test/SprintfTest/temp/_sha1_map.txt | 20 +- Test/SprintfTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/SprintfTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/SprintfTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/SprintfTest/temp/f492cb40d913400b.pyi | 15 - Test/SprintfTest/temp/f5522571bcce7bcb.pyi | 100 --- .../output/924ed8cd4ea5c4c2.deps.json | 2 +- Test/StringIterTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/StringIterTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/StringIterTest/temp/668790e6c9efdbae.pyi | 30 - .../temp/668790e6c9efdbae.stub.ll.dep | 1 - Test/StringIterTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 .../temp/7cadfe07e983fd90.stub.ll.dep | 2 +- Test/StringIterTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/StringIterTest/temp/924ed8cd4ea5c4c2.pyi | 38 - .../StringIterTest/temp/_phase1_manifest.json | 2 +- Test/StringIterTest/temp/_sha1_map.txt | 23 +- Test/StringIterTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/StringIterTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/StringIterTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/StringIterTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/StringIterTest/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/StringIterTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/StringIterTest/temp/ffaf70367668b227.vpi | 59 -- .../output/39178dc5ba692b92.deps.json | 2 +- Test/StringTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/StringTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/StringTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/StringTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/StringTest/temp/39178dc5ba692b92.pyi | 31 - Test/StringTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/StringTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/StringTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/StringTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/StringTest/temp/_phase1_manifest.json | 2 +- Test/StringTest/temp/_sha1_map.txt | 16 +- Test/StringTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/StringTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/StringTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/StringTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/StringTest/temp/ffaf70367668b227.vpi | 59 -- .../output/24e26a8de1173993.deps.json | 2 +- Test/StructTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/StructTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/StructTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/StructTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/StructTest/temp/24e26a8de1173993.pyi | 39 - Test/StructTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/StructTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/StructTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/StructTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/StructTest/temp/_phase1_manifest.json | 2 +- Test/StructTest/temp/_sha1_map.txt | 16 +- Test/StructTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/StructTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/StructTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/StructTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/StructTest/temp/ffaf70367668b227.vpi | 59 -- .../output/0c67644125bea0fd.deps.json | 2 +- .../output/13110effbb0bb06c.deps.json | 2 +- .../output/28de517e3820658a.deps.json | 2 +- .../output/4826f733b0735536.deps.json | 2 +- .../output/59e00d50660b941e.deps.json | 2 +- .../output/76dd6c275aa72b3b.deps.json | 1 - .../output/7d8c26e41226955a.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 768105 -> 831022 bytes .../output/a03139660029514f.deps.json | 2 +- .../output/a335eb99f2e34479.deps.json | 2 +- .../output/a68b70f233541a7f.deps.json | 2 +- .../output/abbcbd92436cc16a.deps.json | 1 - .../output/c70684ccfe48a5a9.deps.json | 2 +- .../output/d152115b49e50218.deps.json | 2 +- Test/SysLibTest/temp/0035c95a18d4f8e8.pyi | 81 -- .../temp/0035c95a18d4f8e8.stub.ll.dep | 1 - Test/SysLibTest/temp/067c78e9f121dce3.pyi | 136 ---- .../temp/067c78e9f121dce3.stub.ll.dep | 2 +- Test/SysLibTest/temp/06f53cc594b4ac6c.pyi | 109 --- .../temp/06f53cc594b4ac6c.stub.ll.dep | 2 +- .../temp/0c67644125bea0fd.stub.ll.dep | 2 +- Test/SysLibTest/temp/13110effbb0bb06c.pyi | 35 - .../temp/13110effbb0bb06c.stub.ll.dep | 2 +- Test/SysLibTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/SysLibTest/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/SysLibTest/temp/2da636c61863c815.pyi | 33 - .../temp/2da636c61863c815.stub.ll.dep | 1 - Test/SysLibTest/temp/59e00d50660b941e.pyi | 19 - Test/SysLibTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/SysLibTest/temp/6503c97dde0c79c4.pyi | 189 ----- .../temp/6503c97dde0c79c4.stub.ll.dep | 1 - Test/SysLibTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/SysLibTest/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/SysLibTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/SysLibTest/temp/76dd6c275aa72b3b.pyi | 41 - .../temp/76dd6c275aa72b3b.stub.ll.dep | 0 .../temp/7d8c26e41226955a.stub.ll.dep | 2 +- Test/SysLibTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/SysLibTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/SysLibTest/temp/93c1d18e35d188d6.pyi | 53 -- .../temp/93c1d18e35d188d6.stub.ll.dep | 0 Test/SysLibTest/temp/_phase1_manifest.json | 2 +- Test/SysLibTest/temp/_sha1_map.txt | 56 +- Test/SysLibTest/temp/_shared_sym.json | Bin 699370 -> 762350 bytes Test/SysLibTest/temp/a03139660029514f.pyi | 34 - .../temp/a335eb99f2e34479.stub.ll.dep | 2 +- Test/SysLibTest/temp/a68b70f233541a7f.pyi | 44 - .../temp/a68b70f233541a7f.stub.ll.dep | 2 +- Test/SysLibTest/temp/abbcbd92436cc16a.pyi | 41 - .../temp/abbcbd92436cc16a.stub.ll.dep | 1 - Test/SysLibTest/temp/b5a965302cded36b.pyi | 44 - .../temp/b5a965302cded36b.stub.ll.dep | 1 - Test/SysLibTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/SysLibTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/SysLibTest/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/SysLibTest/temp/c70684ccfe48a5a9.pyi | 24 - Test/SysLibTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/SysLibTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/SysLibTest/temp/d152115b49e50218.pyi | 42 - .../temp/d152115b49e50218.stub.ll.dep | 2 +- Test/SysLibTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/SysLibTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f6b51804a0ba8ff0.stub.ll.dep | 2 +- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/SysLibTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/SysLibTest/temp/ffaf70367668b227.vpi | 59 -- .../output/0035c95a18d4f8e8.deps.json | 1 - .../output/067c78e9f121dce3.deps.json | 2 +- .../output/06f53cc594b4ac6c.deps.json | 2 +- .../output/4fb8940ff5ab1022.deps.json | 2 +- .../output/6446627d4f07a1b5.deps.json | 2 +- .../output/72e2d5ccb7cedcf1.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 541508 -> 601704 bytes .../output/f6b51804a0ba8ff0.deps.json | 2 +- Test/TestFBProject/temp/0035c95a18d4f8e8.pyi | 81 -- Test/TestFBProject/temp/067c78e9f121dce3.pyi | 136 ---- Test/TestFBProject/temp/06f53cc594b4ac6c.pyi | 109 --- Test/TestFBProject/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/TestFBProject/temp/4fb8940ff5ab1022.pyi | 34 - Test/TestFBProject/temp/6446627d4f07a1b5.pyi | 86 -- Test/TestFBProject/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/TestFBProject/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/TestFBProject/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/TestFBProject/temp/_phase1_manifest.json | 2 +- Test/TestFBProject/temp/_sha1_map.txt | 12 +- Test/TestFBProject/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/TestFBProject/temp/f5522571bcce7bcb.pyi | 100 --- Test/TestFBProject/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../output/49cae05490a513cb.deps.json | 2 +- .../output/754640ce30cfebcc.deps.json | 1 - .../output/75583f20a922ab2e.deps.json | 2 +- .../output/8e0d8fdba991b3b4.deps.json | 2 +- .../output/9474791561654346.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 560308 -> 0 bytes .../output/cfc83b830141b00e.deps.json | 2 +- .../output/e5fb16127bce8f68.deps.json | 2 +- .../output/faec3233d98371da.deps.json | 2 +- Test/TestProject/temp/14d33679f7fadf1f.pyi | 31 - Test/TestProject/temp/271ea3decb810db2.pyi | 26 - Test/TestProject/temp/3cd87018ba1e76bc.pyi | 108 --- Test/TestProject/temp/3f7c5e78d8652535.pyi | 128 --- Test/TestProject/temp/49cae05490a513cb.pyi | 19 - Test/TestProject/temp/6f62fe05c5ea1ceb.pyi | 28 - Test/TestProject/temp/75583f20a922ab2e.pyi | 38 - Test/TestProject/temp/7e529fe7a078cfef.pyi | 100 --- Test/TestProject/temp/8e0d8fdba991b3b4.pyi | 25 - Test/TestProject/temp/90c53dd6db8d41cf.pyi | 20 - Test/TestProject/temp/_phase1_manifest.json | 2 +- Test/TestProject/temp/_sha1_map.txt | 38 +- Test/TestProject/temp/_shared_sym.json | Bin 555570 -> 618362 bytes Test/TestProject/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- Test/TestProject/temp/c3a6aed1f1fb8b1e.pyi | 240 ------ Test/TestProject/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/TestProject/temp/cfc83b830141b00e.pyi | 27 - Test/TestProject/temp/e5fb16127bce8f68.pyi | 66 -- Test/TestProject/temp/f5522571bcce7bcb.pyi | 100 --- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/TestProject/temp/f9d023d1df2bc9c5.vpi | 99 --- Test/TestProject/temp/faec3233d98371da.pyi | 54 -- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/TestProject/temp/ffaf70367668b227.vpi | 59 -- .../output/0df65b8ed15664b0.deps.json | 2 +- .../output/19f8024d10c828e8.deps.json | 2 +- .../output/1c46d554b3a3f9f3.deps.json | 1 - .../output/1f6617c02fc8899d.deps.json | 2 +- .../output/213348433fb01cc6.deps.json | 1 - .../output/257e074b935c33b4.deps.json | 1 - .../output/3e775aa83705b119.deps.json | 2 +- .../output/451745df21e598af.deps.json | 2 +- .../output/541a1ed9b8be53c8.deps.json | 2 +- .../output/6ff26590374ae6fc.deps.json | 2 +- .../output/8ebed83a7817fa0c.deps.json | 2 +- .../output/90921d009fdd674c.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 724766 -> 787706 bytes .../output/c9d54a4158f7f5a8.deps.json | 2 +- .../output/cfc83b830141b00e.deps.json | 2 +- .../output/d3917d97537f703c.deps.json | 2 +- .../output/d541ade6afb689a5.deps.json | 2 +- Test/TestProject2/temp/0035c95a18d4f8e8.pyi | 81 -- Test/TestProject2/temp/067c78e9f121dce3.pyi | 136 ---- Test/TestProject2/temp/06f53cc594b4ac6c.pyi | 109 --- Test/TestProject2/temp/0df65b8ed15664b0.pyi | 30 - .../temp/0df65b8ed15664b0.stub.ll.dep | 2 +- Test/TestProject2/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/TestProject2/temp/19f8024d10c828e8.pyi | 35 - .../temp/19f8024d10c828e8.stub.ll.dep | 2 +- Test/TestProject2/temp/1c46d554b3a3f9f3.pyi | 125 --- .../temp/1c46d554b3a3f9f3.stub.ll.dep | 1 - .../temp/1f6617c02fc8899d.stub.ll.dep | 2 +- Test/TestProject2/temp/213348433fb01cc6.pyi | 67 -- .../temp/213348433fb01cc6.stub.ll.dep | 1 - Test/TestProject2/temp/257e074b935c33b4.pyi | 45 -- .../temp/257e074b935c33b4.stub.ll.dep | 0 Test/TestProject2/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 .../temp/3e775aa83705b119.stub.ll.dep | 2 +- Test/TestProject2/temp/451745df21e598af.pyi | 52 -- .../temp/451745df21e598af.stub.ll.dep | 2 +- Test/TestProject2/temp/541a1ed9b8be53c8.pyi | 16 - Test/TestProject2/temp/6446627d4f07a1b5.pyi | 86 -- Test/TestProject2/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/TestProject2/temp/6ff26590374ae6fc.pyi | 39 - Test/TestProject2/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/TestProject2/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/TestProject2/temp/8ebed83a7817fa0c.pyi | 15 - Test/TestProject2/temp/90921d009fdd674c.pyi | 56 -- .../temp/90921d009fdd674c.stub.ll.dep | 2 +- Test/TestProject2/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/TestProject2/temp/96837bcc64032444.pyi | 13 - Test/TestProject2/temp/_phase1_manifest.json | 2 +- Test/TestProject2/temp/_sha1_map.txt | 48 +- Test/TestProject2/temp/_shared_sym.json | Bin 464149 -> 527038 bytes Test/TestProject2/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/TestProject2/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/TestProject2/temp/c9d54a4158f7f5a8.pyi | 34 - Test/TestProject2/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/TestProject2/temp/cfc83b830141b00e.pyi | 27 - Test/TestProject2/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/TestProject2/temp/d541ade6afb689a5.pyi | 44 - .../temp/d541ade6afb689a5.stub.ll.dep | 2 +- Test/TestProject2/temp/d63d2c2a2bd9bd2a.pyi | 10 - Test/TestProject2/temp/f5522571bcce7bcb.pyi | 100 --- Test/TestProject2/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/TestProject2/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/TestProject2/temp/ffaf70367668b227.vpi | 59 -- .../output/0019c939aae7f9f1.deps.json | 2 +- .../output/1b58766d38d05de3.deps.json | 2 +- .../output/285a822aa26bfbda.deps.json | 2 +- .../output/64ac83614c9bdbc6.deps.json | 2 +- .../output/b235d6477436c524.deps.json | 2 +- .../output/b777c587cc21465a.deps.json | 2 +- .../output/c01b27dbcd683245.deps.json | 2 +- Test/TestProject3/temp/0019c939aae7f9f1.pyi | 14 - Test/TestProject3/temp/0035c95a18d4f8e8.pyi | 81 -- .../temp/0035c95a18d4f8e8.stub.ll.dep | 1 - Test/TestProject3/temp/067c78e9f121dce3.pyi | 136 ---- Test/TestProject3/temp/06f53cc594b4ac6c.pyi | 109 --- Test/TestProject3/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/TestProject3/temp/1b58766d38d05de3.pyi | 35 - Test/TestProject3/temp/271ea3decb810db2.pyi | 26 - .../temp/271ea3decb810db2.stub.ll.dep | 0 Test/TestProject3/temp/285a822aa26bfbda.pyi | 24 - .../temp/285a822aa26bfbda.stub.ll.dep | 2 +- Test/TestProject3/temp/6446627d4f07a1b5.pyi | 86 -- Test/TestProject3/temp/64ac83614c9bdbc6.pyi | 85 -- Test/TestProject3/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/TestProject3/temp/71e0a3ffcb3ebfad.pyi | 20 - Test/TestProject3/temp/72e2d5ccb7cedcf1.pyi | 91 --- Test/TestProject3/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/TestProject3/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/TestProject3/temp/93c1d18e35d188d6.pyi | 53 -- .../temp/93c1d18e35d188d6.stub.ll.dep | 0 Test/TestProject3/temp/_phase1_manifest.json | 2 +- Test/TestProject3/temp/_sha1_map.txt | 44 +- Test/TestProject3/temp/_shared_sym.json | Bin 521964 -> 584979 bytes Test/TestProject3/temp/b235d6477436c524.pyi | 131 --- Test/TestProject3/temp/b777c587cc21465a.pyi | 16 - Test/TestProject3/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/TestProject3/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/TestProject3/temp/c01b27dbcd683245.pyi | 30 - Test/TestProject3/temp/c3b259b4059f8668.pyi | 23 - .../temp/c3b259b4059f8668.stub.ll.dep | 1 - Test/TestProject3/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/TestProject3/temp/d089e25a15c6f6e0.pyi | 88 -- .../temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/TestProject3/temp/f5522571bcce7bcb.pyi | 100 --- Test/TestProject3/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/f6b51804a0ba8ff0.stub.ll.dep | 2 +- .../temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/TestProject3/temp/f9d023d1df2bc9c5.vpi | 99 --- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/TestProject3/temp/ffaf70367668b227.vpi | 59 -- .../output/78418cf2ee722f0f.deps.json | 2 +- Test/TypeCastTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/TypeCastTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/TypeCastTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/TypeCastTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/TypeCastTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/TypeCastTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/TypeCastTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/TypeCastTest/temp/78418cf2ee722f0f.pyi | 50 -- Test/TypeCastTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/TypeCastTest/temp/_phase1_manifest.json | 2 +- Test/TypeCastTest/temp/_sha1_map.txt | 16 +- Test/TypeCastTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/TypeCastTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/TypeCastTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/TypeCastTest/temp/ffaf70367668b227.vpi | 59 -- .../output/3f7c5e78d8652535.deps.json | 2 +- .../output/62cc01c2bb770ca3.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 356621 -> 416223 bytes .../output/e24a7f4a875f4518.deps.json | 2 +- Test/VRandomTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/VRandomTest/temp/3f7c5e78d8652535.pyi | 128 --- Test/VRandomTest/temp/62cc01c2bb770ca3.pyi | 77 -- .../temp/62cc01c2bb770ca3.stub.ll.dep | 1 - Test/VRandomTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/VRandomTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/VRandomTest/temp/_phase1_manifest.json | 2 +- Test/VRandomTest/temp/_sha1_map.txt | 16 +- Test/VRandomTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/VRandomTest/temp/e24a7f4a875f4518.pyi | 13 - Test/VRandomTest/temp/f5522571bcce7bcb.pyi | 100 --- .../output/067c78e9f121dce3.deps.json | 1 - .../output/06f53cc594b4ac6c.deps.json | 1 - .../output/3ed8c578036234a7.deps.json | 1 - .../output/6446627d4f07a1b5.deps.json | 1 - .../output/72dbbb563aa943b0.deps.json | 1 - .../output/72e2d5ccb7cedcf1.deps.json | 1 - .../output/_shared_sym_includes.pickle | Bin 573973 -> 0 bytes .../output/c1416dfae155d6e2.deps.json | 2 +- .../output/c9f4be41ca1cc2b4.deps.json | 1 - .../output/f6b51804a0ba8ff0.deps.json | 1 - .../output/ffaf70367668b227.deps.json | 1 - .../temp/3ed8c578036234a7.stub.ll.dep | 1 - Test/VariadicTest/temp/3ed8c578036234a7.vpi | 23 - Test/VariadicTest/temp/72dbbb563aa943b0.vpi | 81 -- Test/VariadicTest/temp/_phase1_manifest.json | 2 +- Test/VariadicTest/temp/_sha1_map.txt | 4 +- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/VariadicTest/temp/ffaf70367668b227.vpi | 59 -- .../WebTest/output/8046d45456d0b153.deps.json | 2 +- .../output/_shared_sym_includes.pickle | Bin 378594 -> 443002 bytes .../WebTest/output/a2c1138ed2328b33.deps.json | 2 +- .../WebTest/output/b558d8d8f01f4825.deps.json | 1 - .../WebTest/output/d7e3386b828acb66.deps.json | 1 - .../WebTest/output/f742623d43c327ea.deps.json | 2 +- Test/WebTest/temp/271ea3decb810db2.pyi | 26 - .../WebTest/temp/271ea3decb810db2.stub.ll.dep | 0 Test/WebTest/temp/6446627d4f07a1b5.pyi | 86 -- .../WebTest/temp/6446627d4f07a1b5.stub.ll.dep | 2 +- Test/WebTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../WebTest/temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/WebTest/temp/7e529fe7a078cfef.pyi | 100 --- .../WebTest/temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/WebTest/temp/8046d45456d0b153.pyi | 18 - Test/WebTest/temp/90c53dd6db8d41cf.pyi | 20 - .../WebTest/temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/WebTest/temp/93c1d18e35d188d6.pyi | 53 -- .../WebTest/temp/93c1d18e35d188d6.stub.ll.dep | 0 Test/WebTest/temp/_phase1_manifest.json | 2 +- Test/WebTest/temp/_sha1_map.txt | 26 +- .../WebTest/temp/a2c1138ed2328b33.stub.ll.dep | 2 +- Test/WebTest/temp/b558d8d8f01f4825.pyi | 39 - .../WebTest/temp/b558d8d8f01f4825.stub.ll.dep | 1 - Test/WebTest/temp/ba12ed409d78139e.pyi | 59 -- .../WebTest/temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/WebTest/temp/c9f4be41ca1cc2b4.pyi | 22 - Test/WebTest/temp/d089e25a15c6f6e0.pyi | 88 -- .../WebTest/temp/d089e25a15c6f6e0.stub.ll.dep | 1 - Test/WebTest/temp/d7e3386b828acb66.pyi | 115 --- .../WebTest/temp/d7e3386b828acb66.stub.ll.dep | 1 - Test/WebTest/temp/f5522571bcce7bcb.pyi | 100 --- .../WebTest/temp/f742623d43c327ea.stub.ll.dep | 2 +- .../WebTest/temp/f9d023d1df2bc9c5.stub.ll.dep | 1 - Test/WebTest/temp/f9d023d1df2bc9c5.vpi | 99 --- .../WebTest/temp/ffaf70367668b227.stub.ll.dep | 1 - Test/WebTest/temp/ffaf70367668b227.vpi | 59 -- .../output/03b24bc1d9327958.deps.json | 2 +- .../output/0f8134f67bdaba8f.deps.json | 2 +- .../output/784dde8a8697b7ab.deps.json | 2 +- .../output/9b7d2adaae94f021.deps.json | 2 +- .../output/cb151b297f4ea56d.deps.json | 2 +- .../output/d855b3e66d1d6522.deps.json | 2 +- .../output/dd19090b337e9bea.deps.json | 2 +- .../output/e445a2bb299d1b7d.deps.json | 2 +- Test/ZlibTest/temp/0035c95a18d4f8e8.pyi | 81 -- Test/ZlibTest/temp/03b24bc1d9327958.pyi | 21 - Test/ZlibTest/temp/067c78e9f121dce3.pyi | 136 ---- Test/ZlibTest/temp/06f53cc594b4ac6c.pyi | 109 --- Test/ZlibTest/temp/0f8134f67bdaba8f.pyi | 122 --- Test/ZlibTest/temp/14d33679f7fadf1f.pyi | 31 - .../temp/14d33679f7fadf1f.stub.ll.dep | 1 - Test/ZlibTest/temp/6446627d4f07a1b5.pyi | 86 -- Test/ZlibTest/temp/6f62fe05c5ea1ceb.pyi | 28 - .../temp/6f62fe05c5ea1ceb.stub.ll.dep | 0 Test/ZlibTest/temp/72e2d5ccb7cedcf1.pyi | 91 --- .../temp/72e2d5ccb7cedcf1.stub.ll.dep | 2 +- Test/ZlibTest/temp/784dde8a8697b7ab.pyi | 54 -- Test/ZlibTest/temp/7e529fe7a078cfef.pyi | 100 --- .../temp/7e529fe7a078cfef.stub.ll.dep | 1 - Test/ZlibTest/temp/90c53dd6db8d41cf.pyi | 20 - .../temp/90c53dd6db8d41cf.stub.ll.dep | 1 - Test/ZlibTest/temp/9b7d2adaae94f021.pyi | 65 -- Test/ZlibTest/temp/_phase1_manifest.json | 2 +- Test/ZlibTest/temp/_sha1_map.txt | 32 +- Test/ZlibTest/temp/_shared_sym.json | Bin 438243 -> 500100 bytes Test/ZlibTest/temp/ba12ed409d78139e.pyi | 59 -- .../temp/ba12ed409d78139e.stub.ll.dep | 1 - Test/ZlibTest/temp/bbdf3bbd4c3bc28c.pyi | 138 ---- .../temp/bbdf3bbd4c3bc28c.stub.ll.dep | 2 +- Test/ZlibTest/temp/cb151b297f4ea56d.pyi | 15 - Test/ZlibTest/temp/d855b3e66d1d6522.pyi | 66 -- Test/ZlibTest/temp/dd19090b337e9bea.pyi | 41 - Test/ZlibTest/temp/e445a2bb299d1b7d.pyi | 51 -- Test/ZlibTest/temp/f5522571bcce7bcb.pyi | 100 --- Test/ZlibTest/temp/f6b51804a0ba8ff0.pyi | 192 ----- .../temp/ffaf70367668b227.stub.ll.dep | 1 - Test/ZlibTest/temp/ffaf70367668b227.vpi | 59 -- TestProject/.gitignore | 13 + TestProject/App/main.vp | 12 + TestProject/LICENSE | 21 + TestProject/README.md | 289 +++++++ TestProject/project.vpj | 37 + includes/argparse.vp | 18 +- includes/hashtable.vp | 4 +- includes/string.vp | 19 + stest/BuddyTest/.tpv_buil/temp/_sha1_map.txt | 0 test.vp | 1 - .../temp/03/03d3ece355d95d76.deps.txt | 1 - .../temp/06/067c78e9f121dce3.deps.txt | 1 - .../temp/06/06f53cc594b4ac6c.deps.txt | 1 - .../temp/07/07536d26b435806c.deps.txt | 1 - .../temp/0c/0c67644125bea0fd.deps.txt | 1 - .../temp/0c/0cb53ffd1825de7e.deps.txt | 1 - .../temp/0d/0df65b8ed15664b0.deps.txt | 1 - .../temp/13/13110effbb0bb06c.deps.txt | 1 - .../temp/14/143d6f5584d3b646.deps.txt | 1 - .../temp/19/19f8024d10c828e8.deps.txt | 1 - .../temp/1f/1f6617c02fc8899d.deps.txt | 1 - .../temp/20/20cd49775c100a38.deps.txt | 1 - .../.tpv_build/temp/20/20cd49775c100a38.vpi | 19 - .../temp/22/22bc0df83b3f0e62.deps.txt | 1 - .../temp/24/240a9a4157959a9f.deps.txt | 1 - .../.tpv_build/temp/24/240a9a4157959a9f.vpi | 35 - .../temp/28/285a822aa26bfbda.deps.txt | 1 - .../temp/28/285b6aa29a34754d.deps.txt | 1 - .../.tpv_build/temp/28/285b6aa29a34754d.vpi | 20 - .../temp/28/28de517e3820658a.deps.txt | 1 - .../temp/2b/2b77d783c41d21d1.deps.txt | 1 - .../temp/2f/2ff06fad52dc2c2c.deps.txt | 1 - .../temp/32/32cfd766982bc6e7.deps.txt | 1 - .../.tpv_build/temp/32/32cfd766982bc6e7.vpi | 7 - .../temp/33/33d64eeb99369a85.deps.txt | 1 - .../temp/34/3487a256b250bb74.deps.txt | 1 - .../temp/36/3624cfde3c5cb6cb.deps.txt | 1 - .../.tpv_build/temp/36/3624cfde3c5cb6cb.vpi | 5 - .../temp/3b/3b96973f2c5c4418.deps.txt | 1 - .../temp/3e/3e775aa83705b119.deps.txt | 1 - .../temp/3f/3f7c5e78d8652535.deps.txt | 1 - .../temp/40/40c03bc03431ef81.deps.txt | 1 - .../temp/43/4337fb260448bbe2.deps.txt | 1 - .../temp/45/451745df21e598af.deps.txt | 1 - .../temp/48/4826f733b0735536.deps.txt | 1 - .../temp/4d/4dd6b3f1427d1cc5.deps.txt | 1 - .../temp/63/63d0e4548b4c4672.deps.txt | 1 - .../temp/63/63f2c82fe8a3ef8e.deps.txt | 1 - .../temp/64/6446627d4f07a1b5.deps.txt | 1 - .../temp/65/657e182b27c2a022.deps.txt | 1 - .../temp/69/691880abe4506068.deps.txt | 1 - .../.tpv_build/temp/69/691880abe4506068.vpi | 7 - .../temp/6b/6b3bc463fd044545.deps.txt | 1 - .../temp/6c/6c658cc728d0bbf4.deps.txt | 1 - .../.tpv_build/temp/6c/6c658cc728d0bbf4.vpi | 18 - .../temp/6d/6d535de0b03e99b5.deps.txt | 1 - .../temp/6d/6dde8fc09b24666c.deps.txt | 1 - .../temp/6d/6ddf430432a0e373.deps.txt | 1 - .../.tpv_build/temp/6d/6ddf430432a0e373.vpi | 65 -- .../temp/6f/6ff26590374ae6fc.deps.txt | 1 - .../temp/71/71e0a3ffcb3ebfad.deps.txt | 1 - .../temp/72/72e2d5ccb7cedcf1.deps.txt | 1 - .../temp/74/748d0424e8976fa0.deps.txt | 1 - .../temp/74/74cd54a2cba56957.deps.txt | 1 - .../temp/7c/7cadfe07e983fd90.deps.txt | 1 - .../.tpv_build/temp/7c/7cadfe07e983fd90.vpi | 27 - .../temp/7d/7d8c26e41226955a.deps.txt | 1 - .../temp/87/874bac141c97bae9.deps.txt | 1 - .../temp/8e/8ebed83a7817fa0c.deps.txt | 1 - .../temp/90/90921d009fdd674c.deps.txt | 1 - .../temp/96/96837bcc64032444.deps.txt | 1 - .../temp/99/995f884b86cf981e.deps.txt | 1 - thistest/.tpv_build/temp/_sha1_map.txt | 19 +- .../temp/a2/a2c1138ed2328b33.deps.txt | 1 - .../temp/a3/a335eb99f2e34479.deps.txt | 1 - .../temp/a4/a44503977f4f5951.deps.txt | 1 - .../temp/a5/a5e9a83e9db303ad.deps.txt | 1 - .../temp/a6/a68b70f233541a7f.deps.txt | 1 - .../temp/a7/a7748ef067f79205.deps.txt | 1 - .../temp/a7/a7c3f904686e42ce.deps.txt | 1 - .../.tpv_build/temp/a7/a7c3f904686e42ce.vpi | 18 - .../temp/a7/a7cef7aa679215d9.deps.txt | 1 - .../temp/aa/aa246c6e6aa30484.deps.txt | 1 - .../.tpv_build/temp/aa/aa246c6e6aa30484.vpi | 22 - .../temp/ab/ab0baf141ec5b021.deps.txt | 1 - .../temp/af/af37c9ab38eea99e.deps.txt | 1 - .../temp/b3/b311b47f33281389.deps.txt | 1 - .../temp/b3/b370d93b74bf55cc.deps.txt | 1 - .../temp/b5/b543bc1dfb592119.deps.txt | 1 - .../temp/b5/b547ac4f380bddb6.deps.txt | 1 - .../temp/b5/b57252077e6b596b.deps.txt | 1 - .../temp/bb/bbdf3bbd4c3bc28c.deps.txt | 1 - .../.tpv_build/temp/bb/bbdf3bbd4c3bc28c.vpi | 141 ---- .../temp/c1/c18c3a20f82d7525.deps.txt | 1 - .../temp/c3/c3a6aed1f1fb8b1e.deps.txt | 1 - .../temp/c9/c9d54a4158f7f5a8.deps.txt | 1 - .../temp/c9/c9f4be41ca1cc2b4.deps.txt | 1 - .../.tpv_build/temp/c9/c9f4be41ca1cc2b4.vpi | 19 - .../temp/d1/d137b1f3311f3a7f.deps.txt | 1 - .../temp/d1/d152115b49e50218.deps.txt | 1 - .../temp/d3/d3917d97537f703c.deps.txt | 1 - .../temp/d5/d541ade6afb689a5.deps.txt | 1 - .../temp/d6/d63d2c2a2bd9bd2a.deps.txt | 1 - .../temp/d9/d989a211953ede05.deps.txt | 1 - .../temp/de/de3357cb9182715e.deps.txt | 1 - .../temp/e0/e0f0afe3caa1e486.deps.txt | 1 - .../.tpv_build/temp/e0/e0f0afe3caa1e486.vpi | 49 -- .../temp/e1/e1f7ae4d330dcf9f.deps.txt | 1 - .../temp/f5/f5522571bcce7bcb.deps.txt | 1 - .../.tpv_build/temp/f5/f5522571bcce7bcb.vpi | 95 --- .../temp/f5/f5d13f1be34f417a.deps.txt | 1 - .../temp/f6/f6ab8989f3545e83.deps.txt | 1 - .../temp/f6/f6b51804a0ba8ff0.deps.txt | 1 - .../temp/f7/f742623d43c327ea.deps.txt | 1 - .../temp/f9/f9d023d1df2bc9c5.deps.txt | 1 - .../.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi | 97 --- .../temp/f9/f9e36e2cd6fa659f.deps.txt | 1 - .../temp/fc/fc980acec33d69a7.deps.txt | 1 - .../.tpv_build/temp/fc/fc980acec33d69a7.vpi | 101 --- .../temp/fd/fde6db0747bdd959.deps.txt | 1 - .../temp/ff/ffaf70367668b227.deps.txt | 1 - .../.tpv_build/temp/ff/ffaf70367668b227.vpi | 54 -- 1868 files changed, 1386 insertions(+), 62775 deletions(-) delete mode 100644 .transpyc_cache/067c78e9f121dce3.pyi delete mode 100644 .transpyc_cache/06f53cc594b4ac6c.pyi delete mode 100644 .transpyc_cache/bbdf3bbd4c3bc28c.pyi delete mode 100644 .transpyc_cache/c9f4be41ca1cc2b4.pyi delete mode 100644 .transpyc_cache/f5522571bcce7bcb.pyi delete mode 100644 .transpyc_cache/f6b51804a0ba8ff0.pyi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/08/08ea5281873244fd.vpi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.vpi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.vpi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi delete mode 100644 Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt delete mode 100644 Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.vpi delete mode 100644 Test/ArgparseTest/output/08ea5281873244fd.deps.json delete mode 100644 Test/ArgparseTest/output/2b77d783c41d21d1.deps.json delete mode 100644 Test/ArgparseTest/output/b370d93b74bf55cc.deps.json delete mode 100644 Test/ArgparseTest/output/b9a33a5027b4571b.deps.json delete mode 100644 Test/ArgparseTest/output/f9d023d1df2bc9c5.deps.json delete mode 100644 Test/ArgparseTest/output/ffaf70367668b227.deps.json delete mode 100644 Test/ArgparseTest/temp/08ea5281873244fd.doc.json delete mode 100644 Test/ArgparseTest/temp/08ea5281873244fd.pyi delete mode 100644 Test/ArgparseTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/ArgparseTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/ArgparseTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/2b77d783c41d21d1.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/2b77d783c41d21d1.vpi delete mode 100644 Test/ArgparseTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/ArgparseTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/ArgparseTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/ArgparseTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/aba439b7882ad9d6.pyi delete mode 100644 Test/ArgparseTest/temp/aba439b7882ad9d6.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/b370d93b74bf55cc.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/b370d93b74bf55cc.vpi delete mode 100644 Test/ArgparseTest/temp/b8c66c8ff44eb874.pyi delete mode 100644 Test/ArgparseTest/temp/b8c66c8ff44eb874.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/b9a33a5027b4571b.doc.json delete mode 100644 Test/ArgparseTest/temp/b9a33a5027b4571b.vpi delete mode 100644 Test/ArgparseTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/ArgparseTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/ArgparseTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/ArgparseTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/ArgparseTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/ArgparseTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/ArgparseTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/ArgparseTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/AstTest/.tpv_build/temp/08/0853acdbdfc9b27c.vpi delete mode 100644 Test/AstTest/output/22bc0df83b3f0e62.deps.json delete mode 100644 Test/AstTest/output/4337fb260448bbe2.deps.json delete mode 100644 Test/AstTest/output/4dd6b3f1427d1cc5.deps.json delete mode 100644 Test/AstTest/output/657e182b27c2a022.deps.json delete mode 100644 Test/AstTest/output/b543bc1dfb592119.deps.json delete mode 100644 Test/AstTest/output/b547ac4f380bddb6.deps.json delete mode 100644 Test/AstTest/output/de3357cb9182715e.deps.json delete mode 100644 Test/AstTest/output/f5d13f1be34f417a.deps.json delete mode 100644 Test/AstTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/AstTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/AstTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/AstTest/temp/0853acdbdfc9b27c.pyi delete mode 100644 Test/AstTest/temp/0c212981c180e7fb.pyi delete mode 100644 Test/AstTest/temp/0c212981c180e7fb.stub.ll.dep delete mode 100644 Test/AstTest/temp/22bc0df83b3f0e62.stub.ll.dep delete mode 100644 Test/AstTest/temp/22bc0df83b3f0e62.vpi delete mode 100644 Test/AstTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/AstTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/AstTest/temp/34548789d646f432.pyi delete mode 100644 Test/AstTest/temp/34548789d646f432.stub.ll.dep delete mode 100644 Test/AstTest/temp/4337fb260448bbe2.pyi delete mode 100644 Test/AstTest/temp/4337fb260448bbe2.stub.ll.dep delete mode 100644 Test/AstTest/temp/4337fb260448bbe2.vpi delete mode 100644 Test/AstTest/temp/47767b5026a8ee15.pyi delete mode 100644 Test/AstTest/temp/47767b5026a8ee15.stub.ll.dep delete mode 100644 Test/AstTest/temp/4dd6b3f1427d1cc5.pyi delete mode 100644 Test/AstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep delete mode 100644 Test/AstTest/temp/4dd6b3f1427d1cc5.vpi delete mode 100644 Test/AstTest/temp/5dab8cb390496d22.pyi delete mode 100644 Test/AstTest/temp/5dab8cb390496d22.stub.ll.dep delete mode 100644 Test/AstTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/AstTest/temp/6503c97dde0c79c4.pyi delete mode 100644 Test/AstTest/temp/6503c97dde0c79c4.stub.ll.dep delete mode 100644 Test/AstTest/temp/657e182b27c2a022.pyi delete mode 100644 Test/AstTest/temp/657e182b27c2a022.stub.ll.dep delete mode 100644 Test/AstTest/temp/657e182b27c2a022.vpi delete mode 100644 Test/AstTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/AstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/AstTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/AstTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/AstTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/AstTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/AstTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/AstTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/AstTest/temp/93c1d18e35d188d6.pyi delete mode 100644 Test/AstTest/temp/93c1d18e35d188d6.stub.ll.dep delete mode 100644 Test/AstTest/temp/b543bc1dfb592119.stub.ll.dep delete mode 100644 Test/AstTest/temp/b543bc1dfb592119.vpi delete mode 100644 Test/AstTest/temp/b547ac4f380bddb6.pyi delete mode 100644 Test/AstTest/temp/b547ac4f380bddb6.stub.ll.dep delete mode 100644 Test/AstTest/temp/b547ac4f380bddb6.vpi delete mode 100644 Test/AstTest/temp/b5a965302cded36b.pyi delete mode 100644 Test/AstTest/temp/b5a965302cded36b.stub.ll.dep delete mode 100644 Test/AstTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/AstTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/AstTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/AstTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/AstTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/AstTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/AstTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/AstTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/AstTest/temp/de3357cb9182715e.stub.ll.dep delete mode 100644 Test/AstTest/temp/de3357cb9182715e.vpi delete mode 100644 Test/AstTest/temp/ee52c08239684346.pyi delete mode 100644 Test/AstTest/temp/ee52c08239684346.stub.ll.dep delete mode 100644 Test/AstTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/AstTest/temp/f5d13f1be34f417a.stub.ll.dep delete mode 100644 Test/AstTest/temp/f5d13f1be34f417a.vpi delete mode 100644 Test/AstTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/AstTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/AstTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/AstTest/temp/fde6db0747bdd959.stub.ll.dep delete mode 100644 Test/AstTest/temp/fde6db0747bdd959.vpi delete mode 100644 Test/AstTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/AstTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/BuddyTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/ee/eec3759c4a74ce82.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt delete mode 100644 Test/BuddyTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt delete mode 100644 Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json delete mode 100644 Test/BuddyTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/BuddyTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/BuddyTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/BuddyTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/BuddyTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/BuddyTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json delete mode 100644 Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi delete mode 100644 Test/BuddyTest/temp/5a3d93d7860d5dc0.vpi delete mode 100644 Test/BuddyTest/temp/5e430ae5bf7af3a2.pyi delete mode 100644 Test/BuddyTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/BuddyTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/BuddyTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/BuddyTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/BuddyTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/BuddyTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/BuddyTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/BuddyTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/BuddyTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/BuddyTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/BuddyTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/BuddyTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/BuddyTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/BuddyTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/BuddyTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/BuddyTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt delete mode 100644 Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.vpi delete mode 100644 Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/BuiltinDecoratorTest/temp/e3ac223bdaf94a0c.pyi delete mode 100644 Test/BuiltinDecoratorTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/CPythonTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/CPythonTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/CPythonTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/CPythonTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/CPythonTest/temp/7c5d5ec59c5fb0a8.pyi delete mode 100644 Test/CPythonTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/CPythonTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/CPythonTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/CPythonTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/CPythonTest/temp/fb6cea4f70fade7a.pyi delete mode 100644 Test/ClosureTest/output/748d0424e8976fa0.deps.json delete mode 100644 Test/ClosureTest/output/_shared_sym_includes.pickle delete mode 100644 Test/ClosureTest/output/bbdf3bbd4c3bc28c.deps.json delete mode 100644 Test/ClosureTest/output/fc980acec33d69a7.deps.json delete mode 100644 Test/ClosureTest2/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/ClosureTest2/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/ClosureTest2/temp/440f18f9dce85a95.pyi delete mode 100644 Test/ClosureTest2/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/ClosureTest2/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/ClosureTest2/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/ClosureTest2/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/ClosureTest2/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/DecoratorMarkerTest/temp/b1122357fee8fd68.pyi delete mode 100644 Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/DecoratorMarkerTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/DecoratorTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/DecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/DecoratorTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/DecoratorTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/DecoratorTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/DecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/DecoratorTest/temp/814e6b31adfc6256.pyi delete mode 100644 Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/DecoratorTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/DictTest/output/e3e7b6de8d7d8b03.deps.json delete mode 100644 Test/DictTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/DictTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/DictTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/DictTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/DictTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/DictTest/temp/20cd49775c100a38.pyi delete mode 100644 Test/DictTest/temp/240a9a4157959a9f.pyi delete mode 100644 Test/DictTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/DictTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/DictTest/temp/57288496f7c2d1ad.pyi delete mode 100644 Test/DictTest/temp/57288496f7c2d1ad.stub.ll.dep delete mode 100644 Test/DictTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/DictTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/DictTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/DictTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/DictTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/DictTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/DictTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/DictTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/DictTest/temp/b3c2b99b6f3be4c7.pyi delete mode 100644 Test/DictTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/DictTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/DictTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/DictTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/DictTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/DictTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/DictTest/temp/e3e7b6de8d7d8b03.pyi delete mode 100644 Test/DictTest/temp/e3e7b6de8d7d8b03.stub.ll.dep delete mode 100644 Test/DictTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/DictTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/DictTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/DictTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/DictTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/DictTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/DocTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/b5/b51eec200527c77a.vpi delete mode 100644 Test/DocTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi delete mode 100644 Test/DocTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt delete mode 100644 Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.vpi delete mode 100644 Test/DocTest/output/11556322964401b7.deps.json delete mode 100644 Test/DocTest/output/14d33679f7fadf1f.deps.json delete mode 100644 Test/DocTest/output/7e529fe7a078cfef.deps.json delete mode 100644 Test/DocTest/output/b51eec200527c77a.deps.json delete mode 100644 Test/DocTest/output/ba12ed409d78139e.deps.json delete mode 100644 Test/DocTest/output/ffaf70367668b227.deps.json delete mode 100644 Test/DocTest/temp/11556322964401b7.doc.json delete mode 100644 Test/DocTest/temp/11556322964401b7.vpi delete mode 100644 Test/DocTest/temp/14a9b576ab5d21c9.pyi delete mode 100644 Test/DocTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/DocTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/DocTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/DocTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/DocTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/DocTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/DocTest/temp/b51eec200527c77a.doc.json delete mode 100644 Test/DocTest/temp/b51eec200527c77a.vpi delete mode 100644 Test/DocTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/DocTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/DocTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/DocTest/temp/f26d7266c4f8762b.pyi delete mode 100644 Test/DocTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/DocTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/DocTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/EdgeCaseTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/EdgeCaseTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/EdgeCaseTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/EdgeCaseTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/EdgeCaseTest/temp/ac0d686cb2cc783b.pyi delete mode 100644 Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/EdgeCaseTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/EqTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/EqTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/EqTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/EqTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/EqTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/EqTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/EqTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/EqTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/EqTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/EqTest/temp/78943d0dbc89a29a.pyi delete mode 100644 Test/EqTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/EqTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/EqTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/EqTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/EqTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/EqTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/EqTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/EqTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/EqTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/EqTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/EqTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/Extern2Test/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/Extern2Test/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/Extern2Test/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/Extern2Test/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/Extern2Test/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/Extern2Test/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/Extern2Test/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/Extern2Test/temp/c7355810f354ba5c.pyi delete mode 100644 Test/Extern2Test/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json delete mode 100644 Test/FakeDuckTest/output/79b337e5ea8951e2.deps.json delete mode 100644 Test/FakeDuckTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/FakeDuckTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/FakeDuckTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/FakeDuckTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/FakeDuckTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/FakeDuckTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/48352329f97d0858.pyi delete mode 100644 Test/FakeDuckTest/temp/5b2e220c5bae60c9.pyi delete mode 100644 Test/FakeDuckTest/temp/5b2e220c5bae60c9.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/FakeDuckTest/temp/668790e6c9efdbae.pyi delete mode 100644 Test/FakeDuckTest/temp/668790e6c9efdbae.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/FakeDuckTest/temp/79b337e5ea8951e2.pyi delete mode 100644 Test/FakeDuckTest/temp/79b337e5ea8951e2.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/FakeDuckTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/FakeDuckTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/FakeDuckTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/FakeDuckTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/FakeDuckTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/FakeDuckTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/FakeDuckTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/FakeDuckTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/FakeDuckTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/FakeDuckTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/ForAndLoopTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/ForAndLoopTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/ForAndLoopTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/668790e6c9efdbae.pyi delete mode 100644 Test/ForAndLoopTest/temp/668790e6c9efdbae.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/6deb1a24b47f47fc.pyi delete mode 100644 Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/79b337e5ea8951e2.pyi delete mode 100644 Test/ForAndLoopTest/temp/79b337e5ea8951e2.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/ForAndLoopTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/ForAndLoopTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/ForAndLoopTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/ForAndLoopTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/ForAndLoopTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/ForAndLoopTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/ForAndLoopTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/ForAndLoopTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/FormatStringTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/FormatStringTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/FormatStringTest/temp/42ced27d9e76aef5.pyi delete mode 100644 Test/FormatStringTest/temp/42ced27d9e76aef5.stub.ll.dep delete mode 100644 Test/FormatStringTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/FormatStringTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/FormatStringTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/FormatStringTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/FormatStringTest/temp/cdff0d7b58fc935b.pyi delete mode 100644 Test/FormatStringTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/FuncTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/FuncTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/FuncTest/temp/067f811511854c88.pyi delete mode 100644 Test/FuncTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/FuncTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/FuncTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/FuncTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/FuncTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/FuncTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/FuncTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/FuncTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/FuncTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/FuncTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/FuncTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/FuncTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/G3/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/G3/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/G3/temp/2d39c6c7d3557b3e.pyi delete mode 100644 Test/G3/temp/2d39c6c7d3557b3e.stub.ll.dep delete mode 100644 Test/G3/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/G3/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/G3/temp/750067fc4b20699b.pyi delete mode 100644 Test/G3/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/G3/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/G3/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/G3/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/G4/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/G4/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/G4/temp/271ea3decb810db2.pyi delete mode 100644 Test/G4/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/G4/temp/2d39c6c7d3557b3e.pyi delete mode 100644 Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep delete mode 100644 Test/G4/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/G4/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/G4/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/G4/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/G4/temp/8569e2ead0d06bb4.pyi delete mode 100644 Test/G4/temp/88875f3ba3ace594.pyi delete mode 100644 Test/G4/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/G4/temp/a45655b992cc8767.pyi delete mode 100644 Test/G4/temp/ba12ed409d78139e.pyi delete mode 100644 Test/G4/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/G4/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/G4/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/G4/temp/ca0f8dd74e6cb63c.pyi delete mode 100644 Test/G4/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/G4/temp/dbd53aaa91309ba1.pyi delete mode 100644 Test/G4/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/G4/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/G4/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/G4/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/G4/temp/ffaf70367668b227.vpi delete mode 100644 Test/G5/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/G5/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/G5/temp/271ea3decb810db2.pyi delete mode 100644 Test/G5/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/G5/temp/2d39c6c7d3557b3e.pyi delete mode 100644 Test/G5/temp/2d39c6c7d3557b3e.stub.ll.dep delete mode 100644 Test/G5/temp/5c5f2d19bc9e75ab.pyi delete mode 100644 Test/G5/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/G5/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/G5/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/G5/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/G5/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/G5/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/G5/temp/ba12ed409d78139e.pyi delete mode 100644 Test/G5/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/G5/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/G5/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/G5/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/G5/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/G5/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/G5/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/G5/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/G5/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/G5/temp/ffaf70367668b227.vpi delete mode 100644 Test/G6/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/G6/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/G6/temp/271ea3decb810db2.pyi delete mode 100644 Test/G6/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/G6/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/G6/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/G6/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/G6/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/G6/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/G6/temp/c3df2c1540dfb432.pyi delete mode 100644 Test/G6/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/G7/temp/12c1b8e59d117476.pyi delete mode 100644 Test/G7/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/G7/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/G7/temp/271ea3decb810db2.pyi delete mode 100644 Test/G7/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/G7/temp/2d39c6c7d3557b3e.pyi delete mode 100644 Test/G7/temp/2d39c6c7d3557b3e.stub.ll.dep delete mode 100644 Test/G7/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/G7/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/G7/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/G7/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/G7/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/G7/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/G7/temp/ba12ed409d78139e.pyi delete mode 100644 Test/G7/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/G7/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/G7/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/G7/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/G7/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/G7/temp/d76710b4e0707c91.pyi delete mode 100644 Test/G7/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/G7/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/G7/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/G7/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/G7/temp/ffaf70367668b227.vpi delete mode 100644 Test/GenericTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/GenericTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/GenericTest/temp/16e1f65b154831e8.pyi delete mode 100644 Test/GenericTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/GenericTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/GenericTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/GenericTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/GenericTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/GenericTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/GenericTest2/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/GenericTest2/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/GenericTest2/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/GenericTest2/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/GenericTest2/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/GenericTest2/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/GenericTest2/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/GenericTest2/temp/bdfc8bd243b7e5b7.pyi delete mode 100644 Test/GenericTest2/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/GenericTest3/temp/01d9e58c9dd31a4d.pyi delete mode 100644 Test/GenericTest3/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/GenericTest3/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/GenericTest3/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/GenericTest3/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/GenericTest3/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/GenericTest3/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/GenericTest3/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/GenericTest3/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/GenericTest4/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/GenericTest4/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/GenericTest4/temp/42e09c6149524d9d.pyi delete mode 100644 Test/GenericTest4/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/GenericTest4/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/GenericTest4/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/GenericTest4/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/GenericTest4/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/GenericTest4/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/HashTableTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/HashTableTest/temp/02d833b3cf571c5b.pyi delete mode 100644 Test/HashTableTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/HashTableTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/HashTableTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/HashTableTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/HashTableTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/2b77d783c41d21d1.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/2b77d783c41d21d1.vpi delete mode 100644 Test/HashTableTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/HashTableTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/HashTableTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/HashTableTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/HashTableTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/HashTableTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/b8c66c8ff44eb874.pyi delete mode 100644 Test/HashTableTest/temp/b8c66c8ff44eb874.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/HashTableTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/HashTableTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/HashTableTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/HashTableTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/HashTableTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/HashTableTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/HashTableTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/HashTableTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/IterTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/IterTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/IterTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/IterTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/IterTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/IterTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/IterTest/temp/6b8853854d6ef556.pyi delete mode 100644 Test/IterTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/IterTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/IterTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/IterTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/IterTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/IterTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/IterTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/IterTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/IterTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/IterTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/IterTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/IterTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/JsonTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/8a/8a97754e9e3c2b9a.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi delete mode 100644 Test/JsonTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt delete mode 100644 Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.vpi delete mode 100644 Test/JsonTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/JsonTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/JsonTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/JsonTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/JsonTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/JsonTest/temp/20cd49775c100a38.pyi delete mode 100644 Test/JsonTest/temp/240a9a4157959a9f.pyi delete mode 100644 Test/JsonTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/JsonTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/JsonTest/temp/57288496f7c2d1ad.pyi delete mode 100644 Test/JsonTest/temp/57288496f7c2d1ad.stub.ll.dep delete mode 100644 Test/JsonTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/JsonTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/JsonTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/JsonTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/JsonTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/JsonTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/JsonTest/temp/8a97754e9e3c2b9a.pyi delete mode 100644 Test/JsonTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/JsonTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/JsonTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/JsonTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/JsonTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/JsonTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/JsonTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/JsonTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/JsonTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/JsonTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/JsonTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/JsonTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/LLvmLiteTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/LLvmLiteTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.pyi delete mode 100644 Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/21a7fcfc665f75ef.pyi delete mode 100644 Test/LLvmLiteTest/temp/21a7fcfc665f75ef.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/LLvmLiteTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.pyi delete mode 100644 Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/5b8cf12a5862b640.pyi delete mode 100644 Test/LLvmLiteTest/temp/6b3bc463fd044545.pyi delete mode 100644 Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/LLvmLiteTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/LLvmLiteTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/89b3965176cd2407.pyi delete mode 100644 Test/LLvmLiteTest/temp/89b3965176cd2407.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/LLvmLiteTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/946e087da91aaada.pyi delete mode 100644 Test/LLvmLiteTest/temp/946e087da91aaada.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/95394ca8da0f655a.pyi delete mode 100644 Test/LLvmLiteTest/temp/95394ca8da0f655a.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/LLvmLiteTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/LLvmLiteTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/LLvmLiteTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/LLvmLiteTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.pyi delete mode 100644 Test/LLvmLiteTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/LLvmLiteTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/ListTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/ListTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/ListTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/ListTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/ListTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/ListTest/temp/1ff2c5eb32359e40.pyi delete mode 100644 Test/ListTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/ListTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/ListTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/ListTest/temp/668790e6c9efdbae.pyi delete mode 100644 Test/ListTest/temp/668790e6c9efdbae.stub.ll.dep delete mode 100644 Test/ListTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/ListTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/ListTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/ListTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/ListTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/ListTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/ListTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/ListTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/ListTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/ListTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/ListTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/ListTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/ListTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/ListTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/ListTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/ListTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/ListTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/ListTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/ListTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/LoopTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/LoopTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/LoopTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/LoopTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/LoopTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/LoopTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/LoopTest/temp/86e203c56ae4de20.pyi delete mode 100644 Test/LoopTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/LoopTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/MemhubTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/MemhubTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/MemhubTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/3ff210e50f345c7c.pyi delete mode 100644 Test/MemhubTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/MemhubTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/MemhubTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/MemhubTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/MemhubTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/MemhubTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/MemhubTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/MemhubTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/MemhubTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/MemhubTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/MemhubTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/NewAstTest/output/22bc0df83b3f0e62.deps.json delete mode 100644 Test/NewAstTest/output/4337fb260448bbe2.deps.json delete mode 100644 Test/NewAstTest/output/b543bc1dfb592119.deps.json delete mode 100644 Test/NewAstTest/output/de3357cb9182715e.deps.json delete mode 100644 Test/NewAstTest/output/f5d13f1be34f417a.deps.json delete mode 100644 Test/NewAstTest/temp/0c212981c180e7fb.pyi delete mode 100644 Test/NewAstTest/temp/0c212981c180e7fb.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/22bc0df83b3f0e62.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/22bc0df83b3f0e62.vpi delete mode 100644 Test/NewAstTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/NewAstTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/34548789d646f432.pyi delete mode 100644 Test/NewAstTest/temp/34548789d646f432.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/4175f14c5fbef360.pyi delete mode 100644 Test/NewAstTest/temp/4337fb260448bbe2.pyi delete mode 100644 Test/NewAstTest/temp/4337fb260448bbe2.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/4337fb260448bbe2.vpi delete mode 100644 Test/NewAstTest/temp/47767b5026a8ee15.pyi delete mode 100644 Test/NewAstTest/temp/47767b5026a8ee15.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/4dd6b3f1427d1cc5.pyi delete mode 100644 Test/NewAstTest/temp/5dab8cb390496d22.pyi delete mode 100644 Test/NewAstTest/temp/5dab8cb390496d22.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/657e182b27c2a022.pyi delete mode 100644 Test/NewAstTest/temp/668790e6c9efdbae.pyi delete mode 100644 Test/NewAstTest/temp/668790e6c9efdbae.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/NewAstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/NewAstTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/NewAstTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/b543bc1dfb592119.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/b543bc1dfb592119.vpi delete mode 100644 Test/NewAstTest/temp/b547ac4f380bddb6.pyi delete mode 100644 Test/NewAstTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/NewAstTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/NewAstTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/NewAstTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/NewAstTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/de3357cb9182715e.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/de3357cb9182715e.vpi delete mode 100644 Test/NewAstTest/temp/ee52c08239684346.pyi delete mode 100644 Test/NewAstTest/temp/ee52c08239684346.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/NewAstTest/temp/f5d13f1be34f417a.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/f5d13f1be34f417a.vpi delete mode 100644 Test/NewAstTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/NewAstTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/NewAstTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/NoVTableTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/NoVTableTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/22650858c377c847.pyi delete mode 100644 Test/NoVTableTest/temp/2d39c6c7d3557b3e.pyi delete mode 100644 Test/NoVTableTest/temp/2d39c6c7d3557b3e.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/NoVTableTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/NoVTableTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/NoVTableTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/NoVTableTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/NoVTableTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/NoVTableTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/NoVTableTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/NoVTableTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/NoVTableTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/NoVTableTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/PointerTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/PointerTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/PointerTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/PointerTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/PointerTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/PointerTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/PointerTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/PointerTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/PointerTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/PointerTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/PointerTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/PointerTest/temp/b436212dcff1be29.pyi delete mode 100644 Test/PointerTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/PointerTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/PointerTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/PointerTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/PointerTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/PointerTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/PointerTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/ShortCircuitTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/ShortCircuitTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/ShortCircuitTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/ShortCircuitTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/ShortCircuitTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/ShortCircuitTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/ShortCircuitTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/ShortCircuitTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/ShortCircuitTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/ShortCircuitTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/ShortCircuitTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/ShortCircuitTest/temp/a711c9c66fd7c6ca.pyi delete mode 100644 Test/ShortCircuitTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/ShortCircuitTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/ShortCircuitTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/ShortCircuitTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/ShortCircuitTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/ShortCircuitTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/SimdTest/output/271ea3decb810db2.deps.json delete mode 100644 Test/SimdTest/output/c24f25b14b4bbd0a.deps.json delete mode 100644 Test/SimdTest/output/d089e25a15c6f6e0.deps.json delete mode 100644 Test/SimdTest/output/f9d023d1df2bc9c5.deps.json delete mode 100644 Test/SimdTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/SimdTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/SimdTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/SimdTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/SimdTest/temp/3f7c5e78d8652535.pyi delete mode 100644 Test/SimdTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/SimdTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/SimdTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/SimdTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/SimdTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/SimdTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/SimdTest/temp/90f67f777f23b84b.pyi delete mode 100644 Test/SimdTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/SimdTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/SimdTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/SimdTest/temp/c24f25b14b4bbd0a.pyi delete mode 100644 Test/SimdTest/temp/c24f25b14b4bbd0a.stub.ll.dep delete mode 100644 Test/SimdTest/temp/c3a6aed1f1fb8b1e.pyi delete mode 100644 Test/SimdTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/SimdTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/SimdTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/SimdTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/SimdTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/SimdTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/SimdTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/SimdTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/SlotsBugTest/temp/0c212981c180e7fb.pyi delete mode 100644 Test/SlotsBugTest/temp/0c212981c180e7fb.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/22bc0df83b3f0e62.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/22bc0df83b3f0e62.vpi delete mode 100644 Test/SlotsBugTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/SlotsBugTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/34548789d646f432.pyi delete mode 100644 Test/SlotsBugTest/temp/34548789d646f432.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/4337fb260448bbe2.pyi delete mode 100644 Test/SlotsBugTest/temp/4337fb260448bbe2.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/4337fb260448bbe2.vpi delete mode 100644 Test/SlotsBugTest/temp/44bd5632a417f7ac.pyi delete mode 100644 Test/SlotsBugTest/temp/47767b5026a8ee15.pyi delete mode 100644 Test/SlotsBugTest/temp/47767b5026a8ee15.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.pyi delete mode 100644 Test/SlotsBugTest/temp/5dab8cb390496d22.pyi delete mode 100644 Test/SlotsBugTest/temp/5dab8cb390496d22.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/657e182b27c2a022.pyi delete mode 100644 Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/SlotsBugTest/temp/b543bc1dfb592119.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/b543bc1dfb592119.vpi delete mode 100644 Test/SlotsBugTest/temp/b547ac4f380bddb6.pyi delete mode 100644 Test/SlotsBugTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/SlotsBugTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/SlotsBugTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/SlotsBugTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/SlotsBugTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/de3357cb9182715e.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/de3357cb9182715e.vpi delete mode 100644 Test/SlotsBugTest/temp/ee52c08239684346.pyi delete mode 100644 Test/SlotsBugTest/temp/ee52c08239684346.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/SlotsBugTest/temp/f5d13f1be34f417a.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/f5d13f1be34f417a.vpi delete mode 100644 Test/SlotsBugTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/SlotsBugTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/SlotsBugTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/SprintfTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/SprintfTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/SprintfTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/SprintfTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/SprintfTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/SprintfTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/SprintfTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/SprintfTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/SprintfTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/SprintfTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/SprintfTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/SprintfTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/SprintfTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/SprintfTest/temp/f492cb40d913400b.pyi delete mode 100644 Test/SprintfTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/StringIterTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/StringIterTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/StringIterTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/668790e6c9efdbae.pyi delete mode 100644 Test/StringIterTest/temp/668790e6c9efdbae.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/StringIterTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/StringIterTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/924ed8cd4ea5c4c2.pyi delete mode 100644 Test/StringIterTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/StringIterTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/StringIterTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/StringIterTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/StringIterTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/StringIterTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/StringIterTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/StringIterTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/StringTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/StringTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/StringTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/StringTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/StringTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/StringTest/temp/39178dc5ba692b92.pyi delete mode 100644 Test/StringTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/StringTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/StringTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/StringTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/StringTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/StringTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/StringTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/StringTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/StringTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/StringTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/StringTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/StringTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/StringTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/StructTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/StructTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/StructTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/StructTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/StructTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/StructTest/temp/24e26a8de1173993.pyi delete mode 100644 Test/StructTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/StructTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/StructTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/StructTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/StructTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/StructTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/StructTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/StructTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/StructTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/StructTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/StructTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/StructTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/StructTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/SysLibTest/output/76dd6c275aa72b3b.deps.json delete mode 100644 Test/SysLibTest/output/abbcbd92436cc16a.deps.json delete mode 100644 Test/SysLibTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/SysLibTest/temp/0035c95a18d4f8e8.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/SysLibTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/SysLibTest/temp/13110effbb0bb06c.pyi delete mode 100644 Test/SysLibTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/SysLibTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/SysLibTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/2da636c61863c815.pyi delete mode 100644 Test/SysLibTest/temp/2da636c61863c815.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/59e00d50660b941e.pyi delete mode 100644 Test/SysLibTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/SysLibTest/temp/6503c97dde0c79c4.pyi delete mode 100644 Test/SysLibTest/temp/6503c97dde0c79c4.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/SysLibTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/SysLibTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/SysLibTest/temp/76dd6c275aa72b3b.pyi delete mode 100644 Test/SysLibTest/temp/76dd6c275aa72b3b.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/SysLibTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/SysLibTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/93c1d18e35d188d6.pyi delete mode 100644 Test/SysLibTest/temp/93c1d18e35d188d6.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/a03139660029514f.pyi delete mode 100644 Test/SysLibTest/temp/a68b70f233541a7f.pyi delete mode 100644 Test/SysLibTest/temp/abbcbd92436cc16a.pyi delete mode 100644 Test/SysLibTest/temp/abbcbd92436cc16a.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/b5a965302cded36b.pyi delete mode 100644 Test/SysLibTest/temp/b5a965302cded36b.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/SysLibTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/SysLibTest/temp/c3b259b4059f8668.pyi delete mode 100644 Test/SysLibTest/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/c70684ccfe48a5a9.pyi delete mode 100644 Test/SysLibTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/SysLibTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/SysLibTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/d152115b49e50218.pyi delete mode 100644 Test/SysLibTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/SysLibTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/SysLibTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/SysLibTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/SysLibTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/TestFBProject/output/0035c95a18d4f8e8.deps.json delete mode 100644 Test/TestFBProject/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/TestFBProject/temp/067c78e9f121dce3.pyi delete mode 100644 Test/TestFBProject/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/TestFBProject/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/TestFBProject/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/TestFBProject/temp/4fb8940ff5ab1022.pyi delete mode 100644 Test/TestFBProject/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/TestFBProject/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/TestFBProject/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/TestFBProject/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/TestFBProject/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/TestFBProject/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/TestFBProject/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/TestFBProject/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/TestFBProject/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/TestProject/output/754640ce30cfebcc.deps.json delete mode 100644 Test/TestProject/output/9474791561654346.deps.json delete mode 100644 Test/TestProject/output/_shared_sym_includes.pickle delete mode 100644 Test/TestProject/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/TestProject/temp/271ea3decb810db2.pyi delete mode 100644 Test/TestProject/temp/3cd87018ba1e76bc.pyi delete mode 100644 Test/TestProject/temp/3f7c5e78d8652535.pyi delete mode 100644 Test/TestProject/temp/49cae05490a513cb.pyi delete mode 100644 Test/TestProject/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/TestProject/temp/75583f20a922ab2e.pyi delete mode 100644 Test/TestProject/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/TestProject/temp/8e0d8fdba991b3b4.pyi delete mode 100644 Test/TestProject/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/TestProject/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/TestProject/temp/c3a6aed1f1fb8b1e.pyi delete mode 100644 Test/TestProject/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/TestProject/temp/cfc83b830141b00e.pyi delete mode 100644 Test/TestProject/temp/e5fb16127bce8f68.pyi delete mode 100644 Test/TestProject/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/TestProject/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/TestProject/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/TestProject/temp/faec3233d98371da.pyi delete mode 100644 Test/TestProject/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/TestProject/temp/ffaf70367668b227.vpi delete mode 100644 Test/TestProject2/output/1c46d554b3a3f9f3.deps.json delete mode 100644 Test/TestProject2/output/213348433fb01cc6.deps.json delete mode 100644 Test/TestProject2/output/257e074b935c33b4.deps.json delete mode 100644 Test/TestProject2/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/TestProject2/temp/067c78e9f121dce3.pyi delete mode 100644 Test/TestProject2/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/TestProject2/temp/0df65b8ed15664b0.pyi delete mode 100644 Test/TestProject2/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/TestProject2/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/TestProject2/temp/19f8024d10c828e8.pyi delete mode 100644 Test/TestProject2/temp/1c46d554b3a3f9f3.pyi delete mode 100644 Test/TestProject2/temp/1c46d554b3a3f9f3.stub.ll.dep delete mode 100644 Test/TestProject2/temp/213348433fb01cc6.pyi delete mode 100644 Test/TestProject2/temp/213348433fb01cc6.stub.ll.dep delete mode 100644 Test/TestProject2/temp/257e074b935c33b4.pyi delete mode 100644 Test/TestProject2/temp/257e074b935c33b4.stub.ll.dep delete mode 100644 Test/TestProject2/temp/271ea3decb810db2.pyi delete mode 100644 Test/TestProject2/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/TestProject2/temp/451745df21e598af.pyi delete mode 100644 Test/TestProject2/temp/541a1ed9b8be53c8.pyi delete mode 100644 Test/TestProject2/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/TestProject2/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/TestProject2/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/TestProject2/temp/6ff26590374ae6fc.pyi delete mode 100644 Test/TestProject2/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/TestProject2/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/TestProject2/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/TestProject2/temp/8ebed83a7817fa0c.pyi delete mode 100644 Test/TestProject2/temp/90921d009fdd674c.pyi delete mode 100644 Test/TestProject2/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/TestProject2/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/TestProject2/temp/96837bcc64032444.pyi delete mode 100644 Test/TestProject2/temp/ba12ed409d78139e.pyi delete mode 100644 Test/TestProject2/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/TestProject2/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/TestProject2/temp/c9d54a4158f7f5a8.pyi delete mode 100644 Test/TestProject2/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/TestProject2/temp/cfc83b830141b00e.pyi delete mode 100644 Test/TestProject2/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/TestProject2/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/TestProject2/temp/d541ade6afb689a5.pyi delete mode 100644 Test/TestProject2/temp/d63d2c2a2bd9bd2a.pyi delete mode 100644 Test/TestProject2/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/TestProject2/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/TestProject2/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/TestProject2/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/TestProject2/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/TestProject2/temp/ffaf70367668b227.vpi delete mode 100644 Test/TestProject3/temp/0019c939aae7f9f1.pyi delete mode 100644 Test/TestProject3/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/TestProject3/temp/0035c95a18d4f8e8.stub.ll.dep delete mode 100644 Test/TestProject3/temp/067c78e9f121dce3.pyi delete mode 100644 Test/TestProject3/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/TestProject3/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/TestProject3/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/TestProject3/temp/1b58766d38d05de3.pyi delete mode 100644 Test/TestProject3/temp/271ea3decb810db2.pyi delete mode 100644 Test/TestProject3/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/TestProject3/temp/285a822aa26bfbda.pyi delete mode 100644 Test/TestProject3/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/TestProject3/temp/64ac83614c9bdbc6.pyi delete mode 100644 Test/TestProject3/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/TestProject3/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/TestProject3/temp/71e0a3ffcb3ebfad.pyi delete mode 100644 Test/TestProject3/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/TestProject3/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/TestProject3/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/TestProject3/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/TestProject3/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/TestProject3/temp/93c1d18e35d188d6.pyi delete mode 100644 Test/TestProject3/temp/93c1d18e35d188d6.stub.ll.dep delete mode 100644 Test/TestProject3/temp/b235d6477436c524.pyi delete mode 100644 Test/TestProject3/temp/b777c587cc21465a.pyi delete mode 100644 Test/TestProject3/temp/ba12ed409d78139e.pyi delete mode 100644 Test/TestProject3/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/TestProject3/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/TestProject3/temp/c01b27dbcd683245.pyi delete mode 100644 Test/TestProject3/temp/c3b259b4059f8668.pyi delete mode 100644 Test/TestProject3/temp/c3b259b4059f8668.stub.ll.dep delete mode 100644 Test/TestProject3/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/TestProject3/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/TestProject3/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/TestProject3/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/TestProject3/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/TestProject3/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/TestProject3/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/TestProject3/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/TestProject3/temp/ffaf70367668b227.vpi delete mode 100644 Test/TypeCastTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/TypeCastTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/TypeCastTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/TypeCastTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/TypeCastTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/TypeCastTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/TypeCastTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/TypeCastTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/TypeCastTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/TypeCastTest/temp/78418cf2ee722f0f.pyi delete mode 100644 Test/TypeCastTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/TypeCastTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/TypeCastTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/TypeCastTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/TypeCastTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/TypeCastTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/TypeCastTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/TypeCastTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/VRandomTest/output/62cc01c2bb770ca3.deps.json delete mode 100644 Test/VRandomTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/VRandomTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/VRandomTest/temp/3f7c5e78d8652535.pyi delete mode 100644 Test/VRandomTest/temp/62cc01c2bb770ca3.pyi delete mode 100644 Test/VRandomTest/temp/62cc01c2bb770ca3.stub.ll.dep delete mode 100644 Test/VRandomTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/VRandomTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/VRandomTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/VRandomTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/VRandomTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/VRandomTest/temp/e24a7f4a875f4518.pyi delete mode 100644 Test/VRandomTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/VariadicTest/output/067c78e9f121dce3.deps.json delete mode 100644 Test/VariadicTest/output/06f53cc594b4ac6c.deps.json delete mode 100644 Test/VariadicTest/output/3ed8c578036234a7.deps.json delete mode 100644 Test/VariadicTest/output/6446627d4f07a1b5.deps.json delete mode 100644 Test/VariadicTest/output/72dbbb563aa943b0.deps.json delete mode 100644 Test/VariadicTest/output/72e2d5ccb7cedcf1.deps.json delete mode 100644 Test/VariadicTest/output/_shared_sym_includes.pickle delete mode 100644 Test/VariadicTest/output/c9f4be41ca1cc2b4.deps.json delete mode 100644 Test/VariadicTest/output/f6b51804a0ba8ff0.deps.json delete mode 100644 Test/VariadicTest/output/ffaf70367668b227.deps.json delete mode 100644 Test/VariadicTest/temp/3ed8c578036234a7.stub.ll.dep delete mode 100644 Test/VariadicTest/temp/3ed8c578036234a7.vpi delete mode 100644 Test/VariadicTest/temp/72dbbb563aa943b0.vpi delete mode 100644 Test/VariadicTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/VariadicTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/WebTest/output/b558d8d8f01f4825.deps.json delete mode 100644 Test/WebTest/output/d7e3386b828acb66.deps.json delete mode 100644 Test/WebTest/temp/271ea3decb810db2.pyi delete mode 100644 Test/WebTest/temp/271ea3decb810db2.stub.ll.dep delete mode 100644 Test/WebTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/WebTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/WebTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/WebTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/WebTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/WebTest/temp/8046d45456d0b153.pyi delete mode 100644 Test/WebTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/WebTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/WebTest/temp/93c1d18e35d188d6.pyi delete mode 100644 Test/WebTest/temp/93c1d18e35d188d6.stub.ll.dep delete mode 100644 Test/WebTest/temp/b558d8d8f01f4825.pyi delete mode 100644 Test/WebTest/temp/b558d8d8f01f4825.stub.ll.dep delete mode 100644 Test/WebTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/WebTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/WebTest/temp/c9f4be41ca1cc2b4.pyi delete mode 100644 Test/WebTest/temp/d089e25a15c6f6e0.pyi delete mode 100644 Test/WebTest/temp/d089e25a15c6f6e0.stub.ll.dep delete mode 100644 Test/WebTest/temp/d7e3386b828acb66.pyi delete mode 100644 Test/WebTest/temp/d7e3386b828acb66.stub.ll.dep delete mode 100644 Test/WebTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/WebTest/temp/f9d023d1df2bc9c5.stub.ll.dep delete mode 100644 Test/WebTest/temp/f9d023d1df2bc9c5.vpi delete mode 100644 Test/WebTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/WebTest/temp/ffaf70367668b227.vpi delete mode 100644 Test/ZlibTest/temp/0035c95a18d4f8e8.pyi delete mode 100644 Test/ZlibTest/temp/03b24bc1d9327958.pyi delete mode 100644 Test/ZlibTest/temp/067c78e9f121dce3.pyi delete mode 100644 Test/ZlibTest/temp/06f53cc594b4ac6c.pyi delete mode 100644 Test/ZlibTest/temp/0f8134f67bdaba8f.pyi delete mode 100644 Test/ZlibTest/temp/14d33679f7fadf1f.pyi delete mode 100644 Test/ZlibTest/temp/14d33679f7fadf1f.stub.ll.dep delete mode 100644 Test/ZlibTest/temp/6446627d4f07a1b5.pyi delete mode 100644 Test/ZlibTest/temp/6f62fe05c5ea1ceb.pyi delete mode 100644 Test/ZlibTest/temp/6f62fe05c5ea1ceb.stub.ll.dep delete mode 100644 Test/ZlibTest/temp/72e2d5ccb7cedcf1.pyi delete mode 100644 Test/ZlibTest/temp/784dde8a8697b7ab.pyi delete mode 100644 Test/ZlibTest/temp/7e529fe7a078cfef.pyi delete mode 100644 Test/ZlibTest/temp/7e529fe7a078cfef.stub.ll.dep delete mode 100644 Test/ZlibTest/temp/90c53dd6db8d41cf.pyi delete mode 100644 Test/ZlibTest/temp/90c53dd6db8d41cf.stub.ll.dep delete mode 100644 Test/ZlibTest/temp/9b7d2adaae94f021.pyi delete mode 100644 Test/ZlibTest/temp/ba12ed409d78139e.pyi delete mode 100644 Test/ZlibTest/temp/ba12ed409d78139e.stub.ll.dep delete mode 100644 Test/ZlibTest/temp/bbdf3bbd4c3bc28c.pyi delete mode 100644 Test/ZlibTest/temp/cb151b297f4ea56d.pyi delete mode 100644 Test/ZlibTest/temp/d855b3e66d1d6522.pyi delete mode 100644 Test/ZlibTest/temp/dd19090b337e9bea.pyi delete mode 100644 Test/ZlibTest/temp/e445a2bb299d1b7d.pyi delete mode 100644 Test/ZlibTest/temp/f5522571bcce7bcb.pyi delete mode 100644 Test/ZlibTest/temp/f6b51804a0ba8ff0.pyi delete mode 100644 Test/ZlibTest/temp/ffaf70367668b227.stub.ll.dep delete mode 100644 Test/ZlibTest/temp/ffaf70367668b227.vpi create mode 100644 TestProject/.gitignore create mode 100644 TestProject/App/main.vp create mode 100644 TestProject/LICENSE create mode 100644 TestProject/README.md create mode 100644 TestProject/project.vpj delete mode 100644 stest/BuddyTest/.tpv_buil/temp/_sha1_map.txt delete mode 100644 test.vp delete mode 100644 thistest/.tpv_build/temp/03/03d3ece355d95d76.deps.txt delete mode 100644 thistest/.tpv_build/temp/06/067c78e9f121dce3.deps.txt delete mode 100644 thistest/.tpv_build/temp/06/06f53cc594b4ac6c.deps.txt delete mode 100644 thistest/.tpv_build/temp/07/07536d26b435806c.deps.txt delete mode 100644 thistest/.tpv_build/temp/0c/0c67644125bea0fd.deps.txt delete mode 100644 thistest/.tpv_build/temp/0c/0cb53ffd1825de7e.deps.txt delete mode 100644 thistest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt delete mode 100644 thistest/.tpv_build/temp/13/13110effbb0bb06c.deps.txt delete mode 100644 thistest/.tpv_build/temp/14/143d6f5584d3b646.deps.txt delete mode 100644 thistest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt delete mode 100644 thistest/.tpv_build/temp/1f/1f6617c02fc8899d.deps.txt delete mode 100644 thistest/.tpv_build/temp/20/20cd49775c100a38.deps.txt delete mode 100644 thistest/.tpv_build/temp/20/20cd49775c100a38.vpi delete mode 100644 thistest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt delete mode 100644 thistest/.tpv_build/temp/24/240a9a4157959a9f.deps.txt delete mode 100644 thistest/.tpv_build/temp/24/240a9a4157959a9f.vpi delete mode 100644 thistest/.tpv_build/temp/28/285a822aa26bfbda.deps.txt delete mode 100644 thistest/.tpv_build/temp/28/285b6aa29a34754d.deps.txt delete mode 100644 thistest/.tpv_build/temp/28/285b6aa29a34754d.vpi delete mode 100644 thistest/.tpv_build/temp/28/28de517e3820658a.deps.txt delete mode 100644 thistest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt delete mode 100644 thistest/.tpv_build/temp/2f/2ff06fad52dc2c2c.deps.txt delete mode 100644 thistest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt delete mode 100644 thistest/.tpv_build/temp/32/32cfd766982bc6e7.vpi delete mode 100644 thistest/.tpv_build/temp/33/33d64eeb99369a85.deps.txt delete mode 100644 thistest/.tpv_build/temp/34/3487a256b250bb74.deps.txt delete mode 100644 thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.deps.txt delete mode 100644 thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.vpi delete mode 100644 thistest/.tpv_build/temp/3b/3b96973f2c5c4418.deps.txt delete mode 100644 thistest/.tpv_build/temp/3e/3e775aa83705b119.deps.txt delete mode 100644 thistest/.tpv_build/temp/3f/3f7c5e78d8652535.deps.txt delete mode 100644 thistest/.tpv_build/temp/40/40c03bc03431ef81.deps.txt delete mode 100644 thistest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt delete mode 100644 thistest/.tpv_build/temp/45/451745df21e598af.deps.txt delete mode 100644 thistest/.tpv_build/temp/48/4826f733b0735536.deps.txt delete mode 100644 thistest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt delete mode 100644 thistest/.tpv_build/temp/63/63d0e4548b4c4672.deps.txt delete mode 100644 thistest/.tpv_build/temp/63/63f2c82fe8a3ef8e.deps.txt delete mode 100644 thistest/.tpv_build/temp/64/6446627d4f07a1b5.deps.txt delete mode 100644 thistest/.tpv_build/temp/65/657e182b27c2a022.deps.txt delete mode 100644 thistest/.tpv_build/temp/69/691880abe4506068.deps.txt delete mode 100644 thistest/.tpv_build/temp/69/691880abe4506068.vpi delete mode 100644 thistest/.tpv_build/temp/6b/6b3bc463fd044545.deps.txt delete mode 100644 thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.deps.txt delete mode 100644 thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.vpi delete mode 100644 thistest/.tpv_build/temp/6d/6d535de0b03e99b5.deps.txt delete mode 100644 thistest/.tpv_build/temp/6d/6dde8fc09b24666c.deps.txt delete mode 100644 thistest/.tpv_build/temp/6d/6ddf430432a0e373.deps.txt delete mode 100644 thistest/.tpv_build/temp/6d/6ddf430432a0e373.vpi delete mode 100644 thistest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt delete mode 100644 thistest/.tpv_build/temp/71/71e0a3ffcb3ebfad.deps.txt delete mode 100644 thistest/.tpv_build/temp/72/72e2d5ccb7cedcf1.deps.txt delete mode 100644 thistest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt delete mode 100644 thistest/.tpv_build/temp/74/74cd54a2cba56957.deps.txt delete mode 100644 thistest/.tpv_build/temp/7c/7cadfe07e983fd90.deps.txt delete mode 100644 thistest/.tpv_build/temp/7c/7cadfe07e983fd90.vpi delete mode 100644 thistest/.tpv_build/temp/7d/7d8c26e41226955a.deps.txt delete mode 100644 thistest/.tpv_build/temp/87/874bac141c97bae9.deps.txt delete mode 100644 thistest/.tpv_build/temp/8e/8ebed83a7817fa0c.deps.txt delete mode 100644 thistest/.tpv_build/temp/90/90921d009fdd674c.deps.txt delete mode 100644 thistest/.tpv_build/temp/96/96837bcc64032444.deps.txt delete mode 100644 thistest/.tpv_build/temp/99/995f884b86cf981e.deps.txt delete mode 100644 thistest/.tpv_build/temp/a2/a2c1138ed2328b33.deps.txt delete mode 100644 thistest/.tpv_build/temp/a3/a335eb99f2e34479.deps.txt delete mode 100644 thistest/.tpv_build/temp/a4/a44503977f4f5951.deps.txt delete mode 100644 thistest/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt delete mode 100644 thistest/.tpv_build/temp/a6/a68b70f233541a7f.deps.txt delete mode 100644 thistest/.tpv_build/temp/a7/a7748ef067f79205.deps.txt delete mode 100644 thistest/.tpv_build/temp/a7/a7c3f904686e42ce.deps.txt delete mode 100644 thistest/.tpv_build/temp/a7/a7c3f904686e42ce.vpi delete mode 100644 thistest/.tpv_build/temp/a7/a7cef7aa679215d9.deps.txt delete mode 100644 thistest/.tpv_build/temp/aa/aa246c6e6aa30484.deps.txt delete mode 100644 thistest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi delete mode 100644 thistest/.tpv_build/temp/ab/ab0baf141ec5b021.deps.txt delete mode 100644 thistest/.tpv_build/temp/af/af37c9ab38eea99e.deps.txt delete mode 100644 thistest/.tpv_build/temp/b3/b311b47f33281389.deps.txt delete mode 100644 thistest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt delete mode 100644 thistest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt delete mode 100644 thistest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt delete mode 100644 thistest/.tpv_build/temp/b5/b57252077e6b596b.deps.txt delete mode 100644 thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.deps.txt delete mode 100644 thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.vpi delete mode 100644 thistest/.tpv_build/temp/c1/c18c3a20f82d7525.deps.txt delete mode 100644 thistest/.tpv_build/temp/c3/c3a6aed1f1fb8b1e.deps.txt delete mode 100644 thistest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt delete mode 100644 thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.deps.txt delete mode 100644 thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.vpi delete mode 100644 thistest/.tpv_build/temp/d1/d137b1f3311f3a7f.deps.txt delete mode 100644 thistest/.tpv_build/temp/d1/d152115b49e50218.deps.txt delete mode 100644 thistest/.tpv_build/temp/d3/d3917d97537f703c.deps.txt delete mode 100644 thistest/.tpv_build/temp/d5/d541ade6afb689a5.deps.txt delete mode 100644 thistest/.tpv_build/temp/d6/d63d2c2a2bd9bd2a.deps.txt delete mode 100644 thistest/.tpv_build/temp/d9/d989a211953ede05.deps.txt delete mode 100644 thistest/.tpv_build/temp/de/de3357cb9182715e.deps.txt delete mode 100644 thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.deps.txt delete mode 100644 thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.vpi delete mode 100644 thistest/.tpv_build/temp/e1/e1f7ae4d330dcf9f.deps.txt delete mode 100644 thistest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt delete mode 100644 thistest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi delete mode 100644 thistest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt delete mode 100644 thistest/.tpv_build/temp/f6/f6ab8989f3545e83.deps.txt delete mode 100644 thistest/.tpv_build/temp/f6/f6b51804a0ba8ff0.deps.txt delete mode 100644 thistest/.tpv_build/temp/f7/f742623d43c327ea.deps.txt delete mode 100644 thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt delete mode 100644 thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi delete mode 100644 thistest/.tpv_build/temp/f9/f9e36e2cd6fa659f.deps.txt delete mode 100644 thistest/.tpv_build/temp/fc/fc980acec33d69a7.deps.txt delete mode 100644 thistest/.tpv_build/temp/fc/fc980acec33d69a7.vpi delete mode 100644 thistest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt delete mode 100644 thistest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt delete mode 100644 thistest/.tpv_build/temp/ff/ffaf70367668b227.vpi diff --git a/.transpyc_cache/067c78e9f121dce3.pyi b/.transpyc_cache/067c78e9f121dce3.pyi deleted file mode 100644 index a606126..0000000 --- a/.transpyc_cache/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.vp -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/.transpyc_cache/06f53cc594b4ac6c.pyi b/.transpyc_cache/06f53cc594b4ac6c.pyi deleted file mode 100644 index ac278f4..0000000 --- a/.transpyc_cache/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.vp -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/.transpyc_cache/bbdf3bbd4c3bc28c.pyi b/.transpyc_cache/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 4709b3e..0000000 --- a/.transpyc_cache/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.vp -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/.transpyc_cache/c9f4be41ca1cc2b4.pyi b/.transpyc_cache/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index f7ed5fd..0000000 --- a/.transpyc_cache/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.vp -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT = 0, owned: bool = False) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/.transpyc_cache/f5522571bcce7bcb.pyi b/.transpyc_cache/f5522571bcce7bcb.pyi deleted file mode 100644 index f0bc071..0000000 --- a/.transpyc_cache/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.vp -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/.transpyc_cache/f6b51804a0ba8ff0.pyi b/.transpyc_cache/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 6ee80a6..0000000 --- a/.transpyc_cache/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.vp -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/TODO b/TODO index f038a5c..c359d22 100644 --- a/TODO +++ b/TODO @@ -38,4 +38,9 @@ init_set 构造 不在乎编译器时间的大小优化(无关符号剔除) 给 linkedlist 库改成 node 库,或者拆分 linkedlist 库 TPV 的 typedef 名是硬编码的,后期尝试修正 -TPV 再次支持泛型能力检查和字节序 \ No newline at end of file +TPV 再次支持泛型能力检查和字节序 + +TPV 避免虚类问题,参见 ast/base.vp:224行 +TPV 虚类判断问题,参见 ast/parser.vp:2037行 + +替换式实现注入猴子,带有含函数指针检测和函数指针还原 \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/08/08ea5281873244fd.vpi b/Test/ArgparseTest/.tpv_build/temp/08/08ea5281873244fd.vpi deleted file mode 100644 index 21d71ae..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/08/08ea5281873244fd.vpi +++ /dev/null @@ -1,15 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import stdio -import stdlib -import string -import memhub -import argparse -import testcheck -_mbuddy: memhub.MemBuddy | t.CPtr -@t.CExport -def main() -> int: pass - diff --git a/Test/ArgparseTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt b/Test/ArgparseTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt deleted file mode 100644 index c76c2b1..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib ast.tokens \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt b/Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt deleted file mode 100644 index 789f582..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdint \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.vpi b/Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.vpi deleted file mode 100644 index 4a3ca03..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/2b/2b77d783c41d21d1.vpi +++ /dev/null @@ -1,41 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import string -import memhub -from stdint import * -_HT_EMPTY: t.CDefine = 0 -_HT_TOMBSTONE: t.CDefine = 1 -_HT_INIT_CAP: t.CDefine = 16 -_HT_SLOT_SIZE: t.CDefine = 24 -_FNV_OFFSET: t.CUInt64T = 2216829733 -_FNV_PRIME: t.CUInt64T = 435 -def _fnv1a_hash(key: str) -> t.CUInt64T: pass - -class HashTable: - __slots__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __tombstones__: t.CSizeT - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT - def __new__(self, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self, mb: memhub.MemBuddy | t.CPtr): pass - def _slot_hash(self, idx: t.CSizeT) -> t.CUInt64T: pass - def _slot_key(self, idx: t.CSizeT) -> str: pass - def _slot_value(self, idx: t.CSizeT) -> t.CPtr: pass - def _set_slot(self, idx: t.CSizeT, h: t.CUInt64T, key: str, val: t.CPtr): pass - def _find_slot(self, key: str, h: t.CUInt64T) -> t.CSizeT: pass - def _resize(self, new_cap: t.CSizeT): pass - def __setitem__(self, key: str, val: t.CNeedPtr): pass - def __getitem__(self, key: str) -> t.CPtr: pass - def __contains__(self, key: str) -> t.CInt: pass - def __delitem__(self, key: str) -> t.CInt: pass - def __len__(self) -> t.CSizeT: pass - def __iter__(self) -> HashTable | t.CPtr: pass - def __next__(self) -> str: pass - def get(self, key: str, default: t.CPtr) -> t.CPtr: pass - def set_int(self, key: str, val: int): pass - def set_str(self, key: str, val: str): pass - diff --git a/Test/ArgparseTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt b/Test/ArgparseTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt deleted file mode 100644 index c19302e..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdio t c \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt b/Test/ArgparseTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt b/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt index 8046f59..25f8285 100644 --- a/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/ArgparseTest/.tpv_build/temp/_sha1_map.txt @@ -1,18 +1,18 @@ -b370d93b74bf55cc:includes/argparse.vp +104b74146bf17483:includes/argparse.vp aa246c6e6aa30484:includes/atom.vp -2b77d783c41d21d1:includes/hashtable.vp +4c1f8f779b98eab9:includes/hashtable.vp 6ddf430432a0e373:includes/json/__init__.vp 240a9a4157959a9f:includes/json/__parser.vp 20cd49775c100a38:includes/json/__writer.vp -f9d023d1df2bc9c5:includes/memhub.vp +04e5fe47ff2af528:includes/memhub.vp f5522571bcce7bcb:includes/stdint.vp 285b6aa29a34754d:includes/stdio.vp 6c658cc728d0bbf4:includes/stdlib.vp -ffaf70367668b227:includes/string.vp +928c0ff6d8c69ec9:includes/string.vp 748d0424e8976fa0:includes/testcheck.vp c9f4be41ca1cc2b4:includes/viperio.vp fc980acec33d69a7:includes/w32/win32base.vp bbdf3bbd4c3bc28c:includes/w32/win32console.vp e0f0afe3caa1e486:includes/_dict.vp 7cadfe07e983fd90:includes/_list.vp -08ea5281873244fd:main.vp +356c943c53331be0:main.vp diff --git a/Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt b/Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt deleted file mode 100644 index 60b345d..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdio hashtable \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.vpi b/Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.vpi deleted file mode 100644 index 29fecc1..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/b3/b370d93b74bf55cc.vpi +++ /dev/null @@ -1,64 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import string -import memhub -import stdio -import hashtable -STRING: t.CDefine = 0 -INT: t.CDefine = 1 -BOOL: t.CDefine = 2 -STORE: t.CDefine = 0 -STORE_TRUE: t.CDefine = 1 -STORE_FALSE: t.CDefine = 2 -COUNT: t.CDefine = 3 -MAX_ARGS: t.CDefine = 32 -_mbuddy: memhub.MemBuddy | t.CPtr -class Argument: - name: str - short_name: str - help_text: str - arg_type: int - action: int - default_int: int - default_str: str - required: bool - is_positional: bool - dest: str - -class ParsedArgs: - _ht: hashtable.HashTable | t.CPtr - __mbuddy__: memhub.MemBuddy | t.CPtr - def __new__(self, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self, mb: memhub.MemBuddy | t.CPtr): pass - def get_str(self, name: str) -> str: pass - def get_int(self, name: str) -> int: pass - def get_bool(self, name: str) -> bool: pass - def has(self, name: str) -> bool: pass - def _set_str(self, name: str, val: str): pass - def _set_int(self, name: str, val: int): pass - def _set_bool(self, name: str, val: bool): pass - -class ArgumentParser: - _prog: str - _description: str - _args: Argument | t.CPtr - _arg_count: int - __mbuddy__: memhub.MemBuddy | t.CPtr - def __new__(self, prog: str, description: str, pool: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self, prog: str, description: str, pool: memhub.MemBuddy | t.CPtr): pass - def add_argument(self, name: str, short: str, arg_type: int, default: int, default_str: str, required: bool, action: int, help: str): pass - def _get_arg(self, idx: int) -> Argument | t.CPtr: pass - def _find_long(self, token: str) -> int: pass - def _find_long_prefix(self, token: str) -> int: pass - def _find_short(self, token: str) -> int: pass - def _find_positional(self, pos_idx: int) -> int: pass - def _store_value(self, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr, value: str): pass - def _apply_action(self, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr): pass - def parse_args(self, argc: int, argv: str | t.CPtr) -> ParsedArgs | t.CPtr: pass - def print_help(self): pass - def print_usage(self): pass - -def release(args: ParsedArgs | t.CPtr): pass - diff --git a/Test/ArgparseTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt b/Test/ArgparseTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt b/Test/ArgparseTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt deleted file mode 100644 index 3d26bad..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.visitor ast.lexer ast.parser ast.parser \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt b/Test/ArgparseTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt deleted file mode 100644 index 6ede9fe..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt b/Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt deleted file mode 100644 index 6803c16..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string atom viperio stdio stdlib \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi b/Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi deleted file mode 100644 index fb3ad3b..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,97 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - -@t.CVTable -class MemManager: - __provides__: list[str] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def calloc(self, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self) -> 'MemManager' | t.CPtr: pass - def __exit__(self): pass - def alloc_buf(self, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass - -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemBuddy(MemManager): - __provides__: list[str] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def mark(self) -> t.CSizeT: pass - def reset_to(self, mark: t.CSizeT): pass - def reset_all(self): pass - def _fl_push(self, order: t.CInt, block: t.CVoid | t.CPtr): pass - def _fl_pop(self, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self, block: t.CVoid | t.CPtr, order: t.CInt): pass - def _is_valid_ptr(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self): pass - def _unlock(self): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self) -> t.CSizeT: pass - def stats(self) -> t.CSizeT: pass - def free_count(self) -> t.CSizeT: pass - def free_bytes(self) -> t.CSizeT: pass - def used_bytes(self) -> t.CSizeT: pass - def dump_stats(self, label: t.CChar | t.CPtr): pass - def self_check(self) -> t.CInt: pass - diff --git a/Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt b/Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt deleted file mode 100644 index 0ec8cde..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t c \ No newline at end of file diff --git a/Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.vpi b/Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.vpi deleted file mode 100644 index 2e97004..0000000 --- a/Test/ArgparseTest/.tpv_build/temp/ff/ffaf70367668b227.vpi +++ /dev/null @@ -1,54 +0,0 @@ -"""Auto-generated Python stub file""" - - -from stdint import * -import t, c -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - -ascii_lowercase: str -ascii_uppercase: str -ascii_letters: str -digits: str -hexdigits: str -octdigits: str -punctuation: str -whitespace: str -printable: str diff --git a/Test/ArgparseTest/App/main.vp b/Test/ArgparseTest/App/main.vp index cebacfc..48501ba 100644 --- a/Test/ArgparseTest/App/main.vp +++ b/Test/ArgparseTest/App/main.vp @@ -14,6 +14,7 @@ _mbuddy: memhub.MemBuddy | t.CPtr @t.CExport def main() -> int: + global _mbuddy testcheck.begin("ArgparseTest: 命令行参数解析") # 初始化内存管理器 @@ -90,7 +91,6 @@ def main() -> int: cnt: INT = args.get_int("count") verb: INT = args.get_bool("verbose") out: str = args.get_str("output") - stdio.printf("[DBG] has(verbose)=%d, get_bool(verbose)=%d\n", 1 if args.has("verbose") else 0, 1 if verb else 0) testcheck.check(string.strcmp(inp, "test.txt") == 0, "input = test.txt", "input mismatch") testcheck.check(cnt == 42, "count = 42", "count mismatch") testcheck.check(verb == True, "verbose = True", "verbose mismatch") @@ -121,7 +121,6 @@ def main() -> int: string.strcpy(a2, "output2.dat") a2_ptr: str | t.CPtr = t.CPtr(t.CUInt64T(argv2) + 16) a2_ptr[0] = a2 - args2 = parser.parse_args(3, argv2) if args2 is not None: testcheck.ok("parse_args returned non-NULL") diff --git a/Test/ArgparseTest/output/08ea5281873244fd.deps.json b/Test/ArgparseTest/output/08ea5281873244fd.deps.json deleted file mode 100644 index bbfdc83..0000000 --- a/Test/ArgparseTest/output/08ea5281873244fd.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "argparse": "aba439b7882ad9d6", "hashtable": "b8c66c8ff44eb874", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/2b77d783c41d21d1.deps.json b/Test/ArgparseTest/output/2b77d783c41d21d1.deps.json deleted file mode 100644 index a3cc1a6..0000000 --- a/Test/ArgparseTest/output/2b77d783c41d21d1.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/748d0424e8976fa0.deps.json b/Test/ArgparseTest/output/748d0424e8976fa0.deps.json index a3cc1a6..0a902a1 100644 --- a/Test/ArgparseTest/output/748d0424e8976fa0.deps.json +++ b/Test/ArgparseTest/output/748d0424e8976fa0.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "argparse": "104b74146bf17483", "stdio": "285b6aa29a34754d", "main": "356c943c53331be0", "hashtable": "4c1f8f779b98eab9", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/_shared_sym_includes.pickle b/Test/ArgparseTest/output/_shared_sym_includes.pickle index 5cb597cd74ed6dc5f7664a180627be65c9f8b454..60ec88e9b35e34c8021d180178cbccf52e62a651 100644 GIT binary patch literal 434276 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 d)I44~XZQ;AaW_r{m zV~z96HE%YZ7+03&1iwH41p#-y;hWtk!*oS1B`~ix|pQJ!pU#5`~^#^0AXfi9! z%QT*l@hzH2X49D#d^r(|$jLBqOJ|xwa#GGeUBtf`AItH$e99jRk0-J>XEXJQWGpTp zLmJKDgnuj*4f;VaomrxP_D{%hSqohw$B*sEW@=8v!lCS4Svj**3xojvs64LlI16va zm1HU&&8jV$EY&6Ia{2^*>Z;6QNFp2!Mp7XXUoxAi?d^%hA_alfo{%Fc#VrUASN-F+XJVdFg?U@z|s|i;VU}NEnFVjE|6G=IV%r1(>!^gr=ne;JNx_GGN z*q6F18^|p5C&sht(oB=4kq4EetciuIMhzs56zd}4s1l7KFEwK*efq6=JQhkt6kZzm zUO%pk2b4IpH?xe=2~M0!symF&qA9Ip5myuc zmVZVshNH*=7Zm^G55z*JsKgd&4|LV>X~K!dqNm1VsRV^z9M8o?qK;C%AXQuxQi2gV zu7otPPb=DjRCl+7%mOywjXN5V3aS`t?h zvB(LES9^f!M4=MNc!~?4p1vS66cnYDiiTrR`rJgHQ9dLQ`UXYddVvN+`wG=hYGDzd zCOLYxn7(jwn&jyhM9cZo=jC{MGN?@8RX-63rn7ibv&&`(`roT zM8%m)PisSMTLoX~YMRknAaxTpK3bJkFL5U;H6?&?eU7nx3pfSWT$AL2-aK`{Exprr z1)6p!(1z~#vDCOiosyffbkA=MsrsR5srrbLNFJqJQWus`_?M(IK5;bA-nApNyFJj= z5g6OKGZ-}0fGz3)TRQ4C>Y;j7IiByK)Ez#x^-{HsYD7m`-I-Q9Ppe(IzGnWEeT~b4 zZ7-wVIu&eFLXE|fxjw|M^H$%V>(S3v2{fuoWWt}MR@q*+&w2qgkg1pJh;0>MTc)PB zpK88t-rCoNjnlNd&fvOGCu_aDeVgz^sd{i0ux}=_MovYNWa&B8gsKq%S&Y@%7{rxZ zQ(-dA9r$1FR14Di{&4EC*BRUfEFz)t$XU??dfDLD=lWLr7RHN~p4Ba&l9HrV#>U=_ZI_?% zKFw#moou`MxDrvYAZV*ZQ!vcUb!QfacWuRDTW-GFb~eWIG5Be$OPCiOeoBJGOtXLq zNf$%Ip0X8j=|zpY;gO+!-+osm?0yD(ksUiK4cBWnq`{}{)@&B``$hzFTWrg1e)+l8 z^b8IT2qw40mfV8!ldByb864^p%x*M42_DWxXhNK2in=JQQX%(Ff5wm za$AmGC~5EDsPOh>g)O^<<*$Mb2fJ_ZcMt6!7F-Kg+7jGYeuB$re85*$x9dZ9!Axl( zSf9aC-|fbZo8~moiagOXVX}@*V7%dCpT;!VuF132i?z}-GVB3w886K<7Ct1&*rY9P zfKo`j3?mhG9*wT@0~K}w##%Gq$0W*dUy?8Lv)h7i$@4smP5DK6l4r9`zc|nGtTyfo zz3tg=<*zgsssF4t_Y3-aR@?mrv-oTu0AQ2Y1eUJ_+x?h!%&%O}%o3i_2G>=7znqMX zhl8{eFp>1rNe_QQaabguVm5b6ZaOz-B=K*pS(@B!Z==awrPSoE=eujt*2&$=&gjWq znrE8b24Gok>*x%2DxI?2zN2GThiL=w%oJ)yTi_Sx6)H#z1Mb$iXQ4^h!F(8Jck;V9 z>{hL$d7kXrWM5s#7hlfYH3ORWVjo8)y*~?KXj#;_B8U8AN;K%M87-_6@usBIIuUz} z*g5UhqxH(FEqR(U6JPQ;@++4i9GR3)CH#?C@VI|0 zuDGlBdOtumL}v%t5IK_~XJE`(6f-(Kw^p1Q6q>wowi9mk>+Homd1K`C5xwHI}}K?%8kdo9LeXHouAP*>Cup=$`%7 zzlrYIKLn^jUoLnsN2^}5Fy&{mYRztQI<+>%61Dr|C}fAtZauaw(A5>{+SMNHXbrWs zhFVSQv0E~Yet#koOC}soVNY*e>&!fgob9W-*7(1Z;5QA{TpkbA1SUU)kkDY3c> ze;n7AVRhHKV}Sj*R^;k#riH{Ili$K{()n!uPbf=HtDR?$Bxp|oHD>{G)rXwRRzKoF)}hv8IUA_cE`#hDG0Ve zG7jlWl0cipSPdQNW(%}nOqGfm|E^Pn81+jQI=>~TMkIB&M|?_;||JKEYqt)a2D zKyY_(XVLsSO}3Id%oAa93+XhY&B z@#dRpdQ_>Wmf;ZYwz8G4XH{n#wS9s5!YtvIOkHej%<%+kb(C|aNev%U{gZSTmqRmM z9dht;avb_T9FYTp^}Wra?@a-Iz^2;UwoJ1ohZ4Sgt3&BCO)2uVU&^O(mB^tH#}0EB z>Df)CRfEaXC`YJu@Q=$A_U#nysHo?wG`pr+q|vUI{HwPA7UzXQS5a2CC77v8CHRf7 zw$@rT)Qo0L09CIE9@n zl<(jjt`%ZYn){!6cidlfr`Eu&f4Z>Pp@W~H5}dZZGup-aiJ)4*4m3E_?<(lT*ilFF zRk8Uk(->5bGN66J4icy$MF`Q2;|}}Us$|I909~l+Nq!H_SvsB| zN64R*Kjl!@rm$)qoEho9jY@elst)yaVP)WSv~l|1&6cI2!zrg7Zh~LxkB}=+_{f}y zO}6D(vw|PG~F%=9p}CU75YklVRoJTq?Q_PO}pTyc40VI@K$fF z?c}W$C)))Te9OVUgV&Ar_`3)C_xtQkt0@ZH{ZpP~C&E3Wd-vX0 zvEqe08#}s^2Y2E7`34tTXHM%g$IFMw1E(G1#TELwU z1dgaS=t3y-z>2-ZB#67*2}0lqV};%hRL4MLZGmppj5l;$ueM>wxlg>*Fx zLJTTiO=FQdt*`~pmEfR{-Dt~$gFbb1lj5O~Ax{XB6DRTuv2klw?e$qE`q+OpksT*V zTrFkm|Gu%)g_dfmfq1QywfTnlApcw zeyd3jr}Ur3NAI1d)Pt{Qsgy1nVd)%V%z?QxCcDsdbeKyjeo zqYE7}btmXDL8lh!`5IfyAqgtcn!|(r-n2;C-Gz2~o6%UV5y!H2_`1O%Z+y9SsOIAP73^9jqf^feCtL%EZc&$SfY$Ssd2_spP({s)Hr)q z$V>C)6Q}J|*#Dss-yn{7!@!_#KmPZ|hHC5`h((X#e|sb92O8mX#1U>B^_KCnd`XvP z{wt07x#F1DcvsA|yqN8actHyv`jK}KQI)xt7qK@AT^Rd0EAMsuS$nhl($XN`0dKW9q=KBwlnLt}h_IL7rTSI-F7_hJIWiEW?8c9TH1``|^= zPnMqt3+`;lNs$k0L@yLaw05AUTR6=zjpk-?H0v=G@=SY6j{8n%WG@m&wszmZV7F%@ zqJ5E=>@XsFxkmM3aa8N}4vzK=cr?3O-@7-K3SjfTU8nO#jqD`?$?|gDZ=*!2}KL8#H}x^QitdcRoIE?pEahJ zi(^_#OucHU>ahUs*iJ23#K*MT#d7tkmEv3-+o+8i*XM}k>QxKHxjME_ts2)I0=Z&s z-ka*mF2&AaJ0q$`quDBsW*umHR9Bs6D26ni@W>~qyWu=Ns;ABa*nq~fT`*6N>ZtSb zY+U2nA&zG~YNux-*ambmyBw#R?$qe+6i2s#*HX{;Hs(52rx~Z$X@on)5^itvmN50K zPK58*2zQAk+}YtRVd`F;2!BK)yh|Wq-obiE7&mA+*Wu4;gm;T0+^BW6o-v+smi+4) zo~aGps~GLFk6qT<{Vqc;q7G_TO7I+G)Cat;k+{{8*{4c)CFIq z5x!O&;YLlFJ?xQk`s_s6r%~<}Oxe>O36x9pNPdlSk2uN;!rrvatPVYm-89C8#<5o% z$Aw{!+GMuIiR2v`$-N>;dejuNElwow(Ma}*BP2@^r}iap7;2HM)H6-l68EC6D^N= zvBT-dxDwW`r~IYHQxeCse%M2zw61v3G&S(SzMqsxciF%+$MD>SzbP zSYtXOn5lQw)X^AxjmC6T9Md{na^+QX6!(zJr1P6^-wW;`lbAr}2<*BR_oP%=kwd z>ie)0 z)x8?k=ZU83o&G-NM0G@?DvPG-oz4GaC#oThYCs&-CQX6cJgcm~b>f=TxCX^>t@ZcB zVh-0H&eDChdYNs5^iqvuNF2weL^4E{;da_N>&c|P`cpfi8B?;7)GUthq5@&Bc66|x z!!e>whm$EzoO_`ZwQ;98$Gm57a6n{Po70t~MdAuuPa1nlJ)zA0mNlTJI=b5_9z4W2Ub~q8Yq%KJUU1;iJ z_s-v<(=>Xd4mjCMoZ2;O@{%Ob6Q|y~hNxbK=PE zcPj9rv?WQPn@(NXJoVPeKH@~(n!F?lblRy8j6C$+$v)@Ay*P309#BEYDVFNSy0-=Y zbtm#R=}VG851zW>dFs}ZJ?TW>n!F?lbmy6uzPI%M;6&dheMz!9^}Kify!rF+FRfmm zR)?l{9Y|UY`BY_^ms;qZoo7xyS(C%WV!pG}l9nWau0Hh+$2*UoY=aZ+qO>JRpu^QlXcKzE{gnS19| zl)c)Cc~RPuB+$30K9=y%#VC8b6Y=82B}t&8Q9W@F{f#oGogDdvH9c`j66kbPujiVt zMsIwNGN+v#g|;33dvTahk_0*+HF5Xql%La94>Nb9E=dBNk(#)Bb@Qqy^l{F5@L%^(?T@{%ObNvS?sr3F@xjwm}FB+HLhwWK9UpuvtoBUcvHz+Z~4?ENuZ-t-F)H|-Lt8y`~zH z_s+)^`+w75pG#hn1iDZ)u=maZBm2ZO*yoa$B!T`^b@se}^-S}>G!^?o@{%ObxoUp7 z&)bUseJA=h=}VG8PpiiCJ*@h_oDTnd-52O~)yUt&%0J)XXj#T4eMu7NgH^Zeu>$4M zz}@MnWZtsRr7cMU{jus+9@6&8vUfT;nYZ%v#3f0fZ&o97uPl3~lawarnq@E0PpjV3 zaeecwr|Wa7>el2XNubkKy`|BV&NKRlo#@-7FG&JDxEj;APM|y2#@x0# z(Oz9M#)KtFpmSIKNS$yWuld7#JY`7|=<7Al*{i1AabDJxvLp#~{hCkNtLYlYIayQ6 zk|fX*tX`=^JA}>GW+W_00{z13vKHCaCSGC!33f7deBnk8yn@`!R z+Uz*_YD!s>1Uiw`ZE_D?tTHF}VR@TePh64&x|P-EoW1le%bdJy<>#F9sY{YT7qhxW zO15|*`NnbQfF*TF66l=P zkh*uSa2%~vOX`v&&|j?~b?ckxAghcB}t%HTYc)MGR|%D zd&3IJOOilOw?_8fRe48K)|$K|3G{wzOy0Xn?`YIolb0lc9&z<<)=Ph}Q(Crq;*uoL zN3P!9Rm4?pzP-z*E=dC2=IWL$xmT@(_uRZ?Ye-*`1p3m|E1jnvX4yC4Q`OF?mNj`v z66jf1FMV`3-Z|K1PdU-INner#`q|ZMzL)NH*&m(QTT+)KfnIm@)GOkAH{a^zQ^_=-JoA-#g`ZJoROhz9b2B_iIYuyFrfQ$uFDqB}t$U;AOeBbxr@oy8_PG zWk8YydIr|_k%@K?oZm#2OIVTwx(cq-irtd~F+MxXUTvo}*Lkz@&T-o8gC?zp(<)1= z$J1>&XSFXj+Zko=x4A4Wt5@x`{a1@MEqBW@_a4u^m}9RyS|nU0GS(d~;U4*!Gr0 z^@&SgoV`7}Mcv_3TQ61Hh-F7w-I-Q9Ppe(h##BIEO{CYP)wOALU0PkARyR;w=c?N> zwZlm{sbpW5b&9~JcKPW2^U~`1^a{^{Pu-JNuS}~~QJhy(QrD!_Ykg|>X|<=M$SLGO z`rmhZRy{NepFbt#t?oH(le2WGoHeQgnM0u~j*cdjc;e`Y5+4uyl#{8%(Y;FIcrrF| zbR;fE6NgUq(z8VJXm|YBgd9&O{7X_9pE%mKYiFQSmfLpA?Hye^J3`w}OoX##qRL9GYvG0C+aZF8;1SXw=nR@HKMQSfyxNKI-cQpv=b zX|0@9J&2tFRnkm>_j5ryP&?*Y33Rg}XS3$43f;(7s73{6*l1c$5>B5xanBuZ! z(3L`01KrlVhc^1>`wsnKNga8=lL3igP6Hq2%(o76s=MKUZ*@UBQa3ghNhQ?TbRW7J zcre13XJKyU2B+qk5B2~CP_72}qL}l&8nNx=7?`s!5nG3GIeW~V zBm|B^bCM{>Sd=|eLK1&;CkcTAFTS1|+g_I87dvl_Q7JAcd@CM&v5V=Mi^?K!sKE~l zP%}~10SA*f?=#uF=8oRbNVp}g+f!yEn@wp62k=hLP*@6bZx+pLDQH}d zL}Ec#1ak%vS;u_7t(0}l9$Q#)qFtIdH%`h1)IN2;d6u|kw(CHh!Ooq#g2Aq~U7;O; zz*vW*bHgIqNAGFZ~=pE-AZGU8wOH+@p(VRw=cXfk595=u~h%aJ`{62(*QL?O^d z!u%9OQC?GtEm`NPHVCu|^oF3^#sTYaM_pi7sF!(pdqj4lJK_Qxe{94iWp`x-%x?D0 zeeX7-*|#NfA{Y+)Be6*(9+VUA20yNtvfrTeC5b%n&u*jf*qA)lwWGbWtFv=gpslT| zd=pHkOYKX^nWX*T;_3rirBQ{)enC|0 zLg8a!mwS5L)r5;Qj_}Jbh-0IwoD@!Tr$!SF_(jo-1!?g_aB22wG~sDq5Y6U^R5X}O z$;ogmDzIvfYDD2wUl7rzNj02Q5)*PzWJjfFJmEZF5YI-wNk|SvMAA%YG~pv(5KXeK z;=zeiu2fcEqA6PK*A9i1TA)$g?UwXS=d4%Bfjh0KiaBpFg`qn=cAKAY5*ozCLhT&=gP>|^>&kP4vIM-+FqNp6pa zdDE-yabNb6TIVeuY1#^ZE#Kl{v$94fe(QVtPEN$)$+DdJ{VVMUFpDTqBZA`-g1dfq z=fP*t^`FN1cJn5hpNc$cIpeM$^QVG}ygnh1(^2ub;4;75>2M5M1nqE)O^YytGWS`_ zTfYxTp6FW2ADQm8Mj_d)B2m!fMN|; zD^LS4%va0V?vuq&7gyYsog3#Ddz&d~d9D{%<{0$N6}mc1Gd?3ebu_IW_NhmF>J4f2 zM)DVQ6a9RY{@$Vn)L?oBj+0!B^v@Aj=osdSH}K}>^NQQ{^8^?9gu9Ww`}sW2yYs&~ zn|`CfA}50`q0Dj$*JRM?-T4e``dJ*aXx!jDOEi7AZY4X~Gk2mpXHqQZU7N-Y%065!KK9d&Ad;mDtT(~=xb+I@#si)>*Ja)p}ino1hAyQAy=Eh=+ zI4!7=lQD7=+LD{JU7{}6kE5>g*?Vi%1wZ|DB9{km^n|9d$Lp_d8DOip60W5ZjzqjJ z;%yAKl{x$Gg=Z|s<-l2$G*9@9Uh}z3Tw$X+d+z0V8+&_8sj?=czAR;J9Tf6}&*-w= zF0QO=6B7}a2j=qKx3+zYH|2S+%lfFWhFmhkCv(Y3-?^EA;>n;L;xu42P5yv?WR4NrdG&*;nL1LdG_A zNfLNKfv(Hpx>t#F3b?DslDH%ZJhq@~eg#f1EW%b+*6R0f{xb=J?yzXqo? zX6`jW;1++QBs|>d&pzr-67ZiOXzLSs4d4}${&>0po_(7{kslbb@3|94 zMDcTXq7be7p_)VN>0S;UCYvQTy?SnccmF6;o;^qw$q&?1a8*SB~kW0TkHnn zp1-Ds-Ne7?8gh#}xd_~xMAvF_)7*nSO6(;j$=qdVQBQ9_!1KmlW6EEk626n-@ zuKHJj%ld{QFXQSy>vKn3;2O7HcfxD(Y_IyDOIL3+GcyAW1Z3IXf45T^)4!LPuMNvTJu& z=a{@hl#9G(|Ck((2p8KoHL>9~tH#<%^5q1eI@%>z-(?glAF0xByR33D*WyCFrga>(kk$1E$3ri*ugEa&woq zM^ENXj99$KtrMpJHR0%(y9*HKs`xCb_y%z$yikdTT=ml0uzIe}wyW2q)oXofcgbVv z=ZY)Q`b27cT#mc*?K@YhS4s2Kt7(#JI;DEPz*6l!`$}uuyb0Cq}B1X8cnM)y`jvkA_wD1ZgOm|$fTcR2KYRntsH!Aq)_?@i%|-dn8Pzk z!I%L_5;(1AltLvY_)JnTW$a%L?QZ<(@QSo$lxhoJ49V&@bn761&kIbAi(Z zCoq|YpiCE_g_90*YgHnJ+Sp`NahNn#&+}~E9!pPg7kj4p zM40X~4ac@uq~T<(oAmu!tPLN%BU+y$YTuSj;cU)*?|{CqK=StN%oxt7@2l+{930v! zm>+FCpIz@42!zJk2|9x9fneLNU{UWk{|0+P>Na+Nb15%i@c6dW=>n)3bO6@PsO)bk z;j(rBrRQen-)Jua_5rFfPPg5hHT1n~{F;Ujb`K2rhx&R)>_zNZv#^btg?H!MzT2~8 z<_#!g4ttHOqo6YjM`8{agjIqt1cuJ^sf4_KE$6poU?^1Jljt{@uFup&?hg2 z&^+0lq*H5w6wQL#w{=zzvcf4Jmeu9a1zT;zz>KP;Am(66V(S@d~uIu#e5^ z@`LJbAK0&}oPP}(k1FmTS64TGFS~{np~-{t$?$k;Tx%3dn4unak@wcjBO90gNpR+1 zZv0>zit8&qm9;(s=^Y&!9<0dF1AdWBLl3sgscw-;u%YB#1273TdNa$of)W-u%h(V& z98QD-5r+YoX9Gdn(x*P4TZQ`UxU|5{7FX@~XIedOx6#*2rEcuKuDc?t3|Ge{Rn9bz zM#I5aNaGYYA-Dn+mCDh>Kn04%jA$Up~%TzXU`sk5r6{h5}~WZwxTn%ozWk2%c! zv#OAUm+j!XBmKU;gGclw<>CJ4_Elz7a9vSz=sde~RxfxZ^tludHjTFQ`wop(XwY|{ zsCc(z8hPa&IW^&A<5XzEL+n65Q_IERFbpznpLibn1Hs!TFjhCuX-AxTB`-(mv)rrN z-nApNyFJj=5g6OKGictcs@FFU<}TR_oMcrU<6HKsD(C<9D(C;unZ{r2WOlV%@E+Q& z9!8y6KCIA0Z8Q;!D1)iwL@L>P$i91?qQ}b}sMo#P$tCnt?A*T3X@O&(H6l(6))%y3I2c!yD4oe2Q{w$@-J$C4aC07S zxfwyeXtZ0JO8LK?vm)F%vp+0QR|-~yQCFO|E>2-%I_Szhiw!r^*smeXS)61U&-{k& z8^r0#+Jdf3=N!nKrp)k^ep(IrRHexLr)`LK=D!O~d9FB3Sy||TG)`{SQQrw=*X~|!UmfRvvOV$*$WJEcc%x}kaH3epGp3sa~YiBlpbKabN!phg{ zJWrgaY}gl$M9dSVw0m6+CY5-1Ikja$co!)P9|pB$_1RSZwLQx;OP7D^m>VN`XUzo8 z2)#N|PQA*tLUW3xj;7VaKJ|!Cy&XLn zI+a98JeFBM^f{xsweu<5in}n5FVNKz2A@pcq0jQo9VIA#M|7Jw%~)EnbVtI;h~mzU$*BYxx4X8|`skcalwT)a zP&u7&XPf9cQ9~On=9I#l<$xCoREols$t)TQeG`t}Qg9_{&F`crIjV8(U!%IupxjY8 z9dXxido@?qy4>-zi)4UMHsJeVtj4+8L!G|bKeakeZIZa5A7T1-ajn3h*vrhzN7qv*W?Hn zdfvg&5%FE`DksVwbiM2J270LbkiUDx-#0kmuL$YYPNY5Pf;Z(zAMPI-8SNhMkMs>4 z?Dx@!T*3GI_6yeXHBRh3=#w|>?H}d_rmyb^x461TM+V8E@yO_qPcZGZPP9Gfn{`be zINamkKh(e1e`IiIVDFKB;hokxC(<5t(M$FX4)yIH8XWcQ_4f>niteA+J5lwZC0lBs zx*u0S3)bZgPFy``z!n?04)yI7%=8>5rXDm_D-BHhePo9W_mA8tnD4nxd_8ETmh^P@ zN|mdy=Q&aJplw=epjwFvd%hD_4+am54P3=n*o{t1Js32sG%&4Hg}uOuuLom>#{5lj zf?K6cP9#0(Tbm6x0STsgp%YCHy4AHd7k%(c00nd2?8MoF4z}rFpKnyV<4G{fi=0?` z(5*J_8|)n&t_aPGooIT{rLLZAZ`(c@j<&Z2HRs&hdk4i|UWrSd3s<+Y2XVdop|pB^ zS{<5+)9KUGIvh3=)zqPocR$V9v#N{mvx+qqWpZ$U;*3vf@q7Zoh zgjE!U!vZcvq3!Wyd)#psc<+L>UKF^`s$S$I;CCkhfp-pA?c;(3jC=LUz0uR;X@lM6 zPEG>-?OWwkXfTX&^3(x8d#^h=3G_98sil)G$Vrg%dG@$FDGBtmevw5=g<2=T@jCmX zI|&K&F>aMmu^xHbB5k_FRlhCJzxEc34izNimBVeepTv^)x6KZ?6OusJ(wA9;WO3cv z>xHjr7UP1_x1+}k-%4*sXQ$kWRG?SonTT|DX9$aS_`kIvMB3s1j>5MoMEZa`kqY!D zY&9+{TIz*^VfOC@8InZ5T=+JHM8ED%qGP6cpWDmf(8KAH#q%unUW{v9_Ggn24ZeJe zJ?paCEv|YPflg#g3$d(qTXQU`9_r!gY0L1{?qn#?Yv%cu7O^noD6^YH^9_USqwZuQ&|{=kHU(3< z+_L#L*QuPZ4E8;DvJvPkag#-F4DFZ4-V<5vrPhu>7hMxQb1}0j&`;phqAP3LW#}i# znrkf~x=weZ6X+suyG84$wW@&6Ja)4?Q3-SpXPpP|++Q5K)16cVx<<1udKa4XS-3#b z7kS>vYgf)y8hgNkDA2sC3oTw=nu;(j)E~X3+>3eCioSX2bT`H zCio5iruSRFb0-~vo}i|bjyq+^OK1Joe6LQ@IhTLarL&Q~x#-mex#m^wICtf7Y=*1J9!Co`(mBbJfr=_I)(y=1sr-K5-oYak@e(7_ZHjfTQjULh_)&4B zUmcEB92@`Y@w9TWQ~y^ru2-y6Jr)a~B5p}U`eL!}X4kucYI4rf?o=15(_4#mPfB&V zZ*i;~RprlRqor~f{9~Nu4qmKtcLwg2a3CSlm;R(u?#fV?ENHKiVw# zFuzDgGuBlY!-;0WyhVDRv7RlmImmpryP~mr@~8^mG*+Fj4ret>i^np8>-W4_t+1X} zLq2tyw^(FW4EK>M67pO~E_O$T`g=x4`b7ItCZjELD0Icq(S#CD934^O<6)n2GL<;G zS4kXC#wL!A#N}w>(5YT}mPj7$jvt$l;|Ya-Nh;$LN5_J@ckPgaO0c~>)VW*k+J0gp zoK+91?W*tg?3PS@bU=w7ORDyT$Xs8N=2Op0tLNXG)s7v{@FoMcqJ{QcND>t_sx-X*BYB;SjhZ}A(DAH61q?w{a>BRFM4;-h064JnY!z`eR~JU^|>%Rz{~ESVPF41-$?&K z(XQO#)Y04-EDB8y#3uL3No6EF?$EPSk1#Z4kFe339^ru49$|5467|2dJlOwD(I=c0 zvhY&>n}%;39_c$+ff@ksp5_`*J9(obJK6VllGDplz5h~gw0^f(t*@Ir7>hcN`l>?) zP1FdU8XP;KD90UozUq)e4dhVO5~!WLE|#k92BCiPU^tpeI@klOI%-1wBuxXwqM@p; z42wt;B9U-{OCnLtqVUols@Xr&Sng}0@DxqOD7Ee0SzFnie zSRCyZa=I}fCz5^fxYGuJX=$`=U2wms#y+sxc~a7+cKOKon8tRC(`t{;PQUn?d-?WS zq)Y9!aN$Yg>T;I9mN_RUoh{^&XLjYE^FNbW7;bON<}Y2a*N5pXtl2ENSGPV~D^4Gp zdn2)gGK)Phx;rAx6K2jk)0{Rq?Zk4?I`oLshQ-u79E!(+-JwuiNjOZ6P0>H(T@D$1 zqqb(Lx!ARpnv0yzq1h;i%@DM@n~S~T6l5tW2zlpBMRHAsJ7>CuE`;ku85)f_ohXbP zxUsXZaysG8Q<<(4HR0AyG!%16p{nJ!GjaD@*@jnB*qH+{IW!Os#O3&@xkiGjWI6VD zms=kWR7M}>8i;aj`Y*Ra42V;RW_U5oH4v`m%I5|i!SoD{`nVW);BH7k-NhoZD~C@d z=sb_}mdz=~9lAbfF1gEKKFm!^6xo!xAXAV&@M+3eP>#&0L)lJpYuNUJvrZa#30uoxxD)DA}!Wnwms z#oWs2G`&-}7_#EFWI>8h&lREXq$^d>4Gdiuct1jR=sk-Kcm3KglDR&xTiuIfw}{gW z3|>dV!Q85Qjp zfm{sP(mn7O`lk-l;NGp#ep-#B)$z0%O{=lnv)H+u3S?@0qXPr8=x3`OB4}xh~>d2YU|m^^W*=2yT9G1&65Sr-c)Ra}m02L@>|Q4m=Mo z@Sq)9%!zjQkZYttpKt|U<3Lrqqx>yy!@=$w{D-qMP6KPJGMnSTeIhzP$~=@-uTQH(z8TP;ri0V9c|Xvc{u$!#l-=zu>(yq~XM|Tj_Kdfji%R+o@#My~ zwRx)F%grTSaepoBQE&Mc-1zhQT*;&RW_Jy2GtL2f*N_z)`E%lDkkbOT-&^J@%_^=t zTorkcKjV-Gp-20R^5Ee?f0jgv+Bh^QmV=%Lp{M>=nf1X-9{}uSPJ(dCgd_=c1W>rf zhqno|U@^O6;o52idp$_+Nvl_;)vIWjbv4b?UXxa@^{L(IQfKo8o`5eRUas@-?4O8v z{@5D(XLoWCc=CIlxhi;a4xIhaofrfjc`oW3sUCQ90Gicx7`Aq>M*8NWo(MeZd!AW8 zNHAqP_{%QivdEp$V9#+U3xP*mOUq(b=h@hhNfx8-WFhcmXHolEu5+I3q)86XcP9sd zCmNmQFgtyCt4R*;a3=?W2ljWbQxp^C&`2FtILo;t_aQr${`7$|B(C4!gyjcm$qO zDO@wlhiAnH63TvNg}ua`NW>k_$XsHsP{ktg;EV=)z@1P89!FSV7Rsy-C$L9}a$y+z zC3gZ4xDCH(GNl}w^4YJr3~cx0vuE5%MBw&wYX_X)jO@w~$<6Gn>vYxQ3fy;X9m?m4 z&uSMoyV4zXfg6s`H8%rfbd_oQG4s3QE^xDLktI=mTW^cj@y_y%xJ7Kw@@=_A{rlOz zNw;Y8LA7kzEt*5Aq7A%7(17Uut~ffH zP~wTBBT9Tc>{Cvr5=ZwciQ~!G#Lbq3|!{S8?KKV7J`f zF7MpY))na3+0`1@eqth=b?29MM#5@=u(tch1F2BRodX?h25N>n!TeXygq0-Wkm!y0 zSPl=or%T=Zk!j>iXQ>;uULVvaN*(z2=5B6&#Fi=*{Vj*+%I$s-=PJuqu3F}tE={SG z<4RN(SKrw^n(CHS_@`B?H;pZs+Wy3$WITIX9mv#QnMj7h(W|qm+>!1EIezSfKad&| z$oxK0%-P#0C8EvVPJeaAHDD}|?L!r1yC5O(#4LNbqFkv8A3GtE?pG^HcR|A8&f96Z zotbG*`=g3-0+oC6j-?T31you8rU{s_|qnMEdP*D%Ee>(1+vKD-oq8;S|{)D zPtY`u?cAX!#^YBj%6EY*a=iDWigK-!TLqWxuPe%Tfh=;sx8TZ3j&JMaHo;}PyrO)0 zH`Fe;8`^XxP?qB&Tj#clQeF@c+4J^Plxtl;bk93fQN9ZTB75FIMY+}mMEAV$it=3$ z5ZUwISy8Ta0nt70Yb(lkK|thO>wOjFS{G;+Y*jr}QN9bq(FuV=zlSSJHW*C`B>PpN zWQ(V5YECHefIzlCswmrqv6RT7{k2fC#nV$YRB1(aw+pVSV7S{H3X>Dm>pNVYvf*%lWrnkk`6xs_#0&6G&C0ikT|G+89uxKOsm zn!MtmGJa5w%Ey%WcE3Ly4JZA6fu_}+9*|F~%xTN=QUhB#5{Zdi>U^zOs!I%1$Kr}2 zuu$(4%hXt?aV4RMw3Z(dOLdu{P=lfs_+hbJmm9do713nBDwga@16jXc!OiPJ+uO>qMN5pVtKac zJOx`4ZDMKWi&L~2(Ib{8ET-Xz9H>MM9TH0wMarp)uAu?3JW)eAPr)@bE|zA#I7Qdc zJH_&Zq2Gg(;gzVOuNBJ`WvX!-= z9~MitP_X{7h<_rLPz7@Rs#vZt9dZp5xW+^-vHwUc)pJZ#$HLK&U#9=#%6ROA$mz6S zi=|ztx-?9s9>^aP>FHp>HA2U#YYSx@i-%~^Wh@r=C&IUhEZ^l7qnwzC(9BCR=I7i6 zHd>p+QZ}e`FeXQoL{Mb;wuvRXx}ehGg#Uyb35Nvl`|1%(cyWO+t>}m}Acw>fHT1oy zs9>rAu~Z9XDtg==7fZA-_z^sCzf&yFLV=1NxxZE{(LyB^zi4%zSgM6_&$u!!+G=`e zc3ht)EqGaWD60n3b{-C$_74=aIFXc-34s>VBeSC$m?2Rt&}qXwG)w+qEG2Y*@#7U` z8#t9zM3(K3E5$aIP(psuY=2WJwxQJcgkN;Mt+`g{c(zb)6G~*vA5;~g2JuR1y)lZu+1=rY@R+z2WDw`F{cBMgydD#lCv-gXo zyP6D&)HrRzIpR#7kMaTrC8GE z+mfD$CBn&YEGmmMt~ZNiUfhb4%^8a;So2JYT;S~x%le$+@|GtiBB%Uv5XCL9ZtoRK zySOQzz}yddFOh?)kqUE;(>TMgDiM*}u0mot7q{UPoO3EcM^ptWcTyx;)kW&_)fc4L-3#Z6K+fa8GM0M92#u@BaAF|aq`r#AyW4R{#v zGr&`TMKuJA0j+>Gz!AU=fZG8t1iTXPD!^L+Zw0&;@IJsN0G|Z>JK#%z?*hID_!Z#S zfLh8Es{^b7tOZ;O*b2A`a5dn1zz{$N1OT@J;(!+e?gYFB@LIq-0QV83*#3Hr_-!cc zPviHi>j9YpF8o*k>C4en}F2F8=6nm^m%jgmObOYdT0dE0(8SoXrD?uaPK(M2cpcQZga0B4^ zfENJX26#K*{eTYu{sr(Uz<&U~4ER3a2Y{ymzXbdRFpsjs76X<5&IOzYxD0SPU=QF* zz#!ldKn4T=2|yC?62MCVuLEQOe+Rf9@FBp50iOXpLXcvwTCEA=096JroDi!&ReOE7 zmP+kY_tRBqJ~R;rcy*^M-kQnV_0yD(vfNWv@`^Y1U*P;>02&y9RC#iev`8G)--6{c zfVyUadcYdMTEG^-rGVXlD*y)o65uAlQNVFP1n_*o3ji6wD*=BCcnjdYfcF7D3HTSl ze*nG=_yORDfL{TA4Oq}Zun@2UuoAEta1o#buoKV+*atWaI06_090QyHOafjGI1P9s z;BNr$20RG(7~tc8M*;r^_zvK^fd2vf0`OH z2m<1O1mI4Hg86`DfaQP-0Gj}Rc1&{=!051i+ z43Guf3wS5s?*ShL`~%?gfG+^P0r)21XMm>w&jS7kXkJFp0yqb7F5q&&cEHtuYXF0Q zLxAT2WWcR}IN(meO8~C}WC8aB-U;{!;G=-g0X`4-I^Y|CCjmbL`~mPRplLZlGhhSY z9KdCO%K=vbt_Ju3g8)C^d4LJPt$-H;?gYFR@H)WX0qzHU81NCmX91rB{3qb+fF}S? z0)7wp1E6sQK@(s-U;|(q;4;9KfU5up0Y1Pj06!oGm;l@XcroBLfY$=<1Nfhx0sI#544{sz4OS0W16T{# z0=N{g8*l~S06+rV1UL$a0LB5g171jwVz;l=%$K*~r?&w<2lzbT7l5Y$tJe^$0dxa; z0Aqk-fL8%t4frR(#{l04`~dJPz^?(dloqQ4tOKkEJO{7?&<*GTi~4zLxl4KN5e1V{o>fV%)M2fPXJX2AOZ?+1Je@M*wT z0gn-+*gu}HW#BjX>9>H|^#pZ*Re;riivSk`b^;k0N)4HoI_9xxD>Dz-~$W- zP62KM+z0qOz`p_h9q=2#Zvku0C0GmC1Gp042Rsk(a=>Z88v%a*8uJV z{2f7xt=^<5(--j5zXHAq_!i)2fTsX|06Yt5+(^&_xD0SPU=VN!5C`&0R{n20G8Y}`U{0l)_s1iS!nJK#aU zdjMYnd=>Bqz_WmhE+x1aa6MoMa1w9|@D{*Z0iOXp0{9u=DZuir1SSy8!zE*8z?IZU7tusDMep zNx;hirvYyOybil-;OBs60e=KE?I36dtOslWYz1rsTmjevH~^3U&js8BV1VO*+W^l8+zogI z;7x!x10Dpt2kgz?Fcj06#?FoAD_E7zf-Acp>0bfL8-P2zUta zb-*_O{|ERJU~>n-MSueU2`~Y;74Uk%8vy?d_ypjGfFA+sb`sPBwgD~!3;~7#rvSGB z-U@gd;4^?n06zmf1z6TeupH0<*a8pz-hqi z0dD}j6Y%$d4+A~|_zd6?z~g|g0e%AbDc~8v?*MhX2X0(b`SJ3zy3f=0l4zy`o}z;ggs z1Fix10E2*A0DeFe5Cgmr@FKvg0IvqT74SB|`vC6;d=l_4fG+|51Moe-_W{2EJPr6W z;4gs1RI}I;zpFa;#)}D3pY2pI)`e&)cqz?~-bfh{Fcs`W zGA%S2jk)M0>T-QrdeyWp++&k?eNS4wGOb=E%~P*d+tq8*>a{+#JFWKEa-ad>=!cAog@2)3Ny%X+Cm zW=$fNiU$?{cr28PQ1I|E+LJ^_(z$Ycu$y8;L1pR^$q@FG@)`V0ExyIF>{F|Ak0Rkf zmc4H+eXEg^vGFYX_(JUoEtVe3vcIgOZ}lg_6G|MfwUR-csiQ-BYKmS9)YG>{+Kj9w zKqvPWy_hXz_n=S%8Y^?}Ty$@aGGli_H4TYz$&Wqs7rXBvxtSeg$Nj71YMMD=c@ z)WQRre`};8RY~nQ3VV!3EvZZ$o$U38f}A&&t0c02@n=3?sFIfQRVryMAC4US*`N5j z9fiT79fiS)owR^2*GUWcTAftG7wV*1zVJyQvFbu0u|z;28U9dfuKjqo_T!uIXCYtX zls0m+m0p0&N-w}*r8w)!B$OJssY-de1m8AtBUQSVTd2|<+&rcCj^Wt?ZkW=0FW26K zNlNd%3xDQwW0Zn?9^Y!X8A?$SI7VMkHJ^rWaS!Jqlu=%n}d<68|kH|f1& z__ma?Ztv*Y*%8WWGfY22HQ+N${1cyH;-B~o6aU0# znD{3?!^A)F87BS-6G54!ox#qXyMn>4wq2nefxuWtR+|=j3bFHPA^wR^3-M2UT8Mud zr2517Cky~HO9O$>SUW*SusslL+ZD`e!@-{;CO#bGpZIW)f8xVI{)rC<`6oUcyk2l*#H9OR$)aFBoE!$JOu4+r@tJ{;tq_;8Sa;=@7yi4O<)Cq5kHpZIW) zf8xVI{)rC<`6oUcyk2l*#H9OR$)aFBoE!$JOu4+r@tJ{;tqU9^AfEAx7!zZc-;bwy}lp)X8KZtbAH)O%>+)-WEz!-eiB>BtPQkx?Fj8|4|H_|#&+%u z2J;))=|%Po<%?d6$Btz)%^`A$5)V)C4P@+h^hC)R4`3M*)ZSY#9>^-03oQxo4fE#n zcbOQrpKzU2)=0T*6w z$RA27B*$tfT3glA4=}Owi^=Ar(H@l~TNGByg1MASXMq>fX4@{Nw2+S@;ChX4vY0oaQylp6k;)tA1*sy2OSX^R>s(8n1?m&(f+;XZxZwXi(GQDN$ z*z`t#hi@^R1u000jBsrq`42PoxyCxn*3GBJXd8k0+e{7Lm#JjVwIpbYk+mUL#aowc zf?Q^ar$`Jo?=<*P!N`=)SE|gyaOk9c`>F?JS0G0gF`6GwEk<+rCc{w+U5J_5WbC*S zrQB?=a5DsF*CIc~`+Y3|wp!vSl8@z$Wrbh#qY!%5SU07qWHwpiw7$ajA$wDwve3e{ zT4Hp}rJg74#bzyKP3elVd5$GgV_+sBgT?!3ts%BqVzJGdmIE!)rCKb8!v%WIGWGPM zU(>Y8?V~3E(DUU8_!FE{Uv(2a>SK50mrUL=_oYu(LG@e;Vf3oThy9#T1j~zx< ziz}>6kSQyy%{z zQLhDg3J_GQEP}PtElA_z5)DZ8WE76t%~t>bNeaya+ebW^Wv|d9M$joDrr@v2MI0#|aU{!LqeqOOQ$$R` zvj|=vj`=6$FfV|$7HaxK_68mnK8oRznS^Hzt3PCKLfAU;@tX^}#u9Dr8G8#tE)Pzm z{E5jhP4kh%D7wPtBp=RX8e@?VwR|#pqRBMkB(?UL#*dcxY+_(*5>|KZiCkr6`2k_H_9rR^>RnY&K>Q$ySm0Y#&+)B*}Al=Y`sLw|0egckOKN!VFDtyEzE^ z1m3F+#)Iu`yq2|ZqV)O*s6C7a$wpmmi9rj@K7}{y>5E^z^`!Y-_Gx-Xa|U*=^3d!N z{<5l^jD*KdnP0YhPY=jG&)*BQ$#ndyC{erj^nmP({5`oXpud-?qX^(mhm*B?R}ako z9q%@#qIxEv8F?{Lky=<5g0ipR-6muMO9-7E#Z)&~UN(efkMp;Yk?Fo|2+O{Xx9Ki> z*`G=kr@O{BT?)s(#ot0a{4LH@&RE0eLa^^5d_5QRwADZl&3?dNMpPypa#9~XAp0-v zy--AnTlBV8#?Pd=R`ugg=mqvuyuVKF3Myk=vfSCVyRCI+Xg4*4xiK&`KA0JlGs}Bp z(GWjDTzJTy!rK>G-gXRHlk1Uk(~V8Z@VG*~tbaT~xm;z5#}t}9O^GR)#f8ZEWA-cL z;e5-xw!!M6v7}bba;(-^-phqxzeTi53$d7fzrgaEL%=5OHCpoHy}TyM4VJeJq1dxX zcx7>XJO=IAMV8k~1g@8Zx2D2zZry3AueH2x39_sZq5h1`@1<;Qvb^gQ(wd6F%+xYs zNJW3fYNtxY9I~-+H(p***IV*v6KF*t--V~F8L4l!yzd;Arm=IE)#a17t4qaUOm!*u zkS#;vrR$O@XkCcx_N1X;t-4$s!l2H%M{EsJEv3$;fa`Vy13TNt#zL*T+IEJNE~U^G zpf5nVW?IJOXo_qR&9AT46Nl+LJS{3z%@_BbAXhqt7ug16;e1QXw!s#{9?K_HOLs6( z=LhS3rR9AsWUih!YO!%^ZZpzbZwX%E7Y~CJ=oD2YHJO(ZugHxPqdODL|YiL zY!6~xYYmf|Bi5BCw;Z(WI(lgY`yNOmHMdUe8pN>45`$C7b(WBZ-czd-xx|(mqtGXr zdy(3OmN*=PHu)2g7#;ct**uv&RE9M5Vu{5NmhDGED-H1$;?bU6WO=|!mQEAzj!{(;j%{k&3IYOz}stR|7q~+u& za$;1K;%6mQr8sas`U2dcqL)#o9yKi}Prx>{$XO4~WaPqFL37b)4@y>0Q^;mN8rX1> zmcsq{Jg`j^J9-WqO|c7ZC`6;)7=p4e@>^1GETJiDv`k``HT#U&1V+ZlcsA&=AxajT zI!}c-wa_hoK3zi_6ca{yY3ZD6EiPkdmOy%|jhPA3)K4xh?dc_!C`tw=5s?j2EFvv8 zc4b!x%uXURCdm{(EL~c~p=qZ@M2T{t=aTrtDxrgi(Q>SeTx{y@UTw%%3vuKYg z5U-{kyf<7_P%8vsuR-ePSzfmbRZr~&jere_^LVxG0oF1v71~hzdNB5esfynmlII39 zG{0A<;}p6mH+K;;;y4rBqfT_`ZgofW@`J_$UBwY@~(DecPP-lqg@Vdw}gyh=1|Ej8wf{_D*hu+|cT9+15k?=3e(s6Wvu<)XOI5{1n>>;s66 zW+)R1Z3Ye~bj4VqYvd7S8qh!HsGnzv)BGm;5TaXaNXYK_rIuKxc%da1i#$fHLB8mC z_SlChMOr4cL}_}3{S)%F#+r;4qxN`OcnAya7f$>I#z zJT93boA5LWrus3(j%+Q4Pes(eWHpLlbHLCf-w@^x8@WV0m_yO-EE5#M5dA&QM;&bLHT6q0=h z@2@jPjk{HBqS|VS%K0VseZ;zGEF7n0tVB2v!6|^eoUJX2IUxHH-Zr)^DeyNg?T?_cmJID-OzjM={*Ha31Y- zqkowN)>^p25(kB0&vL01Vza(yRR~jP_9w(pr?tg}ny+;M)>beVj?LRkZyCzn^n0n| zHU+e{EQYzBTsymDKhLjWhO-uFTSaOgZc*;%B2y@5VOZ;~IXG)XS}nOBjfHI$t4*Lr zJvP0h)>{g(IKG3OmlvMqI~T3rvD$}@LDw3dn0o}R%dj@TQ@pUQZES2u=a?MY*%k`6 z(SHR6%{Lc|259}i@H;yP%5=H!3l;_m?`vsPF9RjYm1S~8><%uokFBcxL z%aHc@mRD_q*%f&4N|avU`pVLdk_B!GwZ@VQnl8bD6kCPr-^}x5`pGI+OBn9|5r!Cs z+L>B9DS0eP!@u=oyF)wL+C#0Ov9>^PcW~!+9HKlH^`~f$SSRI~dy6Eo;WasPfi-x9 zHg_syeoVwB+h}ej%XZ@}c$TEMw4FH@S>Fmoupb6nQb% z*uHL+o#hR-53<8KxxAvTvLwnk5#>#4Y?@LsOAJxjJ>O`FrT7Ilz=>;Xi}}>8l#2ow zSrO8wrHw0%%#L=S1 zVONvSb&P_CW|O8|6je#*^mFy`HoOgy3`gWZDUq=6@YdH>F6MXH?Rt**@6(ryAvn83 zmka-K+Hxs`W-l@2Vmfl+FX!ZP7v3)1!kh1C*wuJo+sJ5_x)y~b?-X%NF6C;iwQ=Xq z*(>zSYLOUzv@JnPs0N;Ge==53z`H3*n!mAVPd+5O$IP+lK?#mUAse;tRL}*Y)(Tw+ z#O_7HXgD<<#ZPRTO8cM<{;`N3yQ&MkVS!|7xw%2+j+KA@4fZB8|Dp#a_!ot&=im9} z`yQX@6~q0lLR%+Le8nNrN{0=H^SAv}8za#qlq;wL4v zra0&l&HnV$a)EZYcD{SpT5YTGRQv+_05Y?-z?g4@FGQ$4zqEviY+qR7PfXDIEY;(j zg{)^R(~$p3$=GDC=r#6{qU_l|FO@yp7aD1OS|*1ow5MLr7%N?R`S9%HMWt8tq*Un@ z1zqH)4O_HhBpmYN5JEmDnqh2hFU`T(r;w4=g_1Kxrair+M7h}nujO0y3vHj(hSmbG z&m!rt01-alm7^?0{Ly2fAy*1Ap3Zo%s%SepYjjO*SW@{+c8 zCHXMy>xjHyE)+c|(Ula1ti{$&9NW*?3szOq0wSQ0#|Dv~Ul$<&m|EIcO~YTw+=@TJqWr=~E@IgtK#Ax>bY2Oz1MND+n#>OJ@F%rNk@++k5Z0%CoceU*xPebx{9+3SJX|J|C z)c4M27L0{x{g%#W%Gwr*d3_XqA;y~wa|d=2^RR3I0@hB(X*UJW4&Q#gFhPfvaxYpF zEd)j?Y#~5Pq&AXJ6g1IW7=QEtjhr%dlPW)qMu(p)`Pag;W@KWGHirk;)+@~HUkL;lGw{oEUDE#9vUs+7?}S=Z#UZIy-=ke!RSYS3ckU*bZxD?}cO zUBJ^B%fFH@7dx42!PsWJQxEM5g<(sm2k2a{MHc#Vb_ov-oza44YUnRN3;h3?dlNW2 zi|bC*fF!iAn|-~=3&KDnskLHbTL=MigTP2E@iLv;-M6JKdP^??Iq^KO4M^q!GBjWV z#>RjlHmi*>AOUZj=I(6#Q*{Z(!A{+-~J|sBvRYxt7xd6XZ6C%%GOq<}$9k|6J*yUl)#*e9? zSTM6paYhE%iD*YPp==hwtPtpVNDaDgwX>oMY~$Zpl?Z26YaiX)n)G1-%q0Rn2T`^j zuZS15wwOzmliF>y?(Opa@)F!PXkUMi*&vYlxU!*7xpG*fSf4DISuZ$8%BlR}J{>XM zVZ|SE9bk2A9G4bA3*?q2d4DR_0EcI;&@m0;{y+3wKccs16c#5QngW=s6}V@7c)73% z`_|tB3x&F8?NP`w$Q_CK&T&SXXSk;@X_8*nVd)=GF{n^R?@}ZqhgkV?HN1 z3vSwY#fF=OKAI@igj(e=0t0#-xK!8tK<2xIDkxuEkpx%lIT5xs<< ze#AKbsL$UvgiSSxRd9o-{HYrZ_4(pn`Lq71KkMxY^5%EMY)0AKFI^pHyV|Ta4yT-~ z1DA^3Fy73^H3Ied^46%n8eYRegET!4-8^E)eg$3_yKJau2byq0gv1nIl?I6^hULUH ztXo1FA(nYuP)>|Gg$0s%+>KU5bGUoPb|BCC>TvxiISG#~5xo~y>}W(nk<7P*{;5%8 zwsSo!wZhZdyVkB+ySlx1dH2fh6)Tpl@yp=uAj5z(ED_uGfrvr_;G-RDP1y(m&6_?OskTx!QoyH2Jm=eZP=5Ow;Bg#B-elep zF3ydRO8`^KUEJL}HpjgU#mCMG^BdAf1LbzRdI~qcduVuvT(qoK;7CC|q6bSBNyX}( zHQmcs)mAK9zI@f%l`E@l8L0Vffjbt4$KrPC#l{&0^E+rpr86Q>L@>W!pd&X`*-IRR zlWEYg29RF1C=Zy@Ep^hWw z(gyseM4b}C{F%TX-Dw{)j)``5gcbstp9R>C-=^5)^{)gQDIfPIys3$$t5D`|1Y;5I z^4?y{cwJ&V#DsJ_U^C_6J8q|iPmT`?{=89*4MZdA^LncTef>LdOx#|sIv*FjjtzC= zZde4uy{lI&UxiaOE821A$?96Qjfm!Nh0Kv~SA(@~>&3LRFh@MRy#oo^MuhF)&3_hj zTtw@=^5I_-a#Dn;pyua_HiC>wm07yf+!=RjjQ8^3LX4~M<`;^K`(A8XsJQ=#-xzYl zXbNinUqPGKkF&t6=;%0)?84nd{kRA>B_jfx_go>UQmq*FM6^)jlKwup`6M>s%^bl- z9cxTPjucKuEU7>0X|?UBr)grRwTt>Zv}5N0Ngw{OLCP5k5oV;!d?9``;t`pzt{tp^ zNH%kJgcm}YV+D2Y;MmYMsn*DukuiJSA2PWJ*MgZ76ldF*WTC*(IItYa!kLo=DJJQP zV)P{QJJ-t_=2yt9GQT=4Vk3hwXA02;o!3-vsjchjk;=#t<7vU^F=_^C&Jo;&Ht^hd z-S!oNT%XrBjC%`kXOza9sGrDfDzWfAEVEeXB$$j2ef^!N=l?DL{5}4`;V2u@d(ql? zLaGumorXJxKZmREoHFbXY!Q*Yg?MHerU&EDyfs*g=E2~7w!t23xaj=oQuQtoitUPn zHp@gFZk*w-rQ;02j&efMdkf6zLh!7zfm&U(KyIX-*(e>U2Xi$03yem*2vblFHLw_^ zr~#DN72d3qi`d?t6YH)AYd$LSI6l*bjEHSmTqdZ9#5@VC2IW`>*KzD>2w~Psmu{@V zkELS`pcYzgT_PNh&uceVd7Z77+v9M26c($jCkJ9W1dqD29@!Av z83{!&za%8MO4Me{Ph*HNN37R-Fc>-;k3z_oMFbeDCm2&Pj=aDL>)9y)U+av0jm z=Y!Cu%cHO^_vuPuZbJ%$HZ`GeoYl6?wXrSsW-DEPO2w|fb4z65VVG?~iA!SR=#6q_ zAQxttIygXci(sF&N(uvOmiN}yRNHI4Yvgj1?9egS(U!rRUlRuA;aNZ>1`%v^^#~|acmii` zcUX1}^DfpTyg-;Q0$y(fhDaogz_p|iZ6$oC0Lu4OwDdnPCNGN?KeW=O_r_w!@ooW@ z&-!ZkgV?85#n*&(;#b{Z2tUu#*6Yx|ENJqD78$M>4eV#)b4Cypb|nf(qeOC`mb!j7 zIQvPqbl59OqD2COMG85%esmZTk=r75i=%)$JdTqJW;v0N-m7 z9u@@ovP{TfDHg(NyWObkJRsBe^Xi)cnY*)v;U|&Su>Nih| zsN{n=z_iu(n6i{>E5lw~R%u*Wz75O_n9^Dtt$!4XW6UGKcw&ke6>BPYXldIDB3( z62T9lFW?`W2$~zaO9gjf+MHzus?Xj;J98# z5zQ}TfZ!HYDnXJDUgt z3)@;pSs?f44B&K%s7u^~p4L?Vs9H5wp;6_)W(+=j1e8;&?d>aTU2E6&F0Zw(Sg~5J zCAC+yxh~X6))$V{#>S!Oa->8*l!qdW{i8M_U7xysXkb`gP3yUCWJnI8WOU45f$94B zQ9n%(PKyw{@QSCYZxXNaA4Dd9E&u!t{z24`Ak4VT>=#x(6j5%5am2{DJ&YtB;v$0T zFl15dgb3idr0ysCWw6= zWy^mQ61Y4NU(Lc+*7B8Iwd&H|p0-}~qUNj8ic1lTt=3hV$D|o|8y1??#h7QMasF_B zbqvQg2B2(pTwz&&%v#Ma1X@46#6tRjo{>0t^$L7ZZ^iNzwKZ#3;|=4bZC$mk_`IoEBybmIaHmFaqo^`FWc`SN(XEIu-Wx#=Au~Q!07n$i9EZQbWCYh+?SthyK_DMeNcd#byX4r+&@H%Y z7+*M>FEIKiEK@{)-=#cJD7@9UufD-vd{FZ=f&44W{)rJe4cE^Qki*W^8Au3Xd;qV{ z!1$j9Ff7__eOgOBseO5OZx6mDw{{KQdtFsq-KH(3B2W?-SJy0Gj!WHFb@g`jRP#J8 zvybv!G$U`T)#r9@lMAg-XS@+YAM##9HSZH@m55pzZcgyxihejD!c-8mM93~874Ih; zjVSOP!_4j6Ix?hRTo6y9$A}6z7QkF2ogC#@RV4e{S!KQWh$lusSl{ZBv@B^af>}uF z(qxuPe`iE!5lBo~0*P#1gtExa(bgzqRYTf2$Pp5AVv$ivP&`SP@J;puV%f_Emal|=Ctm$y(@74*s|{G zvhMEXUGg1=tlB|$tQBTi2ztxC>BC>O`capS_vWzXN*zcCg8mO_fK-lI)!x5zLXyuuwU2q}tP0wfmF! zSl?C@Hsl2CsqMY1yI0m$ujyH{YUT2k?JL_HoEZa}8OJ|ZKco0h3fK`cw@M#Jj3VSg zcy-uqpnPIPSz68K6tH_poV)o|B^yIZv-#HwIi?@DDTS0~bB93AsoLHNdQ#NAwwo_m z*noiqta5O-z%InS7u7*%qWyw^W%-PVx(8*xZ2JgUPxPU@-z%_lrHkc|2yQh%1SEYR zD2w{AP-eH1$7uD=Je9F4fG)lAixV&E}ih|LCu1!MSuAwcR|WRI6PL)kvDnw*fhh@V7Srj^(B8=GT=6ywKwjj$yUk zJTI^ddaDvkVv)=Eq>@yvpB~Lz4rE>utVP{J1K1?3YUnSkS`h1p$-dc{5wZ_!zNhH; ziv7Si&W1|n;Ly$Y(UijXfz4}ze+2G;Q9Mx|^A*L5SD^rzHv}GMId8RZ{(1ZyQ3t;98^gLbu9{4Gd zStW#7q}0U%c;GR03t)~>=)TcGKQ4)(Er28Y*h?OwXJ3m@)VwW_<#12?DS1V+cZECF*Wel(}aKMhG(1aoFi zVqm<#H4+xVoRgF2>D%5K35#GB3yDQKG|@w!h8@J2X*m$sd?06Gu(mZuFA<}KHA`}A z=-jliEv&g9#~!HO=3_UX1dCwWJQ96_Es{_KvrI@FuM)(xbdF*pv^wHZ!Y+aS

Xh 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 SS(|NKS-2l2>hXq{E&X4Og^e%( diff --git a/Test/ArgparseTest/output/aa246c6e6aa30484.deps.json b/Test/ArgparseTest/output/aa246c6e6aa30484.deps.json index a3cc1a6..0a902a1 100644 --- a/Test/ArgparseTest/output/aa246c6e6aa30484.deps.json +++ b/Test/ArgparseTest/output/aa246c6e6aa30484.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "argparse": "104b74146bf17483", "stdio": "285b6aa29a34754d", "main": "356c943c53331be0", "hashtable": "4c1f8f779b98eab9", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/b370d93b74bf55cc.deps.json b/Test/ArgparseTest/output/b370d93b74bf55cc.deps.json deleted file mode 100644 index a3cc1a6..0000000 --- a/Test/ArgparseTest/output/b370d93b74bf55cc.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/b9a33a5027b4571b.deps.json b/Test/ArgparseTest/output/b9a33a5027b4571b.deps.json deleted file mode 100644 index 6db22e5..0000000 --- a/Test/ArgparseTest/output/b9a33a5027b4571b.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/bbdf3bbd4c3bc28c.deps.json b/Test/ArgparseTest/output/bbdf3bbd4c3bc28c.deps.json index a3cc1a6..0a902a1 100644 --- a/Test/ArgparseTest/output/bbdf3bbd4c3bc28c.deps.json +++ b/Test/ArgparseTest/output/bbdf3bbd4c3bc28c.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "argparse": "104b74146bf17483", "stdio": "285b6aa29a34754d", "main": "356c943c53331be0", "hashtable": "4c1f8f779b98eab9", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/c9f4be41ca1cc2b4.deps.json b/Test/ArgparseTest/output/c9f4be41ca1cc2b4.deps.json index a3cc1a6..0a902a1 100644 --- a/Test/ArgparseTest/output/c9f4be41ca1cc2b4.deps.json +++ b/Test/ArgparseTest/output/c9f4be41ca1cc2b4.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "argparse": "104b74146bf17483", "stdio": "285b6aa29a34754d", "main": "356c943c53331be0", "hashtable": "4c1f8f779b98eab9", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/f9d023d1df2bc9c5.deps.json b/Test/ArgparseTest/output/f9d023d1df2bc9c5.deps.json deleted file mode 100644 index a3cc1a6..0000000 --- a/Test/ArgparseTest/output/f9d023d1df2bc9c5.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/fc980acec33d69a7.deps.json b/Test/ArgparseTest/output/fc980acec33d69a7.deps.json index a3cc1a6..0a902a1 100644 --- a/Test/ArgparseTest/output/fc980acec33d69a7.deps.json +++ b/Test/ArgparseTest/output/fc980acec33d69a7.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "argparse": "104b74146bf17483", "stdio": "285b6aa29a34754d", "main": "356c943c53331be0", "hashtable": "4c1f8f779b98eab9", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ArgparseTest/output/ffaf70367668b227.deps.json b/Test/ArgparseTest/output/ffaf70367668b227.deps.json deleted file mode 100644 index a3cc1a6..0000000 --- a/Test/ArgparseTest/output/ffaf70367668b227.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "hashtable": "2b77d783c41d21d1", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "argparse": "b370d93b74bf55cc", "main": "b9a33a5027b4571b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/ArgparseTest/temp/08ea5281873244fd.doc.json b/Test/ArgparseTest/temp/08ea5281873244fd.doc.json deleted file mode 100644 index 9e26dfe..0000000 --- a/Test/ArgparseTest/temp/08ea5281873244fd.doc.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/Test/ArgparseTest/temp/08ea5281873244fd.pyi b/Test/ArgparseTest/temp/08ea5281873244fd.pyi deleted file mode 100644 index 0c46010..0000000 --- a/Test/ArgparseTest/temp/08ea5281873244fd.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -from stdint import * -import stdio -import stdlib -import string -import memhub -import argparse -import testcheck - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -@t.CExport -def main() -> int: pass diff --git a/Test/ArgparseTest/temp/14d33679f7fadf1f.pyi b/Test/ArgparseTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/ArgparseTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/ArgparseTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/ArgparseTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/ArgparseTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/271ea3decb810db2.pyi b/Test/ArgparseTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/ArgparseTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/ArgparseTest/temp/271ea3decb810db2.stub.ll.dep b/Test/ArgparseTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ArgparseTest/temp/2b77d783c41d21d1.stub.ll.dep b/Test/ArgparseTest/temp/2b77d783c41d21d1.stub.ll.dep deleted file mode 100644 index b2d63e3..0000000 --- a/Test/ArgparseTest/temp/2b77d783c41d21d1.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/ArgparseTest/temp/2b77d783c41d21d1.vpi b/Test/ArgparseTest/temp/2b77d783c41d21d1.vpi deleted file mode 100644 index 317f934..0000000 --- a/Test/ArgparseTest/temp/2b77d783c41d21d1.vpi +++ /dev/null @@ -1,46 +0,0 @@ -""" -Auto-generated Python stub file from hashtable.vp -Module: hashtable -""" - - -import t, c -import string -import memhub -from stdint import * - -_HT_EMPTY: t.CDefine = 0 -_HT_TOMBSTONE: t.CDefine = 1 -_HT_INIT_CAP: t.CDefine = 16 -_HT_SLOT_SIZE: t.CDefine = 24 -_FNV_OFFSET: t.CExtern | t.CUInt64T -_FNV_PRIME: t.CExtern | t.CUInt64T - -def _fnv1a_hash(key: str) -> t.CUInt64T: pass - - -class HashTable: - __slots__: t.CVoid | t.CPtr - __count__: t.CSizeT = 0 - __capacity__: t.CSizeT = 16 - __tombstones__: t.CSizeT = 0 - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT = 0 - def __new__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def _slot_hash(self: HashTable, idx: t.CSizeT) -> t.CUInt64T: pass - def _slot_key(self: HashTable, idx: t.CSizeT) -> str: pass - def _slot_value(self: HashTable, idx: t.CSizeT) -> t.CPtr: pass - def _set_slot(self: HashTable, idx: t.CSizeT, h: t.CUInt64T, key: str, val: t.CPtr) -> t.CInt: pass - def _find_slot(self: HashTable, key: str, h: t.CUInt64T) -> t.CSizeT: pass - def _resize(self: HashTable, new_cap: t.CSizeT) -> t.CInt: pass - def __setitem__(self: HashTable, key: str, val: t.CNeedPtr) -> t.CInt: pass - def __getitem__(self: HashTable, key: str) -> t.CPtr: pass - def __contains__(self: HashTable, key: str) -> t.CInt: pass - def __delitem__(self: HashTable, key: str) -> t.CInt: pass - def __len__(self: HashTable) -> t.CSizeT: pass - def __iter__(self: HashTable) -> HashTable | t.CPtr: pass - def __next__(self: HashTable) -> str: pass - def get(self: HashTable, key: str, default: t.CPtr) -> t.CPtr: pass - def set_int(self: HashTable, key: str, val: int) -> t.CInt: pass - def set_str(self: HashTable, key: str, val: str) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ArgparseTest/temp/6f62fe05c5ea1ceb.pyi b/Test/ArgparseTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/ArgparseTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/ArgparseTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/ArgparseTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ArgparseTest/temp/7e529fe7a078cfef.pyi b/Test/ArgparseTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/ArgparseTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/ArgparseTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/ArgparseTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ArgparseTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/90c53dd6db8d41cf.pyi b/Test/ArgparseTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/ArgparseTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/ArgparseTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/ArgparseTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ArgparseTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/_phase1_manifest.json b/Test/ArgparseTest/temp/_phase1_manifest.json index dea8dad..e3be914 100644 --- a/Test/ArgparseTest/temp/_phase1_manifest.json +++ b/Test/ArgparseTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ArgparseTest\\App\\main.py": {"sha1": "08ea5281873244fd", "mtime": 1783074740.4694562, "size": 8086}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.py": {"sha1": "aba439b7882ad9d6", "mtime": 1783072446.3366802, "size": 16968}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ArgparseTest\\App\\main.vp": {"sha1": "356c943c53331be0", "mtime": 1786094432.8905191, "size": 7983}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\argparse.vp": {"sha1": "104b74146bf17483", "mtime": 1786093784.9537544, "size": 17304}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.vp": {"sha1": "4c1f8f779b98eab9", "mtime": 1786093272.094484, "size": 9754}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ArgparseTest/temp/_sha1_map.txt b/Test/ArgparseTest/temp/_sha1_map.txt index 6562a7a..6608e45 100644 --- a/Test/ArgparseTest/temp/_sha1_map.txt +++ b/Test/ArgparseTest/temp/_sha1_map.txt @@ -1,13 +1,13 @@ -08ea5281873244fd:main.py -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -aba439b7882ad9d6:includes/argparse.py -b8c66c8ff44eb874:includes/hashtable.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +104b74146bf17483:includes/argparse.vp +285b6aa29a34754d:includes/stdio.vp +356c943c53331be0:main.vp +4c1f8f779b98eab9:includes/hashtable.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/ArgparseTest/temp/aba439b7882ad9d6.pyi b/Test/ArgparseTest/temp/aba439b7882ad9d6.pyi deleted file mode 100644 index 124ce31..0000000 --- a/Test/ArgparseTest/temp/aba439b7882ad9d6.pyi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from argparse.py -Module: argparse -""" - - -import t, c -from stdint import * -import string -import memhub -import stdio -import hashtable - -STRING: t.CDefine = 0 -INT: t.CDefine = 1 -BOOL: t.CDefine = 2 -STORE: t.CDefine = 0 -STORE_TRUE: t.CDefine = 1 -STORE_FALSE: t.CDefine = 2 -COUNT: t.CDefine = 3 -MAX_ARGS: t.CDefine = 32 -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -class Argument: - name: str - short_name: str - help_text: str - arg_type: INT - action: INT - default_int: INT - default_str: str - required: bool - is_positional: bool - dest: str -class ParsedArgs: - _ht: hashtable.HashTable | t.CPtr - __mbuddy__: memhub.MemBuddy | t.CPtr - def __new__(self: ParsedArgs, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: ParsedArgs, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def get_str(self: ParsedArgs, name: str) -> str: pass - def get_int(self: ParsedArgs, name: str) -> INT: pass - def get_bool(self: ParsedArgs, name: str) -> INT: pass - def has(self: ParsedArgs, name: str) -> bool: pass - def _set_str(self: ParsedArgs, name: str, val: str) -> t.CInt: pass - def _set_int(self: ParsedArgs, name: str, val: INT) -> t.CInt: pass - def _set_bool(self: ParsedArgs, name: str, val: bool) -> t.CInt: pass -class ArgumentParser: - _prog: str - _description: str - _args: Argument | t.CPtr - _arg_count: INT - __mbuddy__: memhub.MemBuddy | t.CPtr - def __new__(self: ArgumentParser, prog: str, description: str, pool: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: ArgumentParser, prog: str, description: str, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def add_argument(self: ArgumentParser, name: str, short: str, arg_type: INT, default: INT, default_str: str, required: bool, action: INT, help: str) -> t.CInt: pass - def _get_arg(self: ArgumentParser, idx: INT) -> Argument | t.CPtr: pass - def _find_long(self: ArgumentParser, token: str) -> INT: pass - def _find_long_prefix(self: ArgumentParser, token: str) -> INT: pass - def _find_short(self: ArgumentParser, token: str) -> INT: pass - def _find_positional(self: ArgumentParser, pos_idx: INT) -> INT: pass - def _store_value(self: ArgumentParser, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr, value: str) -> t.CInt: pass - def _apply_action(self: ArgumentParser, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr) -> t.CInt: pass - def parse_args(self: ArgumentParser, argc: INT, argv: str | t.CPtr) -> ParsedArgs | t.CPtr: pass - def print_help(self: ArgumentParser) -> t.CInt: pass - def print_usage(self: ArgumentParser) -> t.CInt: pass - -def release(args: ParsedArgs | t.CPtr) -> t.CInt: pass diff --git a/Test/ArgparseTest/temp/aba439b7882ad9d6.stub.ll.dep b/Test/ArgparseTest/temp/aba439b7882ad9d6.stub.ll.dep deleted file mode 100644 index f202bb6..0000000 --- a/Test/ArgparseTest/temp/aba439b7882ad9d6.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|b8c66c8ff44eb874|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/b370d93b74bf55cc.stub.ll.dep b/Test/ArgparseTest/temp/b370d93b74bf55cc.stub.ll.dep deleted file mode 100644 index 9d6ed5a..0000000 --- a/Test/ArgparseTest/temp/b370d93b74bf55cc.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|2b77d783c41d21d1|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/ArgparseTest/temp/b370d93b74bf55cc.vpi b/Test/ArgparseTest/temp/b370d93b74bf55cc.vpi deleted file mode 100644 index bb60e8b..0000000 --- a/Test/ArgparseTest/temp/b370d93b74bf55cc.vpi +++ /dev/null @@ -1,66 +0,0 @@ -""" -Auto-generated Python stub file from argparse.vp -Module: argparse -""" - - -import t, c -import string -import memhub -import stdio -import hashtable - -STRING: t.CDefine = 0 -INT: t.CDefine = 1 -BOOL: t.CDefine = 2 -STORE: t.CDefine = 0 -STORE_TRUE: t.CDefine = 1 -STORE_FALSE: t.CDefine = 2 -COUNT: t.CDefine = 3 -MAX_ARGS: t.CDefine = 32 -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -class Argument: - name: str - short_name: str - help_text: str - arg_type: int - action: int - default_int: int - default_str: str - required: bool - is_positional: bool - dest: str -class ParsedArgs: - _ht: hashtable.HashTable | t.CPtr - __mbuddy__: memhub.MemBuddy | t.CPtr - def __new__(self: ParsedArgs, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: ParsedArgs, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def get_str(self: ParsedArgs, name: str) -> str: pass - def get_int(self: ParsedArgs, name: str) -> int: pass - def get_bool(self: ParsedArgs, name: str) -> bool: pass - def has(self: ParsedArgs, name: str) -> bool: pass - def _set_str(self: ParsedArgs, name: str, val: str) -> t.CInt: pass - def _set_int(self: ParsedArgs, name: str, val: int) -> t.CInt: pass - def _set_bool(self: ParsedArgs, name: str, val: bool) -> t.CInt: pass -class ArgumentParser: - _prog: str - _description: str - _args: Argument | t.CPtr - _arg_count: int - __mbuddy__: memhub.MemBuddy | t.CPtr - def __new__(self: ArgumentParser, prog: str = '', description: str = '', pool: memhub.MemBuddy | t.CPtr = None) -> t.CPtr: pass - def __init__(self: ArgumentParser, prog: str = '', description: str = '', pool: memhub.MemBuddy | t.CPtr = None) -> t.CInt: pass - def add_argument(self: ArgumentParser, name: str = '', short: str = None, arg_type: int = 0, default: int = 0, default_str: str = None, required: bool = False, action: int = 0, help: str = None) -> t.CInt: pass - def _get_arg(self: ArgumentParser, idx: int) -> Argument | t.CPtr: pass - def _find_long(self: ArgumentParser, token: str) -> int: pass - def _find_long_prefix(self: ArgumentParser, token: str) -> int: pass - def _find_short(self: ArgumentParser, token: str) -> int: pass - def _find_positional(self: ArgumentParser, pos_idx: int) -> int: pass - def _store_value(self: ArgumentParser, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr, value: str) -> t.CInt: pass - def _apply_action(self: ArgumentParser, args: ParsedArgs | t.CPtr, arg: Argument | t.CPtr) -> t.CInt: pass - def parse_args(self: ArgumentParser, argc: int, argv: str | t.CPtr) -> ParsedArgs | t.CPtr: pass - def print_help(self: ArgumentParser) -> t.CInt: pass - def print_usage(self: ArgumentParser) -> t.CInt: pass - -def release(args: ParsedArgs | t.CPtr) -> t.CInt: pass diff --git a/Test/ArgparseTest/temp/b8c66c8ff44eb874.pyi b/Test/ArgparseTest/temp/b8c66c8ff44eb874.pyi deleted file mode 100644 index 85bdb8f..0000000 --- a/Test/ArgparseTest/temp/b8c66c8ff44eb874.pyi +++ /dev/null @@ -1,46 +0,0 @@ -""" -Auto-generated Python stub file from hashtable.py -Module: hashtable -""" - - -import t, c -import string -import memhub -from stdint import * - -_HT_EMPTY: t.CDefine = 0 -_HT_TOMBSTONE: t.CDefine = 1 -_HT_INIT_CAP: t.CDefine = 16 -_HT_SLOT_SIZE: t.CDefine = 24 -_FNV_OFFSET: t.CExtern | t.CUInt64T -_FNV_PRIME: t.CExtern | t.CUInt64T - -def _fnv1a_hash(key: str) -> t.CUInt64T: pass - - -class HashTable: - __slots__: t.CVoid | t.CPtr - __count__: t.CSizeT = 0 - __capacity__: t.CSizeT = 16 - __tombstones__: t.CSizeT = 0 - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT = 0 - def __new__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def _slot_hash(self: HashTable, idx: t.CSizeT) -> t.CUInt64T: pass - def _slot_key(self: HashTable, idx: t.CSizeT) -> str: pass - def _slot_value(self: HashTable, idx: t.CSizeT) -> t.CPtr: pass - def _set_slot(self: HashTable, idx: t.CSizeT, h: t.CUInt64T, key: str, val: t.CPtr) -> t.CInt: pass - def _find_slot(self: HashTable, key: str, h: t.CUInt64T) -> t.CSizeT: pass - def _resize(self: HashTable, new_cap: t.CSizeT) -> t.CInt: pass - def __setitem__(self: HashTable, key: str, val: t.CNeedPtr) -> t.CInt: pass - def __getitem__(self: HashTable, key: str) -> t.CPtr: pass - def __contains__(self: HashTable, key: str) -> t.CInt: pass - def __delitem__(self: HashTable, key: str) -> t.CInt: pass - def __len__(self: HashTable) -> t.CSizeT: pass - def __iter__(self: HashTable) -> HashTable | t.CPtr: pass - def __next__(self: HashTable) -> str: pass - def get(self: HashTable, key: str, default: t.CPtr) -> t.CPtr: pass - def set_int(self: HashTable, key: str, val: int) -> t.CInt: pass - def set_str(self: HashTable, key: str, val: str) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ArgparseTest/temp/b8c66c8ff44eb874.stub.ll.dep b/Test/ArgparseTest/temp/b8c66c8ff44eb874.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/ArgparseTest/temp/b8c66c8ff44eb874.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/b9a33a5027b4571b.doc.json b/Test/ArgparseTest/temp/b9a33a5027b4571b.doc.json deleted file mode 100644 index 9e26dfe..0000000 --- a/Test/ArgparseTest/temp/b9a33a5027b4571b.doc.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/Test/ArgparseTest/temp/b9a33a5027b4571b.vpi b/Test/ArgparseTest/temp/b9a33a5027b4571b.vpi deleted file mode 100644 index 5b64d7b..0000000 --- a/Test/ArgparseTest/temp/b9a33a5027b4571b.vpi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.vp -Module: main -""" - - -import t, c -from stdint import * -import stdio -import stdlib -import string -import memhub -import argparse -import testcheck - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -@t.CExport -def main() -> int: pass diff --git a/Test/ArgparseTest/temp/ba12ed409d78139e.pyi b/Test/ArgparseTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/ArgparseTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ArgparseTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/ArgparseTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ArgparseTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/ArgparseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ArgparseTest/temp/c9f4be41ca1cc2b4.pyi b/Test/ArgparseTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/ArgparseTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ArgparseTest/temp/d089e25a15c6f6e0.pyi b/Test/ArgparseTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/ArgparseTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ArgparseTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/ArgparseTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/ArgparseTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/f5522571bcce7bcb.pyi b/Test/ArgparseTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/ArgparseTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/ArgparseTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/ArgparseTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/ArgparseTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/ArgparseTest/temp/f9d023d1df2bc9c5.vpi b/Test/ArgparseTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/ArgparseTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ArgparseTest/temp/ffaf70367668b227.stub.ll.dep b/Test/ArgparseTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ArgparseTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ArgparseTest/temp/ffaf70367668b227.vpi b/Test/ArgparseTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/ArgparseTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/AstTest/.tpv_build/temp/08/0853acdbdfc9b27c.vpi b/Test/AstTest/.tpv_build/temp/08/0853acdbdfc9b27c.vpi deleted file mode 100644 index 92031d6..0000000 --- a/Test/AstTest/.tpv_build/temp/08/0853acdbdfc9b27c.vpi +++ /dev/null @@ -1,18 +0,0 @@ -"""Auto-generated Python stub file""" - - -from stdint import * -import t, c -from t import CInt, CExport -from stdio import printf -import memhub -import stdlib -import sys -import string -import ast -import w32.win32console -ARENA_SIZE: t.CDefine = 1048576 -POOL_SIZE: t.CDefine = 524288 -DUMP_SIZE: t.CDefine = 262144 -def main() -> CInt | CExport: pass - diff --git a/Test/AstTest/.tpv_build/temp/_sha1_map.txt b/Test/AstTest/.tpv_build/temp/_sha1_map.txt index 1028161..19d67e1 100644 --- a/Test/AstTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/AstTest/.tpv_build/temp/_sha1_map.txt @@ -1 +1,30 @@ -0853acdbdfc9b27c:main.vp +34dc6a647fa19b7b:includes/ast/astaux.vp +91497014ca775a64:includes/ast/base.vp +c14a7bd64dff8c0b:includes/ast/exprs.vp +d0072d5282b9b65f:includes/ast/lexer.vp +3b2a307c9c7d0129:includes/ast/match.vp +990115e40efd450e:includes/ast/parser.vp +87adf3c23279968a:includes/ast/stmts.vp +bf0dc2ebd7730267:includes/ast/tokens.vp +fa67083915eb2e30:includes/ast/__init__.vp +aa246c6e6aa30484:includes/atom.vp +6ddf430432a0e373:includes/json/__init__.vp +240a9a4157959a9f:includes/json/__parser.vp +20cd49775c100a38:includes/json/__writer.vp +04e5fe47ff2af528:includes/memhub.vp +b57252077e6b596b:includes/platmacro.vp +28de517e3820658a:includes/posix.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +f5522571bcce7bcb:includes/stdint.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +928c0ff6d8c69ec9:includes/string.vp +0c67644125bea0fd:includes/sys.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f6ab8989f3545e83:includes/viperlib.vp +fc980acec33d69a7:includes/w32/win32base.vp +bbdf3bbd4c3bc28c:includes/w32/win32console.vp +067c78e9f121dce3:includes/w32/win32process.vp +e0f0afe3caa1e486:includes/_dict.vp +7cadfe07e983fd90:includes/_list.vp +a642bfe8d0edc75f:main.vp diff --git a/Test/AstTest/App/main.vp b/Test/AstTest/App/main.vp index d2b3ff6..2b11f9a 100644 --- a/Test/AstTest/App/main.vp +++ b/Test/AstTest/App/main.vp @@ -84,8 +84,26 @@ class Point: printf("Parsing comprehensive source...\n") - # 解析 - tree: ast.AST | t.CPtr = ast.parse(src, pool) + # 解析(临时插桩:拆分 ast.parse 各阶段,定位崩溃点,定位后恢复) + ast._init_tables(pool) + printf("DBG1 init_tables done\n") + lx_dbg: t.CPtr = ast.new_lexer(pool) + if lx_dbg == None: + printf("FAIL: new_lexer returned None\n") + stdlib.free(pool_mem) + stdlib.free(dump_mem) + return 1 + printf("DBG2 new_lexer done\n") + ast._lexer_init(lx_dbg, src, pool) + printf("DBG3 lexer_init done\n") + tokens_dbg: t.CPtr = ast.tokenize(lx_dbg) + if tokens_dbg == None: + printf("FAIL: tokenize returned None\n") + stdlib.free(pool_mem) + stdlib.free(dump_mem) + return 1 + printf("DBG4 tokenize done\n") + tree: ast.AST | t.CPtr = ast.parse_tokens(pool, tokens_dbg) if tree == None: printf("FAIL: parse returned None\n") stdlib.free(pool_mem) diff --git a/Test/AstTest/output/067c78e9f121dce3.deps.json b/Test/AstTest/output/067c78e9f121dce3.deps.json index 35ed590..d4d8226 100644 --- a/Test/AstTest/output/067c78e9f121dce3.deps.json +++ b/Test/AstTest/output/067c78e9f121dce3.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/06f53cc594b4ac6c.deps.json b/Test/AstTest/output/06f53cc594b4ac6c.deps.json index 35ed590..d4d8226 100644 --- a/Test/AstTest/output/06f53cc594b4ac6c.deps.json +++ b/Test/AstTest/output/06f53cc594b4ac6c.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/0853acdbdfc9b27c.deps.json b/Test/AstTest/output/0853acdbdfc9b27c.deps.json index 116653d..0876cb0 100644 --- a/Test/AstTest/output/0853acdbdfc9b27c.deps.json +++ b/Test/AstTest/output/0853acdbdfc9b27c.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "posix": "6503c97dde0c79c4", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/AstTest/output/0c67644125bea0fd.deps.json b/Test/AstTest/output/0c67644125bea0fd.deps.json index 35ed590..d4d8226 100644 --- a/Test/AstTest/output/0c67644125bea0fd.deps.json +++ b/Test/AstTest/output/0c67644125bea0fd.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/22bc0df83b3f0e62.deps.json b/Test/AstTest/output/22bc0df83b3f0e62.deps.json deleted file mode 100644 index 35ed590..0000000 --- a/Test/AstTest/output/22bc0df83b3f0e62.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/28de517e3820658a.deps.json b/Test/AstTest/output/28de517e3820658a.deps.json index 35ed590..d4d8226 100644 --- a/Test/AstTest/output/28de517e3820658a.deps.json +++ b/Test/AstTest/output/28de517e3820658a.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/4337fb260448bbe2.deps.json b/Test/AstTest/output/4337fb260448bbe2.deps.json deleted file mode 100644 index 5c5f0db..0000000 --- a/Test/AstTest/output/4337fb260448bbe2.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/AstTest/output/4dd6b3f1427d1cc5.deps.json b/Test/AstTest/output/4dd6b3f1427d1cc5.deps.json deleted file mode 100644 index 5c5f0db..0000000 --- a/Test/AstTest/output/4dd6b3f1427d1cc5.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/AstTest/output/6446627d4f07a1b5.deps.json b/Test/AstTest/output/6446627d4f07a1b5.deps.json index 35ed590..d4d8226 100644 --- a/Test/AstTest/output/6446627d4f07a1b5.deps.json +++ b/Test/AstTest/output/6446627d4f07a1b5.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/657e182b27c2a022.deps.json b/Test/AstTest/output/657e182b27c2a022.deps.json deleted file mode 100644 index 5c5f0db..0000000 --- a/Test/AstTest/output/657e182b27c2a022.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/AstTest/output/72e2d5ccb7cedcf1.deps.json b/Test/AstTest/output/72e2d5ccb7cedcf1.deps.json index 35ed590..d4d8226 100644 --- a/Test/AstTest/output/72e2d5ccb7cedcf1.deps.json +++ b/Test/AstTest/output/72e2d5ccb7cedcf1.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "main": "0853acdbdfc9b27c", "sys": "0c67644125bea0fd", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "3b2a307c9c7d0129", "match": "3b2a307c9c7d0129", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.stmts": "87adf3c23279968a", "stmts": "87adf3c23279968a", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "ast.parser": "990115e40efd450e", "parser": "990115e40efd450e", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "ast.tokens": "bf0dc2ebd7730267", "tokens": "bf0dc2ebd7730267", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "ast.lexer": "d0072d5282b9b65f", "lexer": "d0072d5282b9b65f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/AstTest/output/_shared_sym_includes.pickle b/Test/AstTest/output/_shared_sym_includes.pickle index 313d13d9fc1a18316988ee3daeca2f49909ece11..d0c0fdfc6acadc3e3d86b26850d91f0a83b4615c 100644 GIT binary patch literal 1554803 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 HYX|=ygZ!!| literal 1610568 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

|idfH#qHknVTN=lB8 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%0DoU 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 t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/AstTest/temp/067c78e9f121dce3.pyi b/Test/AstTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/AstTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/AstTest/temp/067c78e9f121dce3.stub.ll.dep b/Test/AstTest/temp/067c78e9f121dce3.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/AstTest/temp/067c78e9f121dce3.stub.ll.dep +++ b/Test/AstTest/temp/067c78e9f121dce3.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/AstTest/temp/06f53cc594b4ac6c.pyi b/Test/AstTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/AstTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/AstTest/temp/0853acdbdfc9b27c.pyi b/Test/AstTest/temp/0853acdbdfc9b27c.pyi deleted file mode 100644 index 821be2f..0000000 --- a/Test/AstTest/temp/0853acdbdfc9b27c.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -from t import CInt, CExport -from stdio import printf -import memhub -import stdlib -import sys -import string -import ast -import w32.win32console - -ARENA_SIZE: t.CDefine = 1048576 -POOL_SIZE: t.CDefine = 524288 -DUMP_SIZE: t.CDefine = 262144 - -def main() -> CInt | CExport: pass diff --git a/Test/AstTest/temp/0c212981c180e7fb.pyi b/Test/AstTest/temp/0c212981c180e7fb.pyi deleted file mode 100644 index f432b06..0000000 --- a/Test/AstTest/temp/0c212981c180e7fb.pyi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from ast.lexer.py -Module: ast.lexer -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal - -LEXER_MAX_INDENT: t.CDefine = 256 - -class Lexer: - src: str - pos: t.CSizeT - len: t.CSizeT - lineno: t.CInt - col: t.CInt - pool: memhub.MemManager | t.CPtr - indent_stack: t.CInt | t.CPtr - indent_top: t.CInt - paren_depth: t.CInt - tokens_head: Token | t.CPtr - tokens_tail: Token | t.CPtr - at_line_start: t.CInt - error_count: t.CInt - def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass - -def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass - -def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _is_alpha(ch: t.CChar) -> t.CInt: pass - -def _is_digit(ch: t.CChar) -> t.CInt: pass - -def _is_alnum(ch: t.CChar) -> t.CInt: pass - -def _is_hex(ch: t.CChar) -> t.CInt: pass - -def _is_space(ch: t.CChar) -> t.CInt: pass - -def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass - -def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass - -def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass - -def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass - -def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass diff --git a/Test/AstTest/temp/0c212981c180e7fb.stub.ll.dep b/Test/AstTest/temp/0c212981c180e7fb.stub.ll.dep deleted file mode 100644 index 610b274..0000000 --- a/Test/AstTest/temp/0c212981c180e7fb.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|b547ac4f380bddb6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/0c67644125bea0fd.stub.ll.dep b/Test/AstTest/temp/0c67644125bea0fd.stub.ll.dep index 4bdbce3..4ee95b6 100644 --- a/Test/AstTest/temp/0c67644125bea0fd.stub.ll.dep +++ b/Test/AstTest/temp/0c67644125bea0fd.stub.ll.dep @@ -1 +1 @@ -067c78e9f121dce3|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|067c78e9f121dce3|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/AstTest/temp/22bc0df83b3f0e62.stub.ll.dep b/Test/AstTest/temp/22bc0df83b3f0e62.stub.ll.dep deleted file mode 100644 index ea67498..0000000 --- a/Test/AstTest/temp/22bc0df83b3f0e62.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/AstTest/temp/22bc0df83b3f0e62.vpi b/Test/AstTest/temp/22bc0df83b3f0e62.vpi deleted file mode 100644 index 7d08ed0..0000000 --- a/Test/AstTest/temp/22bc0df83b3f0e62.vpi +++ /dev/null @@ -1,183 +0,0 @@ -""" -Auto-generated Python stub file from ast.base.vp -Module: ast.base -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .tokens import TokOp - -class ASTKind(t.CEnum): - Module: t.State - FunctionDef: t.State - ClassDef: t.State - Assign: t.State - If: t.State - For: t.State - While: t.State - Return: t.State - Expr: t.State - Name: t.State - Constant: t.State - BinOp: t.State - UnaryOp: t.State - Call: t.State - Compare: t.State - Expression: t.State - Interactive: t.State - FunctionType: t.State - Delete: t.State - AugAssign: t.State - AnnAssign: t.State - With: t.State - Raise: t.State - Try: t.State - Assert: t.State - Global: t.State - Nonlocal: t.State - Pass: t.State - Break: t.State - Continue: t.State - Import: t.State - ImportFrom: t.State - Match: t.State - BoolOp: t.State - Lambda: t.State - IfExp: t.State - Dict: t.State - Set: t.State - ListComp: t.State - SetComp: t.State - DictComp: t.State - GeneratorExp: t.State - Await: t.State - Yield: t.State - YieldFrom: t.State - FormattedValue: t.State - JoinedStr: t.State - Attribute: t.State - Subscript: t.State - Starred: t.State - List: t.State - Tuple: t.State - Slice: t.State - NamedExpr: t.State - ExceptHandler: t.State - Arguments: t.State - Arg: t.State - Keyword: t.State - Alias: t.State - WithItem: t.State - Comprehension: t.State - OpNode: t.State - MatchCase: t.State - MatchValue: t.State - MatchSingleton: t.State - MatchSequence: t.State - MatchMapping: t.State - MatchClass: t.State - MatchStar: t.State - MatchAs: t.State - MatchOr: t.State -class ASTCtx(t.CEnum): - Load: t.State - Store: t.State - Del: t.State -class OpKind(t.CEnum): - Add: t.State - Sub: t.State - Mult: t.State - MatMult: t.State - Div: t.State - Mod: t.State - Pow: t.State - LShift: t.State - RShift: t.State - BitOr: t.State - BitXor: t.State - BitAnd: t.State - FloorDiv: t.State - And: t.State - Or: t.State - Eq: t.State - Ne: t.State - Lt: t.State - Le: t.State - Gt: t.State - Ge: t.State - Is: t.State - IsNot: t.State - In: t.State - NotIn: t.State - Not: t.State - UAdd: t.State - USub: t.State - Invert: t.State - NoneOp: t.State - -CONST_INT: t.CDefine = 1 -CONST_FLOAT: t.CDefine = 2 -CONST_STR: t.CDefine = 3 -CONST_BOOL: t.CDefine = 4 -CONST_NONE: t.CDefine = 5 -CONST_CHAR: t.CDefine = 6 -FLAG_IS_ASYNC: t.CDefine = 1 -FLAG_SIMPLE: t.CDefine = 2 -FLAG_HAS_STAR: t.CDefine = 4 - -class ASTFlag(t.CEnum): - IsAsync: t.State - Simple: t.State - HasStar: t.State - -def _copy_str(pool: memhub.MemManager | t.CPtr, src: str) -> str: pass - -def _set_pos(node: AST | t.CPtr, lineno: t.CInt, col_offset: t.CInt, end_lineno: t.CInt, end_col_offset: t.CInt) -> t.CInt: pass - -def _inherit_pos(node: AST | t.CPtr, ref: AST | t.CPtr) -> t.CInt: pass - -def _init_ast(node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - -def _set_parent_list(lst: list[AST | t.CPtr] | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _append_child(lst: list[AST | t.CPtr] | t.CPtr, node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _binop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _augop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _cmpop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _emit(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_str(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_int(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, val: t.CInt64T) -> t.CSizeT: pass - -def _op_name(op: t.CInt) -> str: pass - -def _dump_list(lst: list[AST | t.CPtr] | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - -def _dump_op_list(lst: t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - - -@t.CVTable -class AST: - parent: AST | t.CPtr - pool: memhub.MemManager | t.CPtr - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - children: list[AST | t.CPtr] | t.CPtr - def kind(self: AST) -> t.CInt: pass - def type_name(self: AST) -> str: pass - def dump(self: AST, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - def accept(self: AST, visitor: t.CPtr) -> t.CInt: pass - def append(self: AST, node: AST | t.CPtr) -> t.CInt: pass - -def dump(node: AST | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT) -> t.CInt: pass diff --git a/Test/AstTest/temp/271ea3decb810db2.pyi b/Test/AstTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/AstTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/AstTest/temp/271ea3decb810db2.stub.ll.dep b/Test/AstTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/AstTest/temp/34548789d646f432.pyi b/Test/AstTest/temp/34548789d646f432.pyi deleted file mode 100644 index e046b0c..0000000 --- a/Test/AstTest/temp/34548789d646f432.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from ast.__init__.py -Module: ast.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp, _init_tables -from .base import AST, ASTKind, ASTCtx, OpKind, ASTFlag, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, FLAG_IS_ASYNC, FLAG_SIMPLE, FLAG_HAS_STAR, _init_ast, _copy_str, _set_pos, _inherit_pos, _set_parent_list, _binop_from_op, _augop_from_op, _cmpop_from_op, _emit, _emit_str, _emit_int, _dump_list, dump -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .astaux import ExceptHandler, Arguments, Arg, Keyword, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .visitor import ASTVisitor -from .lexer import Lexer, _lexer_init, tokenize, new_lexer -from .parser import Parser, _parser_init, parse_tokens, new_parser -from .parser import _parse_test - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass - -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/AstTest/temp/34548789d646f432.stub.ll.dep b/Test/AstTest/temp/34548789d646f432.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/AstTest/temp/4337fb260448bbe2.pyi b/Test/AstTest/temp/4337fb260448bbe2.pyi deleted file mode 100644 index 7ed88bd..0000000 --- a/Test/AstTest/temp/4337fb260448bbe2.pyi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from ast.astaux.py -Module: ast.astaux -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class ExceptHandler(AST): - type: AST | t.CPtr - name: str - def __new__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: ExceptHandler) -> t.CInt: pass - def type_name(self: ExceptHandler) -> str: pass - def dump(self: ExceptHandler, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arguments(AST): - args: list[AST | t.CPtr] | t.CPtr - vararg: AST | t.CPtr - kwarg: AST | t.CPtr - defaults: list[AST | t.CPtr] | t.CPtr - kw_defaults: list[AST | t.CPtr] | t.CPtr - def __new__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Arguments) -> t.CInt: pass - def type_name(self: Arguments) -> str: pass - def dump(self: Arguments, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arg(AST): - arg: str - annotation: AST | t.CPtr - def __new__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def kind(self: Arg) -> t.CInt: pass - def type_name(self: Arg) -> str: pass - def dump(self: Arg, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Keyword(AST): - arg: str - value: AST | t.CPtr - def __new__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Keyword) -> t.CInt: pass - def type_name(self: Keyword) -> str: pass - def dump(self: Keyword, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Alias(AST): - name: str - asname: str - def __new__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def __init__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def kind(self: Alias) -> t.CInt: pass - def type_name(self: Alias) -> str: pass - def dump(self: Alias, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class WithItem(AST): - context_expr: AST | t.CPtr - optional_vars: AST | t.CPtr - def __new__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def __init__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def kind(self: WithItem) -> t.CInt: pass - def type_name(self: WithItem) -> str: pass - def dump(self: WithItem, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Comprehension(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - ifs: list[AST | t.CPtr] | t.CPtr - is_async: t.CInt - def __new__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: Comprehension) -> t.CInt: pass - def type_name(self: Comprehension) -> str: pass - def dump(self: Comprehension, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/4337fb260448bbe2.stub.ll.dep b/Test/AstTest/temp/4337fb260448bbe2.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/AstTest/temp/4337fb260448bbe2.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/4337fb260448bbe2.vpi b/Test/AstTest/temp/4337fb260448bbe2.vpi deleted file mode 100644 index efa527a..0000000 --- a/Test/AstTest/temp/4337fb260448bbe2.vpi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from ast.astaux.vp -Module: ast.astaux -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class ExceptHandler(AST): - type: AST | t.CPtr - name: str - def __new__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: ExceptHandler) -> t.CInt: pass - def type_name(self: ExceptHandler) -> str: pass - def dump(self: ExceptHandler, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arguments(AST): - args: list[AST | t.CPtr] | t.CPtr - vararg: AST | t.CPtr - kwarg: AST | t.CPtr - defaults: list[AST | t.CPtr] | t.CPtr - kw_defaults: list[AST | t.CPtr] | t.CPtr - def __new__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Arguments) -> t.CInt: pass - def type_name(self: Arguments) -> str: pass - def dump(self: Arguments, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arg(AST): - arg: str - annotation: AST | t.CPtr - def __new__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def kind(self: Arg) -> t.CInt: pass - def type_name(self: Arg) -> str: pass - def dump(self: Arg, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Keyword(AST): - arg: str - value: AST | t.CPtr - def __new__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Keyword) -> t.CInt: pass - def type_name(self: Keyword) -> str: pass - def dump(self: Keyword, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Alias(AST): - name: str - asname: str - def __new__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def __init__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def kind(self: Alias) -> t.CInt: pass - def type_name(self: Alias) -> str: pass - def dump(self: Alias, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class WithItem(AST): - context_expr: AST | t.CPtr - optional_vars: AST | t.CPtr - def __new__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def __init__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def kind(self: WithItem) -> t.CInt: pass - def type_name(self: WithItem) -> str: pass - def dump(self: WithItem, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Comprehension(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - ifs: list[AST | t.CPtr] | t.CPtr - is_async: t.CInt - def __new__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: Comprehension) -> t.CInt: pass - def type_name(self: Comprehension) -> str: pass - def dump(self: Comprehension, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/47767b5026a8ee15.pyi b/Test/AstTest/temp/47767b5026a8ee15.pyi deleted file mode 100644 index 7890f3d..0000000 --- a/Test/AstTest/temp/47767b5026a8ee15.pyi +++ /dev/null @@ -1,241 +0,0 @@ -""" -Auto-generated Python stub file from ast.exprs.py -Module: ast.exprs -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, _dump_op_list, _op_name, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE - -class Name(AST): - id: str - ctx: t.CInt - def __new__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Name) -> t.CInt: pass - def type_name(self: Name) -> str: pass - def dump(self: Name, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Constant(AST): - int_val: t.CInt64T - float_val: t.CDouble - str_val: str - const_kind: t.CInt - def __new__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def __init__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def kind(self: Constant) -> t.CInt: pass - def type_name(self: Constant) -> str: pass - def dump(self: Constant, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BinOp(AST): - left: AST | t.CPtr - op: t.CInt - right: AST | t.CPtr - def __new__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def __init__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def kind(self: BinOp) -> t.CInt: pass - def type_name(self: BinOp) -> str: pass - def dump(self: BinOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class UnaryOp(AST): - op: t.CInt - operand: AST | t.CPtr - def __new__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def __init__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def kind(self: UnaryOp) -> t.CInt: pass - def type_name(self: UnaryOp) -> str: pass - def dump(self: UnaryOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Compare(AST): - left: AST | t.CPtr - ops: t.CPtr - comparators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Compare) -> t.CInt: pass - def type_name(self: Compare) -> str: pass - def dump(self: Compare, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Call(AST): - func: AST | t.CPtr - args: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - def __new__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Call) -> t.CInt: pass - def type_name(self: Call) -> str: pass - def dump(self: Call, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BoolOp(AST): - op: t.CInt - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: BoolOp) -> t.CInt: pass - def type_name(self: BoolOp) -> str: pass - def dump(self: BoolOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Lambda(AST): - args: AST | t.CPtr - body: AST | t.CPtr - def __new__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Lambda) -> t.CInt: pass - def type_name(self: Lambda) -> str: pass - def dump(self: Lambda, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class IfExp(AST): - test: AST | t.CPtr - body: AST | t.CPtr - orelse: AST | t.CPtr - def __new__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def __init__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def kind(self: IfExp) -> t.CInt: pass - def type_name(self: IfExp) -> str: pass - def dump(self: IfExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Dict(AST): - keys: list[AST | t.CPtr] | t.CPtr - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Dict) -> t.CInt: pass - def type_name(self: Dict) -> str: pass - def dump(self: Dict, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Set(AST): - elts: list[AST | t.CPtr] | t.CPtr - def __new__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Set) -> t.CInt: pass - def type_name(self: Set) -> str: pass - def dump(self: Set, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ListComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: ListComp) -> t.CInt: pass - def type_name(self: ListComp) -> str: pass - def dump(self: ListComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class SetComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: SetComp) -> t.CInt: pass - def type_name(self: SetComp) -> str: pass - def dump(self: SetComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class DictComp(AST): - key: AST | t.CPtr - value: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: DictComp) -> t.CInt: pass - def type_name(self: DictComp) -> str: pass - def dump(self: DictComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class GeneratorExp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: GeneratorExp) -> t.CInt: pass - def type_name(self: GeneratorExp) -> str: pass - def dump(self: GeneratorExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Await(AST): - value: AST | t.CPtr - def __new__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Await) -> t.CInt: pass - def type_name(self: Await) -> str: pass - def dump(self: Await, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Yield(AST): - value: AST | t.CPtr - def __new__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Yield) -> t.CInt: pass - def type_name(self: Yield) -> str: pass - def dump(self: Yield, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class YieldFrom(AST): - value: AST | t.CPtr - def __new__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: YieldFrom) -> t.CInt: pass - def type_name(self: YieldFrom) -> str: pass - def dump(self: YieldFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FormattedValue(AST): - value: AST | t.CPtr - conversion: t.CInt - format_spec: AST | t.CPtr - def __new__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def kind(self: FormattedValue) -> t.CInt: pass - def type_name(self: FormattedValue) -> str: pass - def dump(self: FormattedValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class JoinedStr(AST): - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: JoinedStr) -> t.CInt: pass - def type_name(self: JoinedStr) -> str: pass - def dump(self: JoinedStr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Attribute(AST): - value: AST | t.CPtr - attr: str - ctx: t.CInt - def __new__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Attribute) -> t.CInt: pass - def type_name(self: Attribute) -> str: pass - def dump(self: Attribute, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Subscript(AST): - value: AST | t.CPtr - slice: AST | t.CPtr - ctx: t.CInt - def __new__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Subscript) -> t.CInt: pass - def type_name(self: Subscript) -> str: pass - def dump(self: Subscript, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Starred(AST): - value: AST | t.CPtr - ctx: t.CInt - def __new__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Starred) -> t.CInt: pass - def type_name(self: Starred) -> str: pass - def dump(self: Starred, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class List(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: List) -> t.CInt: pass - def type_name(self: List) -> str: pass - def dump(self: List, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Tuple(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Tuple) -> t.CInt: pass - def type_name(self: Tuple) -> str: pass - def dump(self: Tuple, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Slice(AST): - lower: AST | t.CPtr - upper: AST | t.CPtr - step: AST | t.CPtr - def __new__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def kind(self: Slice) -> t.CInt: pass - def type_name(self: Slice) -> str: pass - def dump(self: Slice, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class NamedExpr(AST): - target: AST | t.CPtr - value: AST | t.CPtr - def __new__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: NamedExpr) -> t.CInt: pass - def type_name(self: NamedExpr) -> str: pass - def dump(self: NamedExpr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class OpNode(AST): - op: t.CInt - def __new__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def __init__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def kind(self: OpNode) -> t.CInt: pass - def type_name(self: OpNode) -> str: pass - def dump(self: OpNode, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/47767b5026a8ee15.stub.ll.dep b/Test/AstTest/temp/47767b5026a8ee15.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/AstTest/temp/47767b5026a8ee15.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/4dd6b3f1427d1cc5.pyi b/Test/AstTest/temp/4dd6b3f1427d1cc5.pyi deleted file mode 100644 index dd15aa2..0000000 --- a/Test/AstTest/temp/4dd6b3f1427d1cc5.pyi +++ /dev/null @@ -1,82 +0,0 @@ -""" -Auto-generated Python stub file from ast.match.py -Module: ast.match -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class MatchCase(AST): - pattern: AST | t.CPtr - guard: AST | t.CPtr - def __new__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchCase) -> t.CInt: pass - def type_name(self: MatchCase) -> str: pass - def dump(self: MatchCase, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchValue(AST): - value: AST | t.CPtr - def __new__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchValue) -> t.CInt: pass - def type_name(self: MatchValue) -> str: pass - def dump(self: MatchValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSingleton(AST): - value: AST | t.CPtr - def __new__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchSingleton) -> t.CInt: pass - def type_name(self: MatchSingleton) -> str: pass - def dump(self: MatchSingleton, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSequence(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchSequence) -> t.CInt: pass - def type_name(self: MatchSequence) -> str: pass - def dump(self: MatchSequence, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchMapping(AST): - keys: list[AST | t.CPtr] | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - rest: str - def __new__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def __init__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def kind(self: MatchMapping) -> t.CInt: pass - def type_name(self: MatchMapping) -> str: pass - def dump(self: MatchMapping, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchClass(AST): - cls: AST | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - kwd_attrs: list[AST | t.CPtr] | t.CPtr - kwd_patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchClass) -> t.CInt: pass - def type_name(self: MatchClass) -> str: pass - def dump(self: MatchClass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchStar(AST): - name: str - def __new__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchStar) -> t.CInt: pass - def type_name(self: MatchStar) -> str: pass - def dump(self: MatchStar, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchAs(AST): - pattern: AST | t.CPtr - name: str - def __new__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchAs) -> t.CInt: pass - def type_name(self: MatchAs) -> str: pass - def dump(self: MatchAs, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchOr(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchOr) -> t.CInt: pass - def type_name(self: MatchOr) -> str: pass - def dump(self: MatchOr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep b/Test/AstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/AstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/4dd6b3f1427d1cc5.vpi b/Test/AstTest/temp/4dd6b3f1427d1cc5.vpi deleted file mode 100644 index 5e310d6..0000000 --- a/Test/AstTest/temp/4dd6b3f1427d1cc5.vpi +++ /dev/null @@ -1,82 +0,0 @@ -""" -Auto-generated Python stub file from ast.match.vp -Module: ast.match -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class MatchCase(AST): - pattern: AST | t.CPtr - guard: AST | t.CPtr - def __new__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchCase) -> t.CInt: pass - def type_name(self: MatchCase) -> str: pass - def dump(self: MatchCase, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchValue(AST): - value: AST | t.CPtr - def __new__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchValue) -> t.CInt: pass - def type_name(self: MatchValue) -> str: pass - def dump(self: MatchValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSingleton(AST): - value: AST | t.CPtr - def __new__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchSingleton) -> t.CInt: pass - def type_name(self: MatchSingleton) -> str: pass - def dump(self: MatchSingleton, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSequence(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchSequence) -> t.CInt: pass - def type_name(self: MatchSequence) -> str: pass - def dump(self: MatchSequence, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchMapping(AST): - keys: list[AST | t.CPtr] | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - rest: str - def __new__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def __init__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def kind(self: MatchMapping) -> t.CInt: pass - def type_name(self: MatchMapping) -> str: pass - def dump(self: MatchMapping, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchClass(AST): - cls: AST | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - kwd_attrs: list[AST | t.CPtr] | t.CPtr - kwd_patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchClass) -> t.CInt: pass - def type_name(self: MatchClass) -> str: pass - def dump(self: MatchClass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchStar(AST): - name: str - def __new__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchStar) -> t.CInt: pass - def type_name(self: MatchStar) -> str: pass - def dump(self: MatchStar, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchAs(AST): - pattern: AST | t.CPtr - name: str - def __new__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchAs) -> t.CInt: pass - def type_name(self: MatchAs) -> str: pass - def dump(self: MatchAs, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchOr(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchOr) -> t.CInt: pass - def type_name(self: MatchOr) -> str: pass - def dump(self: MatchOr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/5dab8cb390496d22.pyi b/Test/AstTest/temp/5dab8cb390496d22.pyi deleted file mode 100644 index 7056767..0000000 --- a/Test/AstTest/temp/5dab8cb390496d22.pyi +++ /dev/null @@ -1,182 +0,0 @@ -""" -Auto-generated Python stub file from ast.base.py -Module: ast.base -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .tokens import TokOp - -class ASTKind(t.CEnum): - Module: t.State - FunctionDef: t.State - ClassDef: t.State - Assign: t.State - If: t.State - For: t.State - While: t.State - Return: t.State - Expr: t.State - Name: t.State - Constant: t.State - BinOp: t.State - UnaryOp: t.State - Call: t.State - Compare: t.State - Expression: t.State - Interactive: t.State - FunctionType: t.State - Delete: t.State - AugAssign: t.State - AnnAssign: t.State - With: t.State - Raise: t.State - Try: t.State - Assert: t.State - Global: t.State - Nonlocal: t.State - Pass: t.State - Break: t.State - Continue: t.State - Import: t.State - ImportFrom: t.State - Match: t.State - BoolOp: t.State - Lambda: t.State - IfExp: t.State - Dict: t.State - Set: t.State - ListComp: t.State - SetComp: t.State - DictComp: t.State - GeneratorExp: t.State - Await: t.State - Yield: t.State - YieldFrom: t.State - FormattedValue: t.State - JoinedStr: t.State - Attribute: t.State - Subscript: t.State - Starred: t.State - List: t.State - Tuple: t.State - Slice: t.State - NamedExpr: t.State - ExceptHandler: t.State - Arguments: t.State - Arg: t.State - Keyword: t.State - Alias: t.State - WithItem: t.State - Comprehension: t.State - OpNode: t.State - MatchCase: t.State - MatchValue: t.State - MatchSingleton: t.State - MatchSequence: t.State - MatchMapping: t.State - MatchClass: t.State - MatchStar: t.State - MatchAs: t.State - MatchOr: t.State -class ASTCtx(t.CEnum): - Load: t.State - Store: t.State - Del: t.State -class OpKind(t.CEnum): - Add: t.State - Sub: t.State - Mult: t.State - MatMult: t.State - Div: t.State - Mod: t.State - Pow: t.State - LShift: t.State - RShift: t.State - BitOr: t.State - BitXor: t.State - BitAnd: t.State - FloorDiv: t.State - And: t.State - Or: t.State - Eq: t.State - Ne: t.State - Lt: t.State - Le: t.State - Gt: t.State - Ge: t.State - Is: t.State - IsNot: t.State - In: t.State - NotIn: t.State - Not: t.State - UAdd: t.State - USub: t.State - Invert: t.State - NoneOp: t.State - -CONST_INT: t.CDefine = 1 -CONST_FLOAT: t.CDefine = 2 -CONST_STR: t.CDefine = 3 -CONST_BOOL: t.CDefine = 4 -CONST_NONE: t.CDefine = 5 -FLAG_IS_ASYNC: t.CDefine = 1 -FLAG_SIMPLE: t.CDefine = 2 -FLAG_HAS_STAR: t.CDefine = 4 - -class ASTFlag(t.CEnum): - IsAsync: t.State - Simple: t.State - HasStar: t.State - -def _copy_str(pool: memhub.MemManager | t.CPtr, src: str) -> str: pass - -def _set_pos(node: AST | t.CPtr, lineno: t.CInt, col_offset: t.CInt, end_lineno: t.CInt, end_col_offset: t.CInt) -> t.CInt: pass - -def _inherit_pos(node: AST | t.CPtr, ref: AST | t.CPtr) -> t.CInt: pass - -def _init_ast(node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - -def _set_parent_list(lst: list[AST | t.CPtr] | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _append_child(lst: list[AST | t.CPtr] | t.CPtr, node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _binop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _augop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _cmpop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _emit(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_str(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_int(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, val: t.CInt64T) -> t.CSizeT: pass - -def _op_name(op: t.CInt) -> str: pass - -def _dump_list(lst: list[AST | t.CPtr] | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - -def _dump_op_list(lst: t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - - -@t.CVTable -class AST: - parent: AST | t.CPtr - pool: memhub.MemManager | t.CPtr - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - children: list[AST | t.CPtr] | t.CPtr - def kind(self: AST) -> t.CInt: pass - def type_name(self: AST) -> str: pass - def dump(self: AST, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - def accept(self: AST, visitor: t.CPtr) -> t.CInt: pass - def append(self: AST, node: AST | t.CPtr) -> t.CInt: pass - -def dump(node: AST | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT) -> t.CInt: pass diff --git a/Test/AstTest/temp/5dab8cb390496d22.stub.ll.dep b/Test/AstTest/temp/5dab8cb390496d22.stub.ll.dep deleted file mode 100644 index 42d081a..0000000 --- a/Test/AstTest/temp/5dab8cb390496d22.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/6446627d4f07a1b5.pyi b/Test/AstTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/AstTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/AstTest/temp/6503c97dde0c79c4.pyi b/Test/AstTest/temp/6503c97dde0c79c4.pyi deleted file mode 100644 index d332326..0000000 --- a/Test/AstTest/temp/6503c97dde0c79c4.pyi +++ /dev/null @@ -1,189 +0,0 @@ -""" -Auto-generated Python stub file from posix.py -Module: posix -""" - - -import t, c -from stdint import * - -DIR: t.CTypedef = t.CVoid | t.CPtr -mode_t: t.CTypedef = t.CUInt32T -pid_t: t.CTypedef = t.CInt32T -off_t: t.CTypedef = t.CInt64T -dev_t: t.CTypedef = t.CUInt64T -ino_t: t.CTypedef = t.CUInt64T -nlink_t: t.CTypedef = t.CUInt64T -uid_t: t.CTypedef = t.CUInt32T -gid_t: t.CTypedef = t.CUInt32T -blksize_t: t.CTypedef = t.CInt64T -blkcnt_t: t.CTypedef = t.CInt64T -time_t: t.CTypedef = t.CInt64T -O_RDONLY: t.CDefine = 0 -O_WRONLY: t.CDefine = 1 -O_RDWR: t.CDefine = 2 -O_CREAT: t.CDefine = 0o100 -O_EXCL: t.CDefine = 0o200 -O_TRUNC: t.CDefine = 0o1000 -O_APPEND: t.CDefine = 0o2000 -O_NONBLOCK: t.CDefine = 0o4000 -O_CLOEXEC: t.CDefine = 0o2000000 -F_OK: t.CDefine = 0 # 文件存在 -R_OK: t.CDefine = 4 # 可读 -W_OK: t.CDefine = 2 # 可写 -X_OK: t.CDefine = 1 # 可执行 -S_IFMT: t.CDefine = 0o170000 # 类型掩码 -S_IFSOCK: t.CDefine = 0o140000 # 套接字 -S_IFLNK: t.CDefine = 0o120000 # 符号链接 -S_IFREG: t.CDefine = 0o100000 # 普通文件 -S_IFBLK: t.CDefine = 0o060000 # 块设备 -S_IFDIR: t.CDefine = 0o040000 # 目录 -S_IFCHR: t.CDefine = 0o020000 # 字符设备 -S_IFIFO: t.CDefine = 0o010000 # FIFO/管道 -S_ISUID: t.CDefine = 0o4000 # set-user-ID -S_ISGID: t.CDefine = 0o2000 # set-group-ID -S_ISVTX: t.CDefine = 0o1000 # sticky 位 -S_IRWXU: t.CDefine = 0o700 # 用户读写执行 -S_IRUSR: t.CDefine = 0o400 # 用户读 -S_IWUSR: t.CDefine = 0o200 # 用户写 -S_IXUSR: t.CDefine = 0o100 # 用户执行 -S_IRWXG: t.CDefine = 0o070 # 组读写执行 -S_IRGRP: t.CDefine = 0o040 # 组读 -S_IWGRP: t.CDefine = 0o020 # 组写 -S_IXGRP: t.CDefine = 0o010 # 组执行 -S_IRWXO: t.CDefine = 0o007 # 其他读写执行 -S_IROTH: t.CDefine = 0o004 # 其他读 -S_IWOTH: t.CDefine = 0o002 # 其他写 -S_IXOTH: t.CDefine = 0o001 # 其他执行 -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -PATH_MAX: t.CDefine = 4096 -NAME_MAX: t.CDefine = 255 -_SC_NPROCESSORS_ONLN: t.CDefine = 84 -_SC_PAGESIZE: t.CDefine = 30 -_SC_CLK_TCK: t.CDefine = 2 -DT_UNKNOWN: t.CDefine = 0 -DT_FIFO: t.CDefine = 1 -DT_CHR: t.CDefine = 2 -DT_DIR: t.CDefine = 4 -DT_BLK: t.CDefine = 6 -DT_REG: t.CDefine = 8 -DT_LNK: t.CDefine = 10 -DT_SOCK: t.CDefine = 12 -DT_WHT: t.CDefine = 14 -WNOHANG: t.CDefine = 1 -WUNTRACED: t.CDefine = 2 -WCONTINUED: t.CDefine = 8 - -class Stat: - st_dev: dev_t - st_ino: ino_t - st_nlink: nlink_t - st_mode: mode_t - st_uid: uid_t - st_gid: gid_t - __pad0: INT - st_rdev: dev_t - st_size: off_t - st_blksize: blksize_t - st_blocks: blkcnt_t - st_atim_sec: time_t - st_atim_nsec: LONGLONG - st_mtim_sec: time_t - st_mtim_nsec: LONGLONG - st_ctim_sec: time_t - st_ctim_nsec: LONGLONG - __unused0: LONGLONG - __unused1: LONGLONG - __unused2: LONGLONG -class Dirent: - d_ino: ino_t - d_off: off_t - d_reclen: USHORT - d_type: BYTE - d_name: CHARPTR - -def open(path: t.CConst | str, oflag: INT, *args) -> INT | t.State: pass - -def close(fd: INT) -> INT | t.State: pass - -def read(fd: INT, buf: bytes, count: t.CSizeT) -> ssize_t | t.State: pass - -def write(fd: INT, buf: t.CConst | bytes, count: t.CSizeT) -> ssize_t | t.State: pass - -def lseek(fd: INT, offset: off_t, whence: INT) -> off_t | t.State: pass - -def unlink(path: t.CConst | str) -> INT | t.State: pass - -def access(path: t.CConst | str, amode: INT) -> INT | t.State: pass - -def realpath(path: t.CConst | str, resolved: CHARPTR) -> CHARPTR | t.State: pass - -def rename(oldpath: t.CConst | str, newpath: t.CConst | str) -> INT | t.State: pass - -def chmod(path: t.CConst | str, mode: mode_t) -> INT | t.State: pass - -def stat(path: t.CConst | str, buf: Stat | t.CPtr) -> INT | t.State: pass - -def fstat(fd: INT, buf: Stat | t.CPtr) -> INT | t.State: pass - -def opendir(name: t.CConst | str) -> DIR | t.CPtr | t.State: pass - -def readdir(dirp: DIR | t.CPtr) -> Dirent | t.CPtr | t.State: pass - -def closedir(dirp: DIR | t.CPtr) -> INT | t.State: pass - -def mkdir(path: t.CConst | str, mode: mode_t) -> INT | t.State: pass - -def rmdir(path: t.CConst | str) -> INT | t.State: pass - -def getcwd(buf: CHARPTR, size: t.CSizeT) -> CHARPTR | t.State: pass - -def chdir(path: t.CConst | str) -> INT | t.State: pass - -def fork() -> pid_t | t.State: pass - -def execvp(file: t.CConst | str, argv: CHARPTR | t.CPtr) -> INT | t.State: pass - -def execv(path: t.CConst | str, argv: CHARPTR | t.CPtr) -> INT | t.State: pass - -def waitpid(pid: pid_t, status: INT | t.CPtr, options: INT) -> pid_t | t.State: pass - -def pipe(fds: INT | t.CPtr) -> INT | t.State: pass - -def dup2(oldfd: INT, newfd: INT) -> INT | t.State: pass - -def _exit(status: INT) -> t.CVoid | t.State: pass - -def getpid() -> pid_t | t.State: pass - -def getenv(name: t.CConst | str) -> CHARPTR | t.State: pass - -def setenv(name: t.CConst | str, value: t.CConst | str, overwrite: INT) -> INT | t.State: pass - -def sysconf(name: INT) -> LONG | t.State: pass - -def isatty(fd: INT) -> INT | t.State: pass - -def S_ISREG(mode: mode_t) -> bool: pass - -def S_ISDIR(mode: mode_t) -> bool: pass - -def S_ISLNK(mode: mode_t) -> bool: pass - -def S_ISCHR(mode: mode_t) -> bool: pass - -def S_ISBLK(mode: mode_t) -> bool: pass - -def S_ISFIFO(mode: mode_t) -> bool: pass - -def S_ISSOCK(mode: mode_t) -> bool: pass - -def WIFEXITED(status: INT) -> bool: pass - -def WEXITSTATUS(status: INT) -> INT: pass - -def WIFSIGNALED(status: INT) -> bool: pass - -def WTERMSIG(status: INT) -> INT: pass diff --git a/Test/AstTest/temp/6503c97dde0c79c4.stub.ll.dep b/Test/AstTest/temp/6503c97dde0c79c4.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/AstTest/temp/6503c97dde0c79c4.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/657e182b27c2a022.pyi b/Test/AstTest/temp/657e182b27c2a022.pyi deleted file mode 100644 index 0a2057d..0000000 --- a/Test/AstTest/temp/657e182b27c2a022.pyi +++ /dev/null @@ -1,226 +0,0 @@ -""" -Auto-generated Python stub file from ast.stmts.py -Module: ast.stmts -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, FLAG_IS_ASYNC - -@t.CVTable -class Module(AST): - def __new__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Module) -> t.CInt: pass - def type_name(self: Module) -> str: pass - def dump(self: Module, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assign(AST): - targets: list[AST | t.CPtr] | t.CPtr - value: AST | t.CPtr - def __new__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assign) -> t.CInt: pass - def type_name(self: Assign) -> str: pass - def dump(self: Assign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class If(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: If) -> t.CInt: pass - def type_name(self: If) -> str: pass - def dump(self: If, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class For(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: For) -> t.CInt: pass - def type_name(self: For) -> str: pass - def dump(self: For, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class While(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: While) -> t.CInt: pass - def type_name(self: While) -> str: pass - def dump(self: While, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Return(AST): - value: AST | t.CPtr - def __new__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Return) -> t.CInt: pass - def type_name(self: Return) -> str: pass - def dump(self: Return, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expr(AST): - value: AST | t.CPtr - def __new__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expr) -> t.CInt: pass - def type_name(self: Expr) -> str: pass - def dump(self: Expr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionDef(AST): - name: str - args: AST | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - flags: t.CInt - def __new__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: FunctionDef) -> t.CInt: pass - def type_name(self: FunctionDef) -> str: pass - def dump(self: FunctionDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expression(AST): - body: AST | t.CPtr - def __new__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expression) -> t.CInt: pass - def type_name(self: Expression) -> str: pass - def dump(self: Expression, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Interactive(AST): - body: AST | t.CPtr - def __new__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Interactive) -> t.CInt: pass - def type_name(self: Interactive) -> str: pass - def dump(self: Interactive, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionType(AST): - argtypes: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - def __new__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def kind(self: FunctionType) -> t.CInt: pass - def type_name(self: FunctionType) -> str: pass - def dump(self: FunctionType, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ClassDef(AST): - name: str - bases: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - type_params: list[str] | t.CPtr - def __new__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr) -> t.CInt: pass - def __init__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr) -> t.CInt: pass - def kind(self: ClassDef) -> t.CInt: pass - def type_name(self: ClassDef) -> str: pass - def dump(self: ClassDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Delete(AST): - targets: list[AST | t.CPtr] | t.CPtr - def __new__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Delete) -> t.CInt: pass - def type_name(self: Delete) -> str: pass - def dump(self: Delete, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AugAssign(AST): - target: AST | t.CPtr - op: t.CInt - value: AST | t.CPtr - def __new__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: AugAssign) -> t.CInt: pass - def type_name(self: AugAssign) -> str: pass - def dump(self: AugAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AnnAssign(AST): - target: AST | t.CPtr - annotation: AST | t.CPtr - value: AST | t.CPtr - simple: t.CInt - def __new__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def __init__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def kind(self: AnnAssign) -> t.CInt: pass - def type_name(self: AnnAssign) -> str: pass - def dump(self: AnnAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class With(AST): - items: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: With) -> t.CInt: pass - def type_name(self: With) -> str: pass - def dump(self: With, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Raise(AST): - exc: AST | t.CPtr - cause: AST | t.CPtr - def __new__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def kind(self: Raise) -> t.CInt: pass - def type_name(self: Raise) -> str: pass - def dump(self: Raise, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Try(AST): - handlers: list[AST | t.CPtr] | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - finalbody: list[AST | t.CPtr] | t.CPtr - def __new__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Try) -> t.CInt: pass - def type_name(self: Try) -> str: pass - def dump(self: Try, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assert(AST): - test: AST | t.CPtr - msg: AST | t.CPtr - def __new__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assert) -> t.CInt: pass - def type_name(self: Assert) -> str: pass - def dump(self: Assert, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Global(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Global) -> t.CInt: pass - def type_name(self: Global) -> str: pass - def dump(self: Global, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Nonlocal(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Nonlocal) -> t.CInt: pass - def type_name(self: Nonlocal) -> str: pass - def dump(self: Nonlocal, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Pass(AST): - def __new__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Pass) -> t.CInt: pass - def type_name(self: Pass) -> str: pass - def dump(self: Pass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Break(AST): - def __new__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Break) -> t.CInt: pass - def type_name(self: Break) -> str: pass - def dump(self: Break, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Continue(AST): - def __new__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Continue) -> t.CInt: pass - def type_name(self: Continue) -> str: pass - def dump(self: Continue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Import(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Import) -> t.CInt: pass - def type_name(self: Import) -> str: pass - def dump(self: Import, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ImportFrom(AST): - module: str - names: list[AST | t.CPtr] | t.CPtr - level: t.CInt - def __new__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def __init__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def kind(self: ImportFrom) -> t.CInt: pass - def type_name(self: ImportFrom) -> str: pass - def dump(self: ImportFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Match(AST): - subject: AST | t.CPtr - cases: list[AST | t.CPtr] | t.CPtr - def __new__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Match) -> t.CInt: pass - def type_name(self: Match) -> str: pass - def dump(self: Match, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/657e182b27c2a022.stub.ll.dep b/Test/AstTest/temp/657e182b27c2a022.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/AstTest/temp/657e182b27c2a022.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/657e182b27c2a022.vpi b/Test/AstTest/temp/657e182b27c2a022.vpi deleted file mode 100644 index 9d135aa..0000000 --- a/Test/AstTest/temp/657e182b27c2a022.vpi +++ /dev/null @@ -1,226 +0,0 @@ -""" -Auto-generated Python stub file from ast.stmts.vp -Module: ast.stmts -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, FLAG_IS_ASYNC - -@t.CVTable -class Module(AST): - def __new__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Module) -> t.CInt: pass - def type_name(self: Module) -> str: pass - def dump(self: Module, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assign(AST): - targets: list[AST | t.CPtr] | t.CPtr - value: AST | t.CPtr - def __new__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assign) -> t.CInt: pass - def type_name(self: Assign) -> str: pass - def dump(self: Assign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class If(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: If) -> t.CInt: pass - def type_name(self: If) -> str: pass - def dump(self: If, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class For(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: For) -> t.CInt: pass - def type_name(self: For) -> str: pass - def dump(self: For, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class While(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: While) -> t.CInt: pass - def type_name(self: While) -> str: pass - def dump(self: While, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Return(AST): - value: AST | t.CPtr - def __new__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Return) -> t.CInt: pass - def type_name(self: Return) -> str: pass - def dump(self: Return, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expr(AST): - value: AST | t.CPtr - def __new__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expr) -> t.CInt: pass - def type_name(self: Expr) -> str: pass - def dump(self: Expr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionDef(AST): - name: str - args: AST | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - flags: t.CInt - def __new__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: FunctionDef) -> t.CInt: pass - def type_name(self: FunctionDef) -> str: pass - def dump(self: FunctionDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expression(AST): - body: AST | t.CPtr - def __new__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expression) -> t.CInt: pass - def type_name(self: Expression) -> str: pass - def dump(self: Expression, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Interactive(AST): - body: AST | t.CPtr - def __new__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Interactive) -> t.CInt: pass - def type_name(self: Interactive) -> str: pass - def dump(self: Interactive, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionType(AST): - argtypes: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - def __new__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def kind(self: FunctionType) -> t.CInt: pass - def type_name(self: FunctionType) -> str: pass - def dump(self: FunctionType, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ClassDef(AST): - name: str - bases: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - type_params: list[str] | t.CPtr - def __new__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr = None) -> t.CInt: pass - def __init__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr = None) -> t.CInt: pass - def kind(self: ClassDef) -> t.CInt: pass - def type_name(self: ClassDef) -> str: pass - def dump(self: ClassDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Delete(AST): - targets: list[AST | t.CPtr] | t.CPtr - def __new__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Delete) -> t.CInt: pass - def type_name(self: Delete) -> str: pass - def dump(self: Delete, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AugAssign(AST): - target: AST | t.CPtr - op: t.CInt - value: AST | t.CPtr - def __new__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: AugAssign) -> t.CInt: pass - def type_name(self: AugAssign) -> str: pass - def dump(self: AugAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AnnAssign(AST): - target: AST | t.CPtr - annotation: AST | t.CPtr - value: AST | t.CPtr - simple: t.CInt - def __new__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def __init__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def kind(self: AnnAssign) -> t.CInt: pass - def type_name(self: AnnAssign) -> str: pass - def dump(self: AnnAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class With(AST): - items: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: With) -> t.CInt: pass - def type_name(self: With) -> str: pass - def dump(self: With, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Raise(AST): - exc: AST | t.CPtr - cause: AST | t.CPtr - def __new__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def kind(self: Raise) -> t.CInt: pass - def type_name(self: Raise) -> str: pass - def dump(self: Raise, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Try(AST): - handlers: list[AST | t.CPtr] | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - finalbody: list[AST | t.CPtr] | t.CPtr - def __new__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Try) -> t.CInt: pass - def type_name(self: Try) -> str: pass - def dump(self: Try, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assert(AST): - test: AST | t.CPtr - msg: AST | t.CPtr - def __new__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assert) -> t.CInt: pass - def type_name(self: Assert) -> str: pass - def dump(self: Assert, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Global(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Global) -> t.CInt: pass - def type_name(self: Global) -> str: pass - def dump(self: Global, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Nonlocal(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Nonlocal) -> t.CInt: pass - def type_name(self: Nonlocal) -> str: pass - def dump(self: Nonlocal, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Pass(AST): - def __new__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Pass) -> t.CInt: pass - def type_name(self: Pass) -> str: pass - def dump(self: Pass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Break(AST): - def __new__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Break) -> t.CInt: pass - def type_name(self: Break) -> str: pass - def dump(self: Break, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Continue(AST): - def __new__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Continue) -> t.CInt: pass - def type_name(self: Continue) -> str: pass - def dump(self: Continue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Import(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Import) -> t.CInt: pass - def type_name(self: Import) -> str: pass - def dump(self: Import, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ImportFrom(AST): - module: str - names: list[AST | t.CPtr] | t.CPtr - level: t.CInt - def __new__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def __init__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def kind(self: ImportFrom) -> t.CInt: pass - def type_name(self: ImportFrom) -> str: pass - def dump(self: ImportFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Match(AST): - subject: AST | t.CPtr - cases: list[AST | t.CPtr] | t.CPtr - def __new__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Match) -> t.CInt: pass - def type_name(self: Match) -> str: pass - def dump(self: Match, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/6f62fe05c5ea1ceb.pyi b/Test/AstTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/AstTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/AstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/AstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/AstTest/temp/71e0a3ffcb3ebfad.pyi b/Test/AstTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/AstTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/AstTest/temp/72e2d5ccb7cedcf1.pyi b/Test/AstTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/AstTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/AstTest/temp/7e529fe7a078cfef.pyi b/Test/AstTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/AstTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/AstTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/AstTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/AstTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/90c53dd6db8d41cf.pyi b/Test/AstTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/AstTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/AstTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/AstTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/AstTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/93c1d18e35d188d6.pyi b/Test/AstTest/temp/93c1d18e35d188d6.pyi deleted file mode 100644 index a8cd09e..0000000 --- a/Test/AstTest/temp/93c1d18e35d188d6.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from platmacro.py -Module: platmacro -""" - - -import t, c - -IS_WINDOWS: t.CDefine = 1 -IS_WIN64: t.CDefine = 1 -IS_X86_64: t.CDefine = 1 -IS_LP64: t.CDefine = 1 -IS_LITTLE_ENDIAN: t.CDefine = 1 -IS_LINUX: t.CDefine = 0 -IS_MACOS: t.CDefine = 0 -IS_ARM64: t.CDefine = 0 -IS_BIG_ENDIAN: t.CDefine = 0 -IS_ILP32: t.CDefine = 0 -PTR_SIZE: t.CDefine = t.CSizeT().Size -INT_SIZE: t.CDefine = 4 -LONG_SIZE: t.CDefine = t.CLong().Size -WORD_SIZE: t.CDefine = t.CSizeT().Size -CACHE_LINE_SIZE: t.CDefine = 64 -PAGE_SIZE: t.CDefine = 4096 -STACK_ALIGN: t.CDefine = 16 -MAX_PATH_LEN: t.CDefine = 260 -PLATFORM_NAME: t.CDefine = 1 -ARCH_NAME: t.CDefine = 1 -WINVER: t.CDefine = 0x0A00 -_WIN32_WINNT: t.CDefine = 0x0A00 -NTDDI_VERSION: t.CDefine = 0x0A000006 -HAS_SSE2: t.CDefine = 1 -HAS_AVX: t.CDefine = 1 -HAS_AVX2: t.CDefine = 1 -HAS_FMA: t.CDefine = 1 -HAS_NEON: t.CDefine = 0 -ALIGNOF_INT: t.CDefine = 4 -ALIGNOF_LONG: t.CDefine = t.CLong().Size // 8 -ALIGNOF_PTR: t.CDefine = t.CSizeT().Size // 8 -ALIGNOF_DOUBLE: t.CDefine = 8 -ALIGNOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_SHORT: t.CDefine = 2 -SIZEOF_INT: t.CDefine = 4 -SIZEOF_LONG: t.CDefine = t.CLong().Size // 8 -SIZEOF_LONG_LONG: t.CDefine = 8 -SIZEOF_FLOAT: t.CDefine = 4 -SIZEOF_DOUBLE: t.CDefine = 8 -SIZEOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_POINTER: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_SIZE_T: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_PTRDIFF_T: t.CDefine = t.CPtrDiffT().Size // 8 -BYTE_ORDER_LE: t.CDefine = 1 -BYTE_ORDER_BE: t.CDefine = 0 \ No newline at end of file diff --git a/Test/AstTest/temp/93c1d18e35d188d6.stub.ll.dep b/Test/AstTest/temp/93c1d18e35d188d6.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/AstTest/temp/_phase1_manifest.json b/Test/AstTest/temp/_phase1_manifest.json index e4d68e0..8df3994 100644 --- a/Test/AstTest/temp/_phase1_manifest.json +++ b/Test/AstTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\AstTest\\App\\main.py": {"sha1": "0853acdbdfc9b27c", "mtime": 1782892830.6294758, "size": 2439}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file +{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\AstTest\\App\\main.vp": {"sha1": "0853acdbdfc9b27c", "mtime": 1782892830.6294758, "size": 2439}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.vp": {"sha1": "fa67083915eb2e30", "mtime": 1786033550.3346176, "size": 3770}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.vp": {"sha1": "34dc6a647fa19b7b", "mtime": 1786033586.0642571, "size": 11475}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.vp": {"sha1": "91497014ca775a64", "mtime": 1786033954.7782319, "size": 15215}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.vp": {"sha1": "c14a7bd64dff8c0b", "mtime": 1786034120.289799, "size": 40831}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.vp": {"sha1": "d0072d5282b9b65f", "mtime": 1786095601.8036606, "size": 24838}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.vp": {"sha1": "3b2a307c9c7d0129", "mtime": 1786095636.9718795, "size": 12297}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.vp": {"sha1": "990115e40efd450e", "mtime": 1786098899.8803532, "size": 88664}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.vp": {"sha1": "87adf3c23279968a", "mtime": 1786099191.7155466, "size": 37874}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.vp": {"sha1": "bf0dc2ebd7730267", "mtime": 1786099769.991788, "size": 14058}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.vp": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.vp": {"sha1": "28de517e3820658a", "mtime": 1785335629.2014928, "size": 10586}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.vp": {"sha1": "0c67644125bea0fd", "mtime": 1785325556.7317626, "size": 5606}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.vp": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file diff --git a/Test/AstTest/temp/_sha1_map.txt b/Test/AstTest/temp/_sha1_map.txt index b12dc33..890df40 100644 --- a/Test/AstTest/temp/_sha1_map.txt +++ b/Test/AstTest/temp/_sha1_map.txt @@ -1,25 +1,25 @@ -067c78e9f121dce3:includes/w32\win32process.py -0853acdbdfc9b27c:main.py -0c212981c180e7fb:includes/ast\lexer.py -271ea3decb810db2:includes/atom.py -34548789d646f432:includes/ast\__init__.py -4337fb260448bbe2:includes/ast\astaux.py -47767b5026a8ee15:includes/ast\exprs.py -4dd6b3f1427d1cc5:includes/ast\match.py -5dab8cb390496d22:includes/ast\base.py -6503c97dde0c79c4:includes/posix.py -657e182b27c2a022:includes/ast\stmts.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -93c1d18e35d188d6:includes/platmacro.py -b547ac4f380bddb6:includes/ast\tokens.py -b5a965302cded36b:includes/sys.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -ee52c08239684346:includes/ast\parser.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +067c78e9f121dce3:includes/w32\win32process.vp +0853acdbdfc9b27c:main.vp +0c67644125bea0fd:includes/sys.vp +285b6aa29a34754d:includes/stdio.vp +28de517e3820658a:includes/posix.vp +34dc6a647fa19b7b:includes/ast\astaux.vp +3b2a307c9c7d0129:includes/ast\match.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +87adf3c23279968a:includes/ast\stmts.vp +91497014ca775a64:includes/ast\base.vp +928c0ff6d8c69ec9:includes/string.vp +990115e40efd450e:includes/ast\parser.vp +aa246c6e6aa30484:includes/atom.vp +b57252077e6b596b:includes/platmacro.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +bf0dc2ebd7730267:includes/ast\tokens.vp +c14a7bd64dff8c0b:includes/ast\exprs.vp +c9f4be41ca1cc2b4:includes/viperio.vp +d0072d5282b9b65f:includes/ast\lexer.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +fa67083915eb2e30:includes/ast\__init__.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/AstTest/temp/b543bc1dfb592119.stub.ll.dep b/Test/AstTest/temp/b543bc1dfb592119.stub.ll.dep deleted file mode 100644 index 4565d8a..0000000 --- a/Test/AstTest/temp/b543bc1dfb592119.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -22bc0df83b3f0e62|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/AstTest/temp/b543bc1dfb592119.vpi b/Test/AstTest/temp/b543bc1dfb592119.vpi deleted file mode 100644 index 4910ab4..0000000 --- a/Test/AstTest/temp/b543bc1dfb592119.vpi +++ /dev/null @@ -1,241 +0,0 @@ -""" -Auto-generated Python stub file from ast.exprs.vp -Module: ast.exprs -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, _dump_op_list, _op_name, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR - -class Name(AST): - id: str - ctx: t.CInt - def __new__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Name) -> t.CInt: pass - def type_name(self: Name) -> str: pass - def dump(self: Name, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Constant(AST): - int_val: t.CInt64T - float_val: t.CDouble - str_val: str - const_kind: t.CInt - def __new__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def __init__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def kind(self: Constant) -> t.CInt: pass - def type_name(self: Constant) -> str: pass - def dump(self: Constant, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BinOp(AST): - left: AST | t.CPtr - op: t.CInt - right: AST | t.CPtr - def __new__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def __init__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def kind(self: BinOp) -> t.CInt: pass - def type_name(self: BinOp) -> str: pass - def dump(self: BinOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class UnaryOp(AST): - op: t.CInt - operand: AST | t.CPtr - def __new__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def __init__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def kind(self: UnaryOp) -> t.CInt: pass - def type_name(self: UnaryOp) -> str: pass - def dump(self: UnaryOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Compare(AST): - left: AST | t.CPtr - ops: t.CPtr - comparators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Compare) -> t.CInt: pass - def type_name(self: Compare) -> str: pass - def dump(self: Compare, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Call(AST): - func: AST | t.CPtr - args: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - def __new__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Call) -> t.CInt: pass - def type_name(self: Call) -> str: pass - def dump(self: Call, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BoolOp(AST): - op: t.CInt - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: BoolOp) -> t.CInt: pass - def type_name(self: BoolOp) -> str: pass - def dump(self: BoolOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Lambda(AST): - args: AST | t.CPtr - body: AST | t.CPtr - def __new__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Lambda) -> t.CInt: pass - def type_name(self: Lambda) -> str: pass - def dump(self: Lambda, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class IfExp(AST): - test: AST | t.CPtr - body: AST | t.CPtr - orelse: AST | t.CPtr - def __new__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def __init__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def kind(self: IfExp) -> t.CInt: pass - def type_name(self: IfExp) -> str: pass - def dump(self: IfExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Dict(AST): - keys: list[AST | t.CPtr] | t.CPtr - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Dict) -> t.CInt: pass - def type_name(self: Dict) -> str: pass - def dump(self: Dict, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Set(AST): - elts: list[AST | t.CPtr] | t.CPtr - def __new__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Set) -> t.CInt: pass - def type_name(self: Set) -> str: pass - def dump(self: Set, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ListComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: ListComp) -> t.CInt: pass - def type_name(self: ListComp) -> str: pass - def dump(self: ListComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class SetComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: SetComp) -> t.CInt: pass - def type_name(self: SetComp) -> str: pass - def dump(self: SetComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class DictComp(AST): - key: AST | t.CPtr - value: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: DictComp) -> t.CInt: pass - def type_name(self: DictComp) -> str: pass - def dump(self: DictComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class GeneratorExp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: GeneratorExp) -> t.CInt: pass - def type_name(self: GeneratorExp) -> str: pass - def dump(self: GeneratorExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Await(AST): - value: AST | t.CPtr - def __new__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Await) -> t.CInt: pass - def type_name(self: Await) -> str: pass - def dump(self: Await, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Yield(AST): - value: AST | t.CPtr - def __new__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Yield) -> t.CInt: pass - def type_name(self: Yield) -> str: pass - def dump(self: Yield, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class YieldFrom(AST): - value: AST | t.CPtr - def __new__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: YieldFrom) -> t.CInt: pass - def type_name(self: YieldFrom) -> str: pass - def dump(self: YieldFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FormattedValue(AST): - value: AST | t.CPtr - conversion: t.CInt - format_spec: AST | t.CPtr - def __new__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def kind(self: FormattedValue) -> t.CInt: pass - def type_name(self: FormattedValue) -> str: pass - def dump(self: FormattedValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class JoinedStr(AST): - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: JoinedStr) -> t.CInt: pass - def type_name(self: JoinedStr) -> str: pass - def dump(self: JoinedStr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Attribute(AST): - value: AST | t.CPtr - attr: str - ctx: t.CInt - def __new__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Attribute) -> t.CInt: pass - def type_name(self: Attribute) -> str: pass - def dump(self: Attribute, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Subscript(AST): - value: AST | t.CPtr - slice: AST | t.CPtr - ctx: t.CInt - def __new__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Subscript) -> t.CInt: pass - def type_name(self: Subscript) -> str: pass - def dump(self: Subscript, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Starred(AST): - value: AST | t.CPtr - ctx: t.CInt - def __new__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Starred) -> t.CInt: pass - def type_name(self: Starred) -> str: pass - def dump(self: Starred, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class List(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: List) -> t.CInt: pass - def type_name(self: List) -> str: pass - def dump(self: List, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Tuple(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Tuple) -> t.CInt: pass - def type_name(self: Tuple) -> str: pass - def dump(self: Tuple, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Slice(AST): - lower: AST | t.CPtr - upper: AST | t.CPtr - step: AST | t.CPtr - def __new__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def kind(self: Slice) -> t.CInt: pass - def type_name(self: Slice) -> str: pass - def dump(self: Slice, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class NamedExpr(AST): - target: AST | t.CPtr - value: AST | t.CPtr - def __new__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: NamedExpr) -> t.CInt: pass - def type_name(self: NamedExpr) -> str: pass - def dump(self: NamedExpr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class OpNode(AST): - op: t.CInt - def __new__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def __init__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def kind(self: OpNode) -> t.CInt: pass - def type_name(self: OpNode) -> str: pass - def dump(self: OpNode, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/AstTest/temp/b547ac4f380bddb6.pyi b/Test/AstTest/temp/b547ac4f380bddb6.pyi deleted file mode 100644 index e960341..0000000 --- a/Test/AstTest/temp/b547ac4f380bddb6.pyi +++ /dev/null @@ -1,166 +0,0 @@ -""" -Auto-generated Python stub file from ast.tokens.py -Module: ast.tokens -""" - - -import t, c -from stdint import * -import memhub -import string - -class TokenType(t.CEnum): - EndMarker: t.State - NewLine: t.State - Indent: t.State - Dedent: t.State - Name: t.State - Number: t.State - String: t.State - FStringStart: t.State - FStringMiddle: t.State - FStringEnd: t.State - Op: t.State - Nl: t.State - Comment: t.State - Encoding: t.State -class Keyword(t.CEnum): - NotKeyword: t.State - False_: t.State - None_: t.State - True_: t.State - And: t.State - As: t.State - Assert: t.State - Async: t.State - Await: t.State - Break: t.State - Class: t.State - Continue: t.State - Def: t.State - Del: t.State - Elif: t.State - Else: t.State - Except: t.State - Finally: t.State - For: t.State - From: t.State - Global: t.State - If: t.State - Import: t.State - In: t.State - Is: t.State - Lambda: t.State - Nonlocal: t.State - Not: t.State - Or: t.State - Pass: t.State - Raise: t.State - Return: t.State - Try: t.State - While: t.State - With: t.State - Yield: t.State - Match: t.State - Case: t.State - Type: t.State -class TokOp(t.CEnum): - LPar: t.State - RPar: t.State - Lsqb: t.State - Rsqb: t.State - LBrace: t.State - RBrace: t.State - Comma: t.State - Colon: t.State - Dot: t.State - Semi: t.State - At: t.State - Equal: t.State - RArrow: t.State - PlusEq: t.State - MinusEq: t.State - StarEq: t.State - SlashEq: t.State - DSlashEq: t.State - PercentEq: t.State - AtEq: t.State - AmpEq: t.State - VBarEq: t.State - CaretEq: t.State - GtGtEq: t.State - LtLtEq: t.State - StarEqEq: t.State - DSlash: t.State - StarStar: t.State - LtLt: t.State - GtGt: t.State - LessEq: t.State - GreaterEq: t.State - EqEq: t.State - ExclaimEq: t.State - Less: t.State - Greater: t.State - Plus: t.State - Minus: t.State - Star: t.State - Slash: t.State - Percent: t.State - Amp: t.State - VBar: t.State - Caret: t.State - Tilde: t.State - ColonEq: t.State - Ellipsis: t.State - Bang: t.State -class Token: - type: t.CInt - op_subtype: t.CInt - kw_subtype: t.CInt - str_val: str - int_val: t.CInt64T - float_val: t.CDouble - is_float: t.CInt - is_complex: t.CInt - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - next: Token | t.CPtr - def __new__(self: Token, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass -class KwEntry: - name: str - kw_id: t.CInt - next: KwEntry | t.CPtr - def __new__(self: KwEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_kw_head: t.CExtern | KwEntry | t.CPtr -_kw_pool: t.CExtern | memhub.MemManager | t.CPtr - -def _kw_intern(pool: memhub.MemManager | t.CPtr, name: str, kw_id: t.CInt) -> t.CInt: pass - -def _kw_lookup(name: str) -> t.CInt: pass - -def _init_keywords(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - - -class OpEntry: - name: str - op_id: t.CInt - length: t.CInt - next: OpEntry | t.CPtr - def __new__(self: OpEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_op_head: t.CExtern | OpEntry | t.CPtr - -def _op_intern(pool: memhub.MemManager | t.CPtr, name: str, op_id: t.CInt) -> t.CInt: pass - -def _init_operators(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _init_tables(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_token(pool: memhub.MemManager | t.CPtr, ttype: t.CInt, lineno: t.CInt, col_offset: t.CInt) -> Token | t.CPtr: pass - -def token_set_str(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, src: str, start: t.CSizeT, length: t.CSizeT) -> t.CInt: pass - -def token_set_str_literal(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, text: str) -> t.CInt: pass diff --git a/Test/AstTest/temp/b547ac4f380bddb6.stub.ll.dep b/Test/AstTest/temp/b547ac4f380bddb6.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/AstTest/temp/b547ac4f380bddb6.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/b547ac4f380bddb6.vpi b/Test/AstTest/temp/b547ac4f380bddb6.vpi deleted file mode 100644 index 308d33b..0000000 --- a/Test/AstTest/temp/b547ac4f380bddb6.vpi +++ /dev/null @@ -1,166 +0,0 @@ -""" -Auto-generated Python stub file from ast.tokens.vp -Module: ast.tokens -""" - - -import t, c -from stdint import * -import memhub -import string - -class TokenType(t.CEnum): - EndMarker: t.State - NewLine: t.State - Indent: t.State - Dedent: t.State - Name: t.State - Number: t.State - String: t.State - FStringStart: t.State - FStringMiddle: t.State - FStringEnd: t.State - Op: t.State - Nl: t.State - Comment: t.State - Encoding: t.State -class Keyword(t.CEnum): - NotKeyword: t.State - False_: t.State - None_: t.State - True_: t.State - And: t.State - As: t.State - Assert: t.State - Async: t.State - Await: t.State - Break: t.State - Class: t.State - Continue: t.State - Def: t.State - Del: t.State - Elif: t.State - Else: t.State - Except: t.State - Finally: t.State - For: t.State - From: t.State - Global: t.State - If: t.State - Import: t.State - In: t.State - Is: t.State - Lambda: t.State - Nonlocal: t.State - Not: t.State - Or: t.State - Pass: t.State - Raise: t.State - Return: t.State - Try: t.State - While: t.State - With: t.State - Yield: t.State - Match: t.State - Case: t.State - Type: t.State -class TokOp(t.CEnum): - LPar: t.State - RPar: t.State - Lsqb: t.State - Rsqb: t.State - LBrace: t.State - RBrace: t.State - Comma: t.State - Colon: t.State - Dot: t.State - Semi: t.State - At: t.State - Equal: t.State - RArrow: t.State - PlusEq: t.State - MinusEq: t.State - StarEq: t.State - SlashEq: t.State - DSlashEq: t.State - PercentEq: t.State - AtEq: t.State - AmpEq: t.State - VBarEq: t.State - CaretEq: t.State - GtGtEq: t.State - LtLtEq: t.State - StarEqEq: t.State - DSlash: t.State - StarStar: t.State - LtLt: t.State - GtGt: t.State - LessEq: t.State - GreaterEq: t.State - EqEq: t.State - ExclaimEq: t.State - Less: t.State - Greater: t.State - Plus: t.State - Minus: t.State - Star: t.State - Slash: t.State - Percent: t.State - Amp: t.State - VBar: t.State - Caret: t.State - Tilde: t.State - ColonEq: t.State - Ellipsis: t.State - Bang: t.State -class Token: - type: t.CInt - op_subtype: t.CInt - kw_subtype: t.CInt - str_val: str - int_val: t.CInt64T - float_val: t.CDouble - is_float: t.CInt - is_complex: t.CInt - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - next: Token | t.CPtr - def __new__(self: Token, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass -class KwEntry: - name: str - kw_id: t.CInt - next: KwEntry | t.CPtr - def __new__(self: KwEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_kw_head: t.CExtern | KwEntry | t.CPtr -_kw_pool: t.CExtern | memhub.MemManager | t.CPtr - -def _kw_intern(pool: memhub.MemManager | t.CPtr, name: str, kw_id: t.CInt) -> t.CInt: pass - -def _kw_lookup(name: str) -> t.CInt: pass - -def _init_keywords(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - - -class OpEntry: - name: str - op_id: t.CInt - length: t.CInt - next: OpEntry | t.CPtr - def __new__(self: OpEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_op_head: t.CExtern | OpEntry | t.CPtr - -def _op_intern(pool: memhub.MemManager | t.CPtr, name: str, op_id: t.CInt) -> t.CInt: pass - -def _init_operators(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _init_tables(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_token(pool: memhub.MemManager | t.CPtr, ttype: t.CInt, lineno: t.CInt, col_offset: t.CInt) -> Token | t.CPtr: pass - -def token_set_str(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, src: str, start: t.CSizeT, length: t.CSizeT) -> t.CInt: pass - -def token_set_str_literal(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, text: str) -> t.CInt: pass diff --git a/Test/AstTest/temp/b5a965302cded36b.pyi b/Test/AstTest/temp/b5a965302cded36b.pyi deleted file mode 100644 index bfdb955..0000000 --- a/Test/AstTest/temp/b5a965302cded36b.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -Auto-generated Python stub file from sys.py -Module: sys -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import string -import stdio -import w32.win32base -import w32.win32process -import posix - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def fgets(buf: t.CChar | t.CPtr, size: t.CInt, stream: t.CVoid | t.CPtr) -> t.CChar | t.CPtr | t.CExtern | t.CExport: pass - -def fflush(stream: t.CVoid | t.CPtr) -> t.CInt | t.CExtern | t.CExport: pass - -def exit(status: INT) -> VOID | t.CExtern | t.CExport: pass - - -maxsize: t.CDefine = 9223372036854775807 - -def platform() -> str: pass - -def get_pid() -> int: pass - - -_argc: t.CExtern | INT -_argv: t.CExtern | str | t.CPtr - -def _init_argv() -> t.CInt: pass - -def _init_argv_win32() -> t.CInt: pass - -def _init_argv_posix() -> t.CInt: pass - -def argc() -> int: pass - -def argv(index: int) -> str: pass diff --git a/Test/AstTest/temp/b5a965302cded36b.stub.ll.dep b/Test/AstTest/temp/b5a965302cded36b.stub.ll.dep deleted file mode 100644 index 5f3337c..0000000 --- a/Test/AstTest/temp/b5a965302cded36b.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -067c78e9f121dce3|271ea3decb810db2|6503c97dde0c79c4|6f62fe05c5ea1ceb|7e529fe7a078cfef|93c1d18e35d188d6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/ba12ed409d78139e.pyi b/Test/AstTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/AstTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/AstTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/AstTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/AstTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/AstTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/AstTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/AstTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/AstTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/AstTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/AstTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/AstTest/temp/c3b259b4059f8668.pyi b/Test/AstTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/AstTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/AstTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/AstTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/AstTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/c9f4be41ca1cc2b4.pyi b/Test/AstTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/AstTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/AstTest/temp/d089e25a15c6f6e0.pyi b/Test/AstTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/AstTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/AstTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/AstTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/AstTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/de3357cb9182715e.stub.ll.dep b/Test/AstTest/temp/de3357cb9182715e.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/AstTest/temp/de3357cb9182715e.vpi b/Test/AstTest/temp/de3357cb9182715e.vpi deleted file mode 100644 index 858bf0c..0000000 --- a/Test/AstTest/temp/de3357cb9182715e.vpi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from ast.__init__.vp -Module: ast.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp, _init_tables -from .base import AST, ASTKind, ASTCtx, OpKind, ASTFlag, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR, FLAG_IS_ASYNC, FLAG_SIMPLE, FLAG_HAS_STAR, _init_ast, _copy_str, _set_pos, _inherit_pos, _set_parent_list, _binop_from_op, _augop_from_op, _cmpop_from_op, _emit, _emit_str, _emit_int, _dump_list, dump, _op_name -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .astaux import ExceptHandler, Arguments, Arg, Keyword, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .visitor import ASTVisitor -from .lexer import Lexer, _lexer_init, tokenize, new_lexer -from .parser import Parser, _parser_init, parse_tokens, new_parser -from .parser import _parse_test - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass - -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/AstTest/temp/ee52c08239684346.pyi b/Test/AstTest/temp/ee52c08239684346.pyi deleted file mode 100644 index ee09339..0000000 --- a/Test/AstTest/temp/ee52c08239684346.pyi +++ /dev/null @@ -1,215 +0,0 @@ -""" -Auto-generated Python stub file from ast.parser.py -Module: ast.parser -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp -from .base import AST, ASTCtx, ASTKind, OpKind, ASTFlag, _set_pos, _binop_from_op, _augop_from_op, _cmpop_from_op, _copy_str, _inherit_pos, _init_ast, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, FLAG_IS_ASYNC -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .astaux import ExceptHandler, Arguments, Arg, Keyword as KwNode, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .lexer import Lexer, _lexer_init, tokenize, new_lexer - -class Parser: - tokens: Token | t.CPtr - cur: Token | t.CPtr - pool: memhub.MemManager | t.CPtr - error_count: t.CInt - pending_decorators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Parser, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_parser(pool: memhub.MemManager | t.CPtr) -> Parser | t.CPtr: pass - -def _parser_init(ps: Parser | t.CPtr, tokens: Token | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _advance(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_type(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_kw(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_str(ps: Parser | t.CPtr) -> str: pass - -def _cur_lineno(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_col(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nl(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nls_and_newlines(ps: Parser | t.CPtr) -> t.CInt: pass - -def _expect_type(ps: Parser | t.CPtr, ttype: t.CInt) -> t.CInt: pass - -def _expect_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _match_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _accept_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _new_const_int(pool: memhub.MemManager | t.CPtr, val: t.CInt64T, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_float(pool: memhub.MemManager | t.CPtr, val: t.CDouble, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_str(pool: memhub.MemManager | t.CPtr, val: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_bool(pool: memhub.MemManager | t.CPtr, val: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_none(pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _set_ctx(node: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - -def _fix_store_ctx(node: AST | t.CPtr) -> t.CInt: pass - -def _parse_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_namedexpr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_lambda(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_or_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_and_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_not_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_comparison(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _match_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _advance_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _parse_bitor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitxor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitand(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_shift(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_arith(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_term(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_factor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_power(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_call(ps: Parser | t.CPtr, func: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_subscript(ps: Parser | t.CPtr, value: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_slice(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_paren(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_brace(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sub_expr(ps: Parser | t.CPtr, src: str) -> AST | t.CPtr: pass - -def _parse_fstring(ps: Parser | t.CPtr, content: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comprehension(ps: Parser | t.CPtr, elt: AST | t.CPtr, vtype: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comp_for(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_target_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_target(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_yield(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_varargslist(ps: Parser | t.CPtr, is_lambda: t.CInt) -> AST | t.CPtr: pass - -def _parse_arg_def(ps: Parser | t.CPtr, is_lambda: t.CInt) -> AST | t.CPtr: pass - -def _parse_suite_into_children(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_statement_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_simple_stmt_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_small_stmt(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _maybe_tuple(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_testlist(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_expr_stmt(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_return(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_raise(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_global(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_nonlocal(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_from_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_alias_list(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_del(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_assert(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_compound(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if_tail(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_while(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_for(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_try(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_except_handler(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_with(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_with_item(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_classdef(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_match(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _make_name_ast(pool: memhub.MemManager | t.CPtr, node: Name | t.CPtr) -> AST | t.CPtr: pass - -def _parse_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_closed_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sequence_pattern(ps: Parser | t.CPtr, close_op: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_mapping_pattern(ps: Parser | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_class_pattern(ps: Parser | t.CPtr, cls: AST | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_match_case(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_decorators(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_module_body(ps: Parser | t.CPtr, module_node: AST | t.CPtr) -> t.CInt: pass - -def parse_tokens(pool: memhub.MemManager | t.CPtr, tokens: Token | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/AstTest/temp/ee52c08239684346.stub.ll.dep b/Test/AstTest/temp/ee52c08239684346.stub.ll.dep deleted file mode 100644 index e0deba7..0000000 --- a/Test/AstTest/temp/ee52c08239684346.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -0c212981c180e7fb|271ea3decb810db2|4337fb260448bbe2|47767b5026a8ee15|4dd6b3f1427d1cc5|5dab8cb390496d22|657e182b27c2a022|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/f5522571bcce7bcb.pyi b/Test/AstTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/AstTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/AstTest/temp/f5d13f1be34f417a.stub.ll.dep b/Test/AstTest/temp/f5d13f1be34f417a.stub.ll.dep deleted file mode 100644 index 2b2644e..0000000 --- a/Test/AstTest/temp/f5d13f1be34f417a.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/AstTest/temp/f5d13f1be34f417a.vpi b/Test/AstTest/temp/f5d13f1be34f417a.vpi deleted file mode 100644 index 44c435f..0000000 --- a/Test/AstTest/temp/f5d13f1be34f417a.vpi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from ast.lexer.vp -Module: ast.lexer -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal - -LEXER_MAX_INDENT: t.CDefine = 256 - -class Lexer: - src: str - pos: t.CSizeT - len: t.CSizeT - lineno: t.CInt - col: t.CInt - pool: memhub.MemManager | t.CPtr - indent_stack: t.CInt | t.CPtr - indent_top: t.CInt - paren_depth: t.CInt - tokens_head: Token | t.CPtr - tokens_tail: Token | t.CPtr - at_line_start: t.CInt - error_count: t.CInt - def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass - -def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass - -def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _is_alpha(ch: t.CChar) -> t.CInt: pass - -def _is_digit(ch: t.CChar) -> t.CInt: pass - -def _is_alnum(ch: t.CChar) -> t.CInt: pass - -def _is_hex(ch: t.CChar) -> t.CInt: pass - -def _is_space(ch: t.CChar) -> t.CInt: pass - -def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass - -def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass - -def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass - -def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass - -def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass diff --git a/Test/AstTest/temp/f6b51804a0ba8ff0.pyi b/Test/AstTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/AstTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/AstTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/AstTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/AstTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/AstTest/temp/f9d023d1df2bc9c5.vpi b/Test/AstTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/AstTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/AstTest/temp/fde6db0747bdd959.stub.ll.dep b/Test/AstTest/temp/fde6db0747bdd959.stub.ll.dep deleted file mode 100644 index ce247dd..0000000 --- a/Test/AstTest/temp/fde6db0747bdd959.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -22bc0df83b3f0e62|285b6aa29a34754d|4337fb260448bbe2|4dd6b3f1427d1cc5|657e182b27c2a022|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b543bc1dfb592119|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f5d13f1be34f417a|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/AstTest/temp/fde6db0747bdd959.vpi b/Test/AstTest/temp/fde6db0747bdd959.vpi deleted file mode 100644 index 91be63a..0000000 --- a/Test/AstTest/temp/fde6db0747bdd959.vpi +++ /dev/null @@ -1,215 +0,0 @@ -""" -Auto-generated Python stub file from ast.parser.vp -Module: ast.parser -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp -from .base import AST, ASTCtx, ASTKind, OpKind, ASTFlag, _set_pos, _binop_from_op, _augop_from_op, _cmpop_from_op, _copy_str, _inherit_pos, _init_ast, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR, FLAG_IS_ASYNC -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .astaux import ExceptHandler, Arguments, Arg, Keyword as KwNode, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .lexer import Lexer, _lexer_init, tokenize, new_lexer - -class Parser: - tokens: Token | t.CPtr - cur: Token | t.CPtr - pool: memhub.MemManager | t.CPtr - error_count: t.CInt - pending_decorators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Parser, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_parser(pool: memhub.MemManager | t.CPtr) -> Parser | t.CPtr: pass - -def _parser_init(ps: Parser | t.CPtr, tokens: Token | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _advance(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_type(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_kw(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_str(ps: Parser | t.CPtr) -> str: pass - -def _cur_lineno(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_col(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nl(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nls_and_newlines(ps: Parser | t.CPtr) -> t.CInt: pass - -def _expect_type(ps: Parser | t.CPtr, ttype: t.CInt) -> t.CInt: pass - -def _expect_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _match_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _accept_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _new_const_int(pool: memhub.MemManager | t.CPtr, val: t.CInt64T, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_float(pool: memhub.MemManager | t.CPtr, val: t.CDouble, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_str(pool: memhub.MemManager | t.CPtr, val: str, lineno: t.CInt, col: t.CInt, is_dquote: t.CInt = 1, is_triple: t.CInt = 0, is_char: t.CInt = 0) -> AST | t.CPtr: pass - -def _new_const_bool(pool: memhub.MemManager | t.CPtr, val: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_none(pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _set_ctx(node: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - -def _fix_store_ctx(node: AST | t.CPtr) -> t.CInt: pass - -def _parse_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_namedexpr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_lambda(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_or_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_and_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_not_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_comparison(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _match_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _advance_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _parse_bitor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitxor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitand(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_shift(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_arith(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_term(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_factor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_power(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_call(ps: Parser | t.CPtr, func: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_subscript(ps: Parser | t.CPtr, value: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_slice(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_paren(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_brace(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sub_expr(ps: Parser | t.CPtr, src: str) -> AST | t.CPtr: pass - -def _parse_fstring(ps: Parser | t.CPtr, content: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comprehension(ps: Parser | t.CPtr, elt: AST | t.CPtr, vtype: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comp_for(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_target_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_target(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_yield(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_varargslist(ps: Parser | t.CPtr, is_lambda: t.CInt = 0) -> AST | t.CPtr: pass - -def _parse_arg_def(ps: Parser | t.CPtr, is_lambda: t.CInt = 0) -> AST | t.CPtr: pass - -def _parse_suite_into_children(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_statement_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_simple_stmt_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_small_stmt(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _maybe_tuple(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_testlist(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_expr_stmt(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_return(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_raise(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_global(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_nonlocal(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_from_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_alias_list(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_del(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_assert(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_compound(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if_tail(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_while(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_for(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_try(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_except_handler(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_with(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_with_item(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_classdef(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_match(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _make_name_ast(pool: memhub.MemManager | t.CPtr, node: Name | t.CPtr) -> AST | t.CPtr: pass - -def _parse_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_closed_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sequence_pattern(ps: Parser | t.CPtr, close_op: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_mapping_pattern(ps: Parser | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_class_pattern(ps: Parser | t.CPtr, cls: AST | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_match_case(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_decorators(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_module_body(ps: Parser | t.CPtr, module_node: AST | t.CPtr) -> t.CInt: pass - -def parse_tokens(pool: memhub.MemManager | t.CPtr, tokens: Token | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/AstTest/temp/ffaf70367668b227.stub.ll.dep b/Test/AstTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/AstTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/AstTest/temp/ffaf70367668b227.vpi b/Test/AstTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/AstTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt b/Test/BuddyTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/BuddyTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt b/Test/BuddyTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/BuddyTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt b/Test/BuddyTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt deleted file mode 100644 index c76c2b1..0000000 --- a/Test/BuddyTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib ast.tokens \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt b/Test/BuddyTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt deleted file mode 100644 index 789f582..0000000 --- a/Test/BuddyTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdint \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt b/Test/BuddyTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuddyTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt b/Test/BuddyTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuddyTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt b/Test/BuddyTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuddyTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt b/Test/BuddyTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/BuddyTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/_sha1_map.txt b/Test/BuddyTest/.tpv_build/temp/_sha1_map.txt index 234195c..6e82738 100644 --- a/Test/BuddyTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/BuddyTest/.tpv_build/temp/_sha1_map.txt @@ -7,7 +7,7 @@ aa246c6e6aa30484:includes/atom.vp f5522571bcce7bcb:includes/stdint.vp 285b6aa29a34754d:includes/stdio.vp 6c658cc728d0bbf4:includes/stdlib.vp -4aa696f75b23f42f:includes/string.vp +928c0ff6d8c69ec9:includes/string.vp 748d0424e8976fa0:includes/testcheck.vp c9f4be41ca1cc2b4:includes/viperio.vp f6ab8989f3545e83:includes/viperlib.vp diff --git a/Test/BuddyTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt b/Test/BuddyTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt deleted file mode 100644 index 60b345d..0000000 --- a/Test/BuddyTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdio hashtable \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt b/Test/BuddyTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuddyTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt b/Test/BuddyTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt deleted file mode 100644 index da1157e..0000000 --- a/Test/BuddyTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt b/Test/BuddyTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/BuddyTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/ee/eec3759c4a74ce82.deps.txt b/Test/BuddyTest/.tpv_build/temp/ee/eec3759c4a74ce82.deps.txt deleted file mode 100644 index ed0aa58..0000000 --- a/Test/BuddyTest/.tpv_build/temp/ee/eec3759c4a74ce82.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.lexer ast.parser ast.parser \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt b/Test/BuddyTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt deleted file mode 100644 index 6ede9fe..0000000 --- a/Test/BuddyTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens \ No newline at end of file diff --git a/Test/BuddyTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt b/Test/BuddyTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt deleted file mode 100644 index 5dd68c7..0000000 --- a/Test/BuddyTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.exprs ast.stmts ast.astaux ast.lexer \ No newline at end of file diff --git a/Test/BuddyTest/output/067c78e9f121dce3.deps.json b/Test/BuddyTest/output/067c78e9f121dce3.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/067c78e9f121dce3.deps.json +++ b/Test/BuddyTest/output/067c78e9f121dce3.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json b/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json +++ b/Test/BuddyTest/output/06f53cc594b4ac6c.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json b/Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json deleted file mode 100644 index ad0410b..0000000 --- a/Test/BuddyTest/output/5a3d93d7860d5dc0.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "5e430ae5bf7af3a2", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json b/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json index 915fd78..e9985a8 100644 --- a/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json +++ b/Test/BuddyTest/output/5e430ae5bf7af3a2.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "mbuddytest": "5a3d93d7860d5dc0", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/BuddyTest/output/6446627d4f07a1b5.deps.json b/Test/BuddyTest/output/6446627d4f07a1b5.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/6446627d4f07a1b5.deps.json +++ b/Test/BuddyTest/output/6446627d4f07a1b5.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json b/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json +++ b/Test/BuddyTest/output/72e2d5ccb7cedcf1.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/_shared_sym_includes.pickle b/Test/BuddyTest/output/_shared_sym_includes.pickle index bcbb0718d939a82e5834835a0475528eaa0c3abb..df3000e2c9c1bd16475a5b74f1ad7eca53bc2228 100644 GIT binary patch literal 591426 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ℑ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 }6R%At08D0#RipSE8 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 diff --git a/Test/BuddyTest/output/d137b1f3311f3a7f.deps.json b/Test/BuddyTest/output/d137b1f3311f3a7f.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/d137b1f3311f3a7f.deps.json +++ b/Test/BuddyTest/output/d137b1f3311f3a7f.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/f6ab8989f3545e83.deps.json b/Test/BuddyTest/output/f6ab8989f3545e83.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/f6ab8989f3545e83.deps.json +++ b/Test/BuddyTest/output/f6ab8989f3545e83.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json b/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json index da311d8..48abe8e 100644 --- a/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json +++ b/Test/BuddyTest/output/f6b51804a0ba8ff0.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "mbuddytest": "5a3d93d7860d5dc0", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "stdio": "285b6aa29a34754d", "main": "5e430ae5bf7af3a2", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "mbuddytest": "d85446c302a9efc8", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/BuddyTest/temp/0035c95a18d4f8e8.pyi b/Test/BuddyTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/BuddyTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/BuddyTest/temp/067c78e9f121dce3.pyi b/Test/BuddyTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/BuddyTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/BuddyTest/temp/067c78e9f121dce3.stub.ll.dep b/Test/BuddyTest/temp/067c78e9f121dce3.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/BuddyTest/temp/067c78e9f121dce3.stub.ll.dep +++ b/Test/BuddyTest/temp/067c78e9f121dce3.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/BuddyTest/temp/06f53cc594b4ac6c.pyi b/Test/BuddyTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/BuddyTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/BuddyTest/temp/06f53cc594b4ac6c.stub.ll.dep b/Test/BuddyTest/temp/06f53cc594b4ac6c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/BuddyTest/temp/06f53cc594b4ac6c.stub.ll.dep +++ b/Test/BuddyTest/temp/06f53cc594b4ac6c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/BuddyTest/temp/14d33679f7fadf1f.pyi b/Test/BuddyTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/BuddyTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/BuddyTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/BuddyTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/BuddyTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/271ea3decb810db2.pyi b/Test/BuddyTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/BuddyTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/BuddyTest/temp/271ea3decb810db2.stub.ll.dep b/Test/BuddyTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json b/Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json deleted file mode 100644 index 9e26dfe..0000000 --- a/Test/BuddyTest/temp/5a3d93d7860d5dc0.doc.json +++ /dev/null @@ -1 +0,0 @@ -{} \ No newline at end of file diff --git a/Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi b/Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi deleted file mode 100644 index 3de0cb1..0000000 --- a/Test/BuddyTest/temp/5a3d93d7860d5dc0.pyi +++ /dev/null @@ -1,21 +0,0 @@ -""" -Auto-generated Python stub file from mbuddytest.py -Module: mbuddytest -""" - - -import t, c -from t import CInt, CPtr, CChar, CUInt8T, CUInt32T, CUInt64T, CSizeT -import viperlib -import viperio -import stdlib -import memhub -import string -import testcheck -import w32.win32process -import w32.win32sync -import w32.win32base - -def _thread_alloc_free(param: t.CVoid | t.CPtr) -> t.CUInt32T: pass - -def mbuddy_main() -> CInt: pass diff --git a/Test/BuddyTest/temp/5a3d93d7860d5dc0.vpi b/Test/BuddyTest/temp/5a3d93d7860d5dc0.vpi deleted file mode 100644 index 862c59a..0000000 --- a/Test/BuddyTest/temp/5a3d93d7860d5dc0.vpi +++ /dev/null @@ -1,21 +0,0 @@ -""" -Auto-generated Python stub file from mbuddytest.vp -Module: mbuddytest -""" - - -import t, c -from t import CInt, CPtr, CChar, CUInt8T, CUInt32T, CUInt64T, CSizeT -import viperlib -import viperio -import stdlib -import memhub -import string -import testcheck -import w32.win32process -import w32.win32sync -import w32.win32base - -def _thread_alloc_free(param: t.CVoid | t.CPtr) -> t.CUInt32T: pass - -def mbuddy_main() -> CInt: pass diff --git a/Test/BuddyTest/temp/5e430ae5bf7af3a2.pyi b/Test/BuddyTest/temp/5e430ae5bf7af3a2.pyi deleted file mode 100644 index bbe03a4..0000000 --- a/Test/BuddyTest/temp/5e430ae5bf7af3a2.pyi +++ /dev/null @@ -1,13 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import mbuddytest - -def main() -> CInt | CExport: pass diff --git a/Test/BuddyTest/temp/6446627d4f07a1b5.pyi b/Test/BuddyTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/BuddyTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/BuddyTest/temp/6f62fe05c5ea1ceb.pyi b/Test/BuddyTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/BuddyTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/BuddyTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/BuddyTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/BuddyTest/temp/71e0a3ffcb3ebfad.pyi b/Test/BuddyTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/BuddyTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/BuddyTest/temp/72e2d5ccb7cedcf1.pyi b/Test/BuddyTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/BuddyTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/BuddyTest/temp/7e529fe7a078cfef.pyi b/Test/BuddyTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/BuddyTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/BuddyTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/BuddyTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/BuddyTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/90c53dd6db8d41cf.pyi b/Test/BuddyTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/BuddyTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/BuddyTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/BuddyTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/BuddyTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/_phase1_manifest.json b/Test/BuddyTest/temp/_phase1_manifest.json index 44d22f1..d40e890 100644 --- a/Test/BuddyTest/temp/_phase1_manifest.json +++ b/Test/BuddyTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\main.py": {"sha1": "5e430ae5bf7af3a2", "mtime": 1782224154.785576, "size": 260}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\mbuddytest.py": {"sha1": "5a3d93d7860d5dc0", "mtime": 1784652963.6614158, "size": 19514}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\main.vp": {"sha1": "5e430ae5bf7af3a2", "mtime": 1782224154.785576, "size": 260}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuddyTest\\App\\mbuddytest.vp": {"sha1": "d85446c302a9efc8", "mtime": 1786016848.099205, "size": 19515}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.vp": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.vp": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/Test/BuddyTest/temp/_sha1_map.txt b/Test/BuddyTest/temp/_sha1_map.txt index 29c691b..4cc4cd5 100644 --- a/Test/BuddyTest/temp/_sha1_map.txt +++ b/Test/BuddyTest/temp/_sha1_map.txt @@ -1,16 +1,16 @@ -067c78e9f121dce3:includes/w32\win32process.py -06f53cc594b4ac6c:includes/w32\win32sync.py -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -5a3d93d7860d5dc0:mbuddytest.py -5e430ae5bf7af3a2:main.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +067c78e9f121dce3:includes/w32\win32process.vp +06f53cc594b4ac6c:includes/w32\win32sync.vp +285b6aa29a34754d:includes/stdio.vp +5e430ae5bf7af3a2:main.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +d85446c302a9efc8:mbuddytest.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/BuddyTest/temp/_shared_sym.json b/Test/BuddyTest/temp/_shared_sym.json index 69d960830703f01cff65dc15fc5866b8ba42db49..9d68a67bdbffe95b9d61b677f5ab1fe0d80dd593 100644 GIT binary patch literal 425070 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 literal 423234 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

tk{1WZPl{gE=dBb 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 str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/BuddyTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/BuddyTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/BuddyTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/BuddyTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/BuddyTest/temp/c3b259b4059f8668.pyi b/Test/BuddyTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/BuddyTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/BuddyTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/BuddyTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/BuddyTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/c9f4be41ca1cc2b4.pyi b/Test/BuddyTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/BuddyTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/BuddyTest/temp/d089e25a15c6f6e0.pyi b/Test/BuddyTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/BuddyTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/BuddyTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/BuddyTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/BuddyTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/f5522571bcce7bcb.pyi b/Test/BuddyTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/BuddyTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/BuddyTest/temp/f6b51804a0ba8ff0.pyi b/Test/BuddyTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/BuddyTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/BuddyTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/BuddyTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/BuddyTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/BuddyTest/temp/f9d023d1df2bc9c5.vpi b/Test/BuddyTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/BuddyTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/BuddyTest/temp/ffaf70367668b227.stub.ll.dep b/Test/BuddyTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/BuddyTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuddyTest/temp/ffaf70367668b227.vpi b/Test/BuddyTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/BuddyTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt deleted file mode 100644 index c76c2b1..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib ast.tokens \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt deleted file mode 100644 index 789f582..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdint \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt deleted file mode 100644 index c19302e..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdio t c \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/_sha1_map.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/_sha1_map.txt index 54397e7..264cddd 100644 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/BuiltinDecoratorTest/.tpv_build/temp/_sha1_map.txt @@ -2,11 +2,11 @@ aa246c6e6aa30484:includes/atom.vp 6ddf430432a0e373:includes/json/__init__.vp 240a9a4157959a9f:includes/json/__parser.vp 20cd49775c100a38:includes/json/__writer.vp -f9d023d1df2bc9c5:includes/memhub.vp +04e5fe47ff2af528:includes/memhub.vp f5522571bcce7bcb:includes/stdint.vp 285b6aa29a34754d:includes/stdio.vp 6c658cc728d0bbf4:includes/stdlib.vp -ffaf70367668b227:includes/string.vp +928c0ff6d8c69ec9:includes/string.vp 748d0424e8976fa0:includes/testcheck.vp c9f4be41ca1cc2b4:includes/viperio.vp fc980acec33d69a7:includes/w32/win32base.vp diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt deleted file mode 100644 index 60b345d..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdio hashtable \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt deleted file mode 100644 index da1157e..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt deleted file mode 100644 index 3d26bad..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.visitor ast.lexer ast.parser ast.parser \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt deleted file mode 100644 index 6ede9fe..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt deleted file mode 100644 index 6803c16..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string atom viperio stdio stdlib \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi b/Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi deleted file mode 100644 index fb3ad3b..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,97 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - -@t.CVTable -class MemManager: - __provides__: list[str] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def calloc(self, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self) -> 'MemManager' | t.CPtr: pass - def __exit__(self): pass - def alloc_buf(self, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass - -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemBuddy(MemManager): - __provides__: list[str] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def mark(self) -> t.CSizeT: pass - def reset_to(self, mark: t.CSizeT): pass - def reset_all(self): pass - def _fl_push(self, order: t.CInt, block: t.CVoid | t.CPtr): pass - def _fl_pop(self, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self, block: t.CVoid | t.CPtr, order: t.CInt): pass - def _is_valid_ptr(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self): pass - def _unlock(self): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self) -> t.CSizeT: pass - def stats(self) -> t.CSizeT: pass - def free_count(self) -> t.CSizeT: pass - def free_bytes(self) -> t.CSizeT: pass - def used_bytes(self) -> t.CSizeT: pass - def dump_stats(self, label: t.CChar | t.CPtr): pass - def self_check(self) -> t.CInt: pass - diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt deleted file mode 100644 index 5dd68c7..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.exprs ast.stmts ast.astaux ast.lexer \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt b/Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt deleted file mode 100644 index 0ec8cde..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t c \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.vpi b/Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.vpi deleted file mode 100644 index 2e97004..0000000 --- a/Test/BuiltinDecoratorTest/.tpv_build/temp/ff/ffaf70367668b227.vpi +++ /dev/null @@ -1,54 +0,0 @@ -"""Auto-generated Python stub file""" - - -from stdint import * -import t, c -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - -ascii_lowercase: str -ascii_uppercase: str -ascii_letters: str -digits: str -hexdigits: str -octdigits: str -punctuation: str -whitespace: str -printable: str diff --git a/Test/BuiltinDecoratorTest/output/e3ac223bdaf94a0c.deps.json b/Test/BuiltinDecoratorTest/output/e3ac223bdaf94a0c.deps.json index 6162c1a..677d520 100644 --- a/Test/BuiltinDecoratorTest/output/e3ac223bdaf94a0c.deps.json +++ b/Test/BuiltinDecoratorTest/output/e3ac223bdaf94a0c.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.pyi b/Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/BuiltinDecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.pyi b/Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/BuiltinDecoratorTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.pyi b/Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/BuiltinDecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.pyi b/Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/BuiltinDecoratorTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json b/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json index 42ffc8e..2ebb8cf 100644 --- a/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json +++ b/Test/BuiltinDecoratorTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuiltinDecoratorTest\\App\\main.py": {"sha1": "e3ac223bdaf94a0c", "mtime": 1782110312.4550886, "size": 8488}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\BuiltinDecoratorTest\\App\\main.vp": {"sha1": "e3ac223bdaf94a0c", "mtime": 1782110312.4550886, "size": 8488}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/_sha1_map.txt b/Test/BuiltinDecoratorTest/temp/_sha1_map.txt index baa82d5..6ca5ee4 100644 --- a/Test/BuiltinDecoratorTest/temp/_sha1_map.txt +++ b/Test/BuiltinDecoratorTest/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -e3ac223bdaf94a0c:main.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +e3ac223bdaf94a0c:main.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/BuiltinDecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/BuiltinDecoratorTest/temp/e3ac223bdaf94a0c.pyi b/Test/BuiltinDecoratorTest/temp/e3ac223bdaf94a0c.pyi deleted file mode 100644 index 10d5c52..0000000 --- a/Test/BuiltinDecoratorTest/temp/e3ac223bdaf94a0c.pyi +++ /dev/null @@ -1,110 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -from stdint import * -from stdio import printf -from stdlib import malloc -import testcheck - -class Rect: - width: t.CInt - height: t.CInt - def __new__(self: Rect, w: t.CInt, h: t.CInt) -> 'Rect' | t.CPtr: pass - def __init__(self: Rect, w: t.CInt, h: t.CInt) -> t.CInt: pass - @property - def area(self: Rect) -> t.CInt: pass - @property - def is_square(self: Rect) -> bool: pass - -def test_property_getter() -> t.CInt: pass - - -class Temperature: - _celsius: t.CDouble - def __new__(self: Temperature, celsius_val: t.CDouble) -> 'Temperature' | t.CPtr: pass - def __init__(self: Temperature, celsius_val: t.CDouble) -> t.CInt: pass - @property - def celsius(self: Temperature) -> t.CDouble: pass - @celsius.setter - def celsius(self: Temperature, val: t.CDouble) -> t.CInt: pass - @property - def fahrenheit(self: Temperature) -> t.CDouble: pass - -def test_property_setter() -> t.CInt: pass - - -class Counter: - _count: t.CInt - def __new__(self: Counter) -> 'Counter' | t.CPtr: pass - def __init__(self: Counter) -> t.CInt: pass - @property - def value(self: Counter) -> t.CInt: pass - @value.setter - def value(self: Counter, v: t.CInt) -> t.CInt: pass - -def test_property_getter_redef() -> t.CInt: pass - - -class Config: - _value: t.CInt - _deleted: t.CInt - def __new__(self: Config, v: t.CInt) -> 'Config' | t.CPtr: pass - def __init__(self: Config, v: t.CInt) -> t.CInt: pass - @property - def value(self: Config) -> t.CInt: pass - @value.setter - def value(self: Config, v: t.CInt) -> t.CInt: pass - @value.deleter - def value(self: Config) -> t.CInt: pass - def is_deleted(self: Config) -> bool: pass - -def test_property_deleter() -> t.CInt: pass - - -class MathUtils: - @staticmethod - def add(a: t.CInt, b: t.CInt) -> t.CInt: pass - @staticmethod - def max_val(a: t.CInt, b: t.CInt) -> t.CInt: pass - -def test_staticmethod() -> t.CInt: pass - - -class Point: - x: t.CDouble - y: t.CDouble - def __new__(self: Point, x: t.CDouble, y: t.CDouble) -> 'Point' | t.CPtr: pass - def __init__(self: Point, x: t.CDouble, y: t.CDouble) -> t.CInt: pass - @classmethod - def origin(cls: Point) -> Point: pass - @classmethod - def from_int(cls: Point, x: t.CInt, y: t.CInt) -> Point: pass - def dist_sq(self: Point) -> t.CDouble: pass - -def test_classmethod() -> t.CInt: pass - - -class Circle: - _radius: t.CDouble - def __new__(self: Circle, r: t.CDouble) -> 'Circle' | t.CPtr: pass - def __init__(self: Circle, r: t.CDouble) -> t.CInt: pass - @property - def radius(self: Circle) -> t.CDouble: pass - @radius.setter - def radius(self: Circle, val: t.CDouble) -> t.CInt: pass - @property - def area(self: Circle) -> t.CDouble: pass - @staticmethod - def is_unit(r: t.CDouble) -> bool: pass - @classmethod - def unit(cls: Circle) -> Circle: pass - -def test_combined() -> t.CInt: pass - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/BuiltinDecoratorTest/temp/f5522571bcce7bcb.pyi b/Test/BuiltinDecoratorTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/BuiltinDecoratorTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/CPythonTest/output/7c5d5ec59c5fb0a8.deps.json b/Test/CPythonTest/output/7c5d5ec59c5fb0a8.deps.json index ac61f3a..d5f9a18 100644 --- a/Test/CPythonTest/output/7c5d5ec59c5fb0a8.deps.json +++ b/Test/CPythonTest/output/7c5d5ec59c5fb0a8.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "main": "fb6cea4f70fade7a"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "main": "fb6cea4f70fade7a", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/CPythonTest/output/fb6cea4f70fade7a.deps.json b/Test/CPythonTest/output/fb6cea4f70fade7a.deps.json index 77cce3b..55a1e57 100644 --- a/Test/CPythonTest/output/fb6cea4f70fade7a.deps.json +++ b/Test/CPythonTest/output/fb6cea4f70fade7a.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "cpython": "7c5d5ec59c5fb0a8", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "cpython": "7c5d5ec59c5fb0a8", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/CPythonTest/temp/14d33679f7fadf1f.pyi b/Test/CPythonTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/CPythonTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/CPythonTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/CPythonTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/CPythonTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/CPythonTest/temp/6f62fe05c5ea1ceb.pyi b/Test/CPythonTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/CPythonTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/CPythonTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/CPythonTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/CPythonTest/temp/7c5d5ec59c5fb0a8.pyi b/Test/CPythonTest/temp/7c5d5ec59c5fb0a8.pyi deleted file mode 100644 index 3c94870..0000000 --- a/Test/CPythonTest/temp/7c5d5ec59c5fb0a8.pyi +++ /dev/null @@ -1,765 +0,0 @@ -""" -Auto-generated Python stub file from cpython.py -Module: cpython -""" - - -import t, c - -class PyObject: - ob_refcnt: t.CLong - ob_type: t.CPtr - -def Py_INCREF(op: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def Py_DECREF(op: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def Py_XINCREF(op: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def Py_XDECREF(op: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def Py_DecRef(op: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def Py_Initialize() -> t.CVoid | t.State: pass - -def Py_Finalize() -> t.CVoid | t.State: pass - -def Py_InitializeEx(initsigs: t.CInt) -> t.CVoid | t.State: pass - -def Py_FinalizeEx() -> t.CInt | t.State: pass - -def Py_IsInitialized() -> t.CInt | t.State: pass - - -class PySTATUS: - func: t.CConst | str - err_msg: t.CConst | str - exitcode: t.CInt -class PyPreConfig: - _config_version: t.CInt - _config_init: t.CInt - parse_argv: t.CInt - isolated: t.CInt - use_environment: t.CInt - utf8_mode: t.CInt - coerce_c_locale: t.CInt - C_locale_warnings: t.CInt - allocator: t.CInt - dev_mode: t.CInt -class PyWideStringList: - length: t.CSizeT - items: t.CPtr -class PyConfig: - _config_version: t.CInt - _config_init: t.CInt - isolated: t.CInt - use_environment: t.CInt - dev_mode: t.CInt - install_signal_handlers: t.CInt - use_hash_seed: t.CInt - hash_seed: t.CUnsignedLong - faulthandler: t.CInt - tracemalloc: t.CInt - import_time: t.CInt - show_ref_count: t.CInt - dump_refs: t.CInt - dump_refs_file: t.CConst | str - malloc_stats: t.CInt - filesystem_errors: t.CInt - pycache_prefix: t.CConst | str - parse_argv: t.CInt - argv: PyWideStringList - program_name: t.CConst | str - xoptions: PyWideStringList - warnoptions: PyWideStringList - site_import: t.CInt - bytes_warning: t.CInt - warn_default_encoding: t.CInt - inspect: t.CInt - interactive: t.CInt - optimization_level: t.CInt - parser_debug: t.CInt - verbose: t.CInt - quiet: t.CInt - home: t.CConst | str - pythonpath_env: t.CConst | str - module_search_paths: PyWideStringList - module_search_paths_set: t.CInt - executable: t.CConst | str - base_executable: t.CConst | str - prefix: t.CConst | str - base_prefix: t.CConst | str - exec_prefix: t.CConst | str - base_exec_prefix: t.CConst | str - platlibdir: t.CConst | str - stdio_filename: t.CConst | str - -def PyConfig_InitPythonConfig(config: PyConfig | t.CPtr) -> t.CVoid | t.State: pass - -def PyConfig_InitIsolatedConfig(config: PyConfig | t.CPtr) -> t.CVoid | t.State: pass - -def PyConfig_Clear(config: PyConfig | t.CPtr) -> t.CVoid | t.State: pass - -def PyConfig_Read(config: PyConfig | t.CPtr) -> PySTATUS | t.State: pass - -def Py_InitializeFromConfig(config: PyConfig | t.CPtr) -> PySTATUS | t.State: pass - -def Py_DecodeLocale(s: t.CConst | str) -> str | t.State: pass - -def PyStatus_Exception(status: PySTATUS) -> t.CInt | t.State: pass - -def PyLong_FromLong(v: t.CLong) -> PyObject | t.CPtr | t.State: pass - -def PyLong_FromUnsignedLong(v: t.CUnsignedLong) -> PyObject | t.CPtr | t.State: pass - -def PyLong_FromLongLong(v: t.CLong) -> PyObject | t.CPtr | t.State: pass - -def PyLong_FromUnsignedLongLong(v: t.CUnsignedLong) -> PyObject | t.CPtr | t.State: pass - -def PyLong_FromSsize_t(v: t.CPtrDiffT) -> PyObject | t.CPtr | t.State: pass - -def PyLong_FromSize_t(v: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyLong_FromDouble(v: t.CDouble) -> PyObject | t.CPtr | t.State: pass - -def PyLong_AsLong(obj: PyObject | t.CPtr) -> t.CLong | t.State: pass - -def PyLong_AsUnsignedLong(obj: PyObject | t.CPtr) -> t.CUnsignedLong | t.State: pass - -def PyLong_AsLongLong(obj: PyObject | t.CPtr) -> t.CLong | t.State: pass - -def PyLong_AsUnsignedLongLong(obj: PyObject | t.CPtr) -> t.CUnsignedLong | t.State: pass - -def PyLong_AsDouble(obj: PyObject | t.CPtr) -> t.CDouble | t.State: pass - -def PyLong_AsSsize_t(obj: PyObject | t.CPtr) -> t.CPtrDiffT | t.State: pass - -def PyLong_AsSize_t(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyFloat_FromDouble(v: t.CDouble) -> PyObject | t.CPtr | t.State: pass - -def PyFloat_AsDouble(obj: PyObject | t.CPtr) -> t.CDouble | t.State: pass - -def PyFloat_FromString(s: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyUnicode_FromString(u: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyUnicode_FromStringAndSize(u: t.CConst | str, size: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyUnicode_FromFormat(fmt: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyUnicode_AsUTF8(obj: PyObject | t.CPtr) -> str | t.State: pass - -def PyUnicode_AsUTF8AndSize(obj: PyObject | t.CPtr, size: t.CPtrDiffT | t.CPtr) -> str | t.State: pass - -def PyUnicode_AsWideChar(obj: PyObject | t.CPtr, wbuf: t.CPtr, bufsize: t.CSizeT) -> t.CSizeT | t.State: pass - -def PyUnicode_GetLength(obj: PyObject | t.CPtr) -> t.CPtrDiffT | t.State: pass - -def PyUnicode_ReadChar(obj: PyObject | t.CPtr, idx: t.CSizeT) -> t.CUInt32T | t.State: pass - -def PyUnicode_WriteChar(obj: PyObject | t.CPtr, idx: t.CSizeT, ch: t.CUInt32T) -> t.CInt | t.State: pass - -def PyUnicode_Compare(l: PyObject | t.CPtr, r: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyUnicode_Concat(l: PyObject | t.CPtr, r: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyUnicode_Contains(container: PyObject | t.CPtr, element: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyUnicode_Format(fmt: PyObject | t.CPtr, args: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyUnicode_InternInPlace(s: PyObject | t.CPtr | t.CPtr) -> t.CVoid | t.State: pass - -def PyUnicode_InternFromString(u: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyBytes_FromString(v: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyBytes_FromStringAndSize(v: t.CConst | str, size: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyBytes_AsString(obj: PyObject | t.CPtr) -> str | t.State: pass - -def PyBytes_Size(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyBytes_FromObject(o: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyBytes_FromFormat(fmt: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyBool_FromLong(v: t.CLong) -> PyObject | t.CPtr | t.State: pass - - -Py_True: t.CExtern | PyObject | t.CPtr | t.State -Py_False: t.CExtern | PyObject | t.CPtr | t.State -Py_None: t.CExtern | PyObject | t.CPtr | t.State - -def PyList_New(len: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyList_Size(lst: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyList_GetItem(lst: PyObject | t.CPtr, idx: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyList_SetItem(lst: PyObject | t.CPtr, idx: t.CSizeT, item: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_Insert(lst: PyObject | t.CPtr, idx: t.CSizeT, item: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_Append(lst: PyObject | t.CPtr, item: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_GetSlice(lst: PyObject | t.CPtr, lo: t.CSizeT, hi: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyList_SetSlice(lst: PyObject | t.CPtr, lo: t.CSizeT, hi: t.CSizeT, items: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_Sort(lst: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_Reverse(lst: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_AsTuple(lst: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyTuple_New(len: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyTuple_Size(tup: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyTuple_GetItem(tup: PyObject | t.CPtr, idx: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyTuple_SetItem(tup: PyObject | t.CPtr, idx: t.CSizeT, item: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyTuple_GetSlice(tup: PyObject | t.CPtr, lo: t.CSizeT, hi: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyTuple_Pack(n: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyDict_New() -> PyObject | t.CPtr | t.State: pass - -def PyDict_GetItem(d: PyObject | t.CPtr, key: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyDict_GetItemString(d: PyObject | t.CPtr, key: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyDict_SetItem(d: PyObject | t.CPtr, key: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyDict_SetItemString(d: PyObject | t.CPtr, key: t.CConst | str, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyDict_DelItem(d: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyDict_DelItemString(d: PyObject | t.CPtr, key: t.CConst | str) -> t.CInt | t.State: pass - -def PyDict_Size(d: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyDict_Keys(d: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyDict_Values(d: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyDict_Items(d: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyDict_Copy(d: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyDict_Clear(d: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def PyDict_Contains(d: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyDict_Next(d: PyObject | t.CPtr, pos: t.CPtrDiffT | t.CPtr, key: PyObject | t.CPtr | t.CPtr, val: PyObject | t.CPtr | t.CPtr) -> t.CInt | t.State: pass - -def PyDict_Merge(d: PyObject | t.CPtr, other: PyObject | t.CPtr, override: t.CInt) -> t.CInt | t.State: pass - -def PyDict_Update(d: PyObject | t.CPtr, other: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_Str(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_Repr(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_Type(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_IsInstance(obj: PyObject | t.CPtr, cls: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_IsSubclass(obj: PyObject | t.CPtr, cls: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_HasAttr(obj: PyObject | t.CPtr, name: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_HasAttrString(obj: PyObject | t.CPtr, name: t.CConst | str) -> t.CInt | t.State: pass - -def PyObject_GetAttr(obj: PyObject | t.CPtr, name: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_GetAttrString(obj: PyObject | t.CPtr, name: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyObject_SetAttr(obj: PyObject | t.CPtr, name: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_SetAttrString(obj: PyObject | t.CPtr, name: t.CConst | str, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_DelAttr(obj: PyObject | t.CPtr, name: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_DelAttrString(obj: PyObject | t.CPtr, name: t.CConst | str) -> t.CInt | t.State: pass - -def PyObject_Call(callable: PyObject | t.CPtr, args: PyObject | t.CPtr, kwargs: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_CallObject(callable: PyObject | t.CPtr, args: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_CallNoArgs(callable: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_CallOneArg(callable: PyObject | t.CPtr, arg: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_IsTrue(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_Not(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_RichCompare(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr, opid: t.CInt) -> PyObject | t.CPtr | t.State: pass - -def PyObject_RichCompareBool(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr, opid: t.CInt) -> t.CInt | t.State: pass - -def PyObject_Hash(obj: PyObject | t.CPtr) -> t.CLong | t.State: pass - -def PyObject_Length(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyObject_GetItem(obj: PyObject | t.CPtr, key: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_SetItem(obj: PyObject | t.CPtr, key: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_DelItem(obj: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyObject_Dir(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_GetIter(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyIter_Next(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - - -Py_LT: t.CExtern | t.CInt | t.State -Py_LE: t.CExtern | t.CInt | t.State -Py_EQ: t.CExtern | t.CInt | t.State -Py_NE: t.CExtern | t.CInt | t.State -Py_GT: t.CExtern | t.CInt | t.State -Py_GE: t.CExtern | t.CInt | t.State - -def PyImport_ImportModule(name: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyImport_Import(name: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyImport_ImportModuleLevelObject(name: PyObject | t.CPtr, globs: PyObject | t.CPtr, locs: PyObject | t.CPtr, fromlist: PyObject | t.CPtr, level: t.CInt) -> PyObject | t.CPtr | t.State: pass - -def PyImport_ReloadModule(mod: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyImport_AddModule(name: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyImport_GetModuleDict() -> PyObject | t.CPtr | t.State: pass - -def PyImport_ImportModuleEx(name: t.CConst | str, globs: PyObject | t.CPtr, locs: PyObject | t.CPtr, fromlist: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - - -class PyMethodDef: - ml_name: t.CConst | str - ml_meth: t.CPtr - ml_flags: t.CInt - ml_doc: t.CConst | str -class PyModuleDef_Base: - ob_base: PyObject - m_init: t.CPtr - m_index: t.CSizeT - m_copy: PyObject | t.CPtr -class PyModuleDef: - m_base: PyModuleDef_Base - m_name: t.CConst | str - m_doc: t.CConst | str - m_size: t.CPtrDiffT - m_methods: PyMethodDef | t.CPtr - m_slots: t.CPtr - m_traverse: t.CPtr - m_clear: t.CPtr - m_free: t.CPtr - -def PyModule_Create(mod: PyModuleDef | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyModule_Create2(mod: PyModuleDef | t.CPtr, ver: t.CInt) -> PyObject | t.CPtr | t.State: pass - -def PyModule_GetName(mod: PyObject | t.CPtr) -> str | t.State: pass - -def PyModule_GetDict(mod: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyModule_GetFilenameObject(mod: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyModule_AddObject(mod: PyObject | t.CPtr, name: t.CConst | str, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyModule_AddObjectRef(mod: PyObject | t.CPtr, name: t.CConst | str, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyModule_AddIntConstant(mod: PyObject | t.CPtr, name: t.CConst | str, val: t.CLong) -> t.CInt | t.State: pass - -def PyModule_AddStringConstant(mod: PyObject | t.CPtr, name: t.CConst | str, val: t.CConst | str) -> t.CInt | t.State: pass - -def PyGILState_Ensure() -> t.CInt | t.State: pass - -def PyGILState_Release(state: t.CInt) -> t.CVoid | t.State: pass - -def PyEval_SaveThread() -> t.CPtr | t.State: pass - -def PyEval_RestoreThread(tstate: t.CPtr) -> t.CVoid | t.State: pass - -def PyEval_AcquireThread(tstate: t.CPtr) -> t.CVoid | t.State: pass - -def PyEval_ReleaseThread(tstate: t.CPtr) -> t.CVoid | t.State: pass - -def PyEval_AcquireLock() -> t.CVoid | t.State: pass - -def PyEval_ReleaseLock() -> t.CVoid | t.State: pass - -def PyEval_ThreadsInitialized() -> t.CInt | t.State: pass - -def PyEval_InitThreads() -> t.CVoid | t.State: pass - -def PyErr_Occurred() -> PyObject | t.CPtr | t.State: pass - -def PyErr_Clear() -> t.CVoid | t.State: pass - -def PyErr_Fetch(tp: PyObject | t.CPtr | t.CPtr, val: PyObject | t.CPtr | t.CPtr, tb: PyObject | t.CPtr | t.CPtr) -> t.CVoid | t.State: pass - -def PyErr_Restore(tp: PyObject | t.CPtr, val: PyObject | t.CPtr, tb: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def PyErr_NormalizeException(tp: PyObject | t.CPtr | t.CPtr, val: PyObject | t.CPtr | t.CPtr, tb: PyObject | t.CPtr | t.CPtr) -> t.CVoid | t.State: pass - -def PyErr_SetString(tp: PyObject | t.CPtr, msg: t.CConst | str) -> t.CVoid | t.State: pass - -def PyErr_SetObject(tp: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def PyErr_BadArgument() -> t.CPtr | t.State: pass - -def PyErr_NoMemory() -> t.CPtr | t.State: pass - -def PyErr_Print() -> t.CVoid | t.State: pass - -def PyErr_ExceptionMatches(exc: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyErr_GivenExceptionMatches(given: PyObject | t.CPtr, exc: PyObject | t.CPtr) -> t.CInt | t.State: pass - - -PyExc_BaseException: t.CExtern | PyObject | t.CPtr | t.State -PyExc_Exception: t.CExtern | PyObject | t.CPtr | t.State -PyExc_TypeError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_ValueError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_RuntimeError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_KeyError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_IndexError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_AttributeError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_ImportError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_OSError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_IOError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_ZeroDivisionError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_OverflowError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_MemoryError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_NameError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_StopIteration: t.CExtern | PyObject | t.CPtr | t.State -PyExc_NotImplementedError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_SyntaxError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_FileNotFoundError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_PermissionError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_IsADirectoryError: t.CExtern | PyObject | t.CPtr | t.State -PyExc_NotADirectoryError: t.CExtern | PyObject | t.CPtr | t.State - -def Py_BuildValue(fmt: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def Py_VaBuildValue(fmt: t.CConst | str, va: t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyLong_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyFloat_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyUnicode_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyBytes_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyList_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyTuple_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyDict_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyBool_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyNone_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyMem_Malloc(size: t.CSizeT) -> t.CPtr | t.State: pass - -def PyMem_Realloc(ptr: t.CPtr, size: t.CSizeT) -> t.CPtr | t.State: pass - -def PyMem_Free(ptr: t.CPtr) -> t.CVoid | t.State: pass - -def PyMem_Calloc(nelem: t.CSizeT, elsize: t.CSizeT) -> t.CPtr | t.State: pass - -def PyObject_Malloc(size: t.CSizeT) -> t.CPtr | t.State: pass - -def PyObject_Realloc(ptr: t.CPtr, size: t.CSizeT) -> t.CPtr | t.State: pass - -def PyObject_Free(ptr: t.CPtr) -> t.CVoid | t.State: pass - -def PyObject_Calloc(nelem: t.CSizeT, elsize: t.CSizeT) -> t.CPtr | t.State: pass - -def PyObject_Init(obj: PyObject | t.CPtr, tp: t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyObject_InitVar(obj: PyObject | t.CPtr, tp: t.CPtr, size: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PyFile_FromString(filename: t.CConst | str, mode: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyFile_AsFile(file: PyObject | t.CPtr) -> t.CPtr | t.State: pass - -def PyFile_WriteObject(obj: PyObject | t.CPtr, file: PyObject | t.CPtr, flags: t.CInt) -> t.CInt | t.State: pass - -def PyFile_WriteString(s: t.CConst | str, file: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def Py_CompileString(s: t.CConst | str, filename: t.CConst | str, start: t.CInt) -> PyObject | t.CPtr | t.State: pass - -def PyEval_EvalCode(code: PyObject | t.CPtr, globs: PyObject | t.CPtr, locs: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyEval_EvalCodeEx(code: PyObject | t.CPtr, globs: PyObject | t.CPtr, locs: PyObject | t.CPtr, args: PyObject | t.CPtr | t.CPtr, argc: t.CInt, kws: PyObject | t.CPtr | t.CPtr, kwc: t.CInt, defs: PyObject | t.CPtr | t.CPtr, defc: t.CInt, kwdefs: PyObject | t.CPtr, closure: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyEval_EvalFrame(frame: t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyEval_CallObject(callable: PyObject | t.CPtr, args: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyEval_CallFunction(callable: PyObject | t.CPtr, fmt: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyEval_CallMethod(obj: PyObject | t.CPtr, method: t.CConst | str, fmt: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyRun_SimpleString(cmd: t.CConst | str) -> t.CInt | t.State: pass - -def PyRun_SimpleFile(fp: t.CPtr, filename: t.CConst | str) -> t.CInt | t.State: pass - -def PyRun_AnyFile(fp: t.CPtr, filename: t.CConst | str) -> t.CInt | t.State: pass - -def PyRun_String(s: t.CConst | str, start: t.CInt, globs: PyObject | t.CPtr, locs: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyRun_File(fp: t.CPtr, filename: t.CConst | str, start: t.CInt, globs: PyObject | t.CPtr, locs: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - - -Py_single_input: t.CExtern | t.CInt | t.State -Py_file_input: t.CExtern | t.CInt | t.State -Py_eval_input: t.CExtern | t.CInt | t.State - -def PyCapsule_New(ptr: t.CPtr, name: t.CConst | str, dtor: t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyCapsule_GetPointer(cap: PyObject | t.CPtr, name: t.CConst | str) -> t.CPtr | t.State: pass - -def PyCapsule_GetName(cap: PyObject | t.CPtr) -> str | t.State: pass - -def PyCapsule_IsValid(cap: PyObject | t.CPtr, name: t.CConst | str) -> t.CInt | t.State: pass - -def PyCapsule_SetPointer(cap: PyObject | t.CPtr, ptr: t.CPtr) -> t.CInt | t.State: pass - -def PyCapsule_SetName(cap: PyObject | t.CPtr, name: t.CConst | str) -> t.CInt | t.State: pass - -def PyCapsule_SetDestructor(cap: PyObject | t.CPtr, dtor: t.CPtr) -> t.CInt | t.State: pass - -def PySequence_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySequence_Size(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PySequence_Length(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PySequence_Concat(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PySequence_Repeat(obj: PyObject | t.CPtr, count: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PySequence_GetItem(obj: PyObject | t.CPtr, idx: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PySequence_SetItem(obj: PyObject | t.CPtr, idx: t.CSizeT, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySequence_DelItem(obj: PyObject | t.CPtr, idx: t.CSizeT) -> t.CInt | t.State: pass - -def PySequence_GetSlice(obj: PyObject | t.CPtr, start: t.CSizeT, end: t.CSizeT) -> PyObject | t.CPtr | t.State: pass - -def PySequence_SetSlice(obj: PyObject | t.CPtr, start: t.CSizeT, end: t.CSizeT, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySequence_DelSlice(obj: PyObject | t.CPtr, start: t.CSizeT, end: t.CSizeT) -> t.CInt | t.State: pass - -def PySequence_Contains(obj: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySequence_Index(obj: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PySequence_Count(obj: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PySequence_List(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PySequence_Tuple(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyMapping_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyMapping_Size(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyMapping_Length(obj: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PyMapping_HasKey(obj: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyMapping_HasKeyString(obj: PyObject | t.CPtr, key: t.CConst | str) -> t.CInt | t.State: pass - -def PyMapping_GetItemString(obj: PyObject | t.CPtr, key: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PyMapping_SetItemString(obj: PyObject | t.CPtr, key: t.CConst | str, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyMapping_Keys(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyMapping_Values(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyMapping_Items(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Add(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Subtract(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Multiply(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_MatrixMultiply(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_FloorDivide(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_TrueDivide(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Modulo(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Power(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr, o3: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Negative(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Positive(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Absolute(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Invert(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Lshift(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Rshift(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_And(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Xor(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Or(o1: PyObject | t.CPtr, o2: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Index(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Long(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Float(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyNumber_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyWeakref_NewRef(obj: PyObject | t.CPtr, cb: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyWeakref_GetObject(ref: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyWeakref_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - - -class PyGetSetDef: - name: t.CConst | str - get: t.CPtr - set: t.CPtr - doc: t.CConst | str - closure: t.CPtr -class PyMemberDef: - name: t.CConst | str - type: t.CInt - offset: t.CPtrDiffT - flags: t.CInt - doc: t.CConst | str - -def PySys_GetObject(name: t.CConst | str) -> PyObject | t.CPtr | t.State: pass - -def PySys_SetObject(name: t.CConst | str, val: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySys_ResetWarnOptions() -> t.CVoid | t.State: pass - -def PySys_AddWarnOption(s: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def PySYS_AddXOption(s: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def PySys_WriteStdout(fmt: t.CConst | str) -> t.CVoid | t.State: pass - -def PySys_WriteStderr(fmt: t.CConst | str) -> t.CVoid | t.State: pass - -def PySys_FormatStdout(fmt: t.CConst | str) -> t.CVoid | t.State: pass - -def PySys_FormatStderr(fmt: t.CConst | str) -> t.CVoid | t.State: pass - -def PyMemoryView_FromObject(obj: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyMemoryView_GetContiguous(obj: PyObject | t.CPtr, btype: t.CInt, order: t.CChar) -> PyObject | t.CPtr | t.State: pass - -def PyMemoryView_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySet_New(iterable: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PySet_Add(s: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySet_Discard(s: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySet_Contains(s: PyObject | t.CPtr, key: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySet_Size(s: PyObject | t.CPtr) -> t.CSizeT | t.State: pass - -def PySet_Clear(s: PyObject | t.CPtr) -> t.CVoid | t.State: pass - -def PySet_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PyFrozenSet_New(iterable: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PyFrozenSet_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - -def PySlice_New(start: PyObject | t.CPtr, stop: PyObject | t.CPtr, step: PyObject | t.CPtr) -> PyObject | t.CPtr | t.State: pass - -def PySlice_GetIndicesEx(sl: PyObject | t.CPtr, length: t.CSizeT, start: t.CSizeT | t.CPtr, stop: t.CSizeT | t.CPtr, step: t.CSizeT | t.CPtr, slicelen: t.CSizeT | t.CPtr) -> t.CInt | t.State: pass - -def PySlice_Unpack(sl: PyObject | t.CPtr, start: t.CPtrDiffT | t.CPtr, stop: t.CPtrDiffT | t.CPtr, step: t.CPtrDiffT | t.CPtr) -> t.CVoid | t.State: pass - -def PySlice_AdjustIndices(length: t.CSizeT, start: t.CPtrDiffT | t.CPtr, stop: t.CPtrDiffT | t.CPtr, step: t.CPtrDiffT) -> t.CSizeT | t.State: pass - -def PySlice_Check(obj: PyObject | t.CPtr) -> t.CInt | t.State: pass - - -class PyLongObj: - ptr: PyObject | t.CPtr - def __new__(self: PyLongObj) -> 'PyLongObj' | t.CPtr: pass - @staticmethod - def from_long(val: t.CLong) -> 'PyLongObj' | t.CPtr: pass - def __add__(self: PyLongObj, other: PyLongObj | t.CPtr) -> 'PyLongObj' | t.CPtr: pass - def __sub__(self: PyLongObj, other: PyLongObj | t.CPtr) -> 'PyLongObj' | t.CPtr: pass - def __mul__(self: PyLongObj, other: PyLongObj | t.CPtr) -> 'PyLongObj' | t.CPtr: pass - def __neg__(self: PyLongObj) -> 'PyLongObj' | t.CPtr: pass - def to_long(self: PyLongObj) -> t.CLong: pass - def __str__(self: PyLongObj) -> PyObject | t.CPtr: pass - def dec_ref(self: PyLongObj) -> t.CInt: pass -class PyFloatObj: - ptr: PyObject | t.CPtr - def __new__(self: PyFloatObj) -> 'PyFloatObj' | t.CPtr: pass - @staticmethod - def from_double(val: t.CDouble) -> 'PyFloatObj' | t.CPtr: pass - def __add__(self: PyFloatObj, other: PyFloatObj | t.CPtr) -> 'PyFloatObj' | t.CPtr: pass - def __sub__(self: PyFloatObj, other: PyFloatObj | t.CPtr) -> 'PyFloatObj' | t.CPtr: pass - def __mul__(self: PyFloatObj, other: PyFloatObj | t.CPtr) -> 'PyFloatObj' | t.CPtr: pass - def __truediv__(self: PyFloatObj, other: PyFloatObj | t.CPtr) -> 'PyFloatObj' | t.CPtr: pass - def __neg__(self: PyFloatObj) -> 'PyFloatObj' | t.CPtr: pass - def to_double(self: PyFloatObj) -> t.CDouble: pass - def __str__(self: PyFloatObj) -> PyObject | t.CPtr: pass - def dec_ref(self: PyFloatObj) -> t.CInt: pass -class PyUnicodeObj: - ptr: PyObject | t.CPtr - def __new__(self: PyUnicodeObj) -> 'PyUnicodeObj' | t.CPtr: pass - @staticmethod - def from_string(s: t.CChar | t.CPtr) -> 'PyUnicodeObj' | t.CPtr: pass - def __add__(self: PyUnicodeObj, other: PyUnicodeObj | t.CPtr) -> 'PyUnicodeObj' | t.CPtr: pass - def __len__(self: PyUnicodeObj) -> t.CPtrDiffT: pass - def as_utf8(self: PyUnicodeObj) -> t.CChar | t.CPtr: pass - def __str__(self: PyUnicodeObj) -> PyObject | t.CPtr: pass - def dec_ref(self: PyUnicodeObj) -> t.CInt: pass -class PyListObj: - ptr: PyObject | t.CPtr - def __new__(self: PyListObj) -> 'PyListObj' | t.CPtr: pass - @staticmethod - def new() -> 'PyListObj' | t.CPtr: pass - def __getitem__(self: PyListObj, idx: t.CSizeT) -> PyObject | t.CPtr: pass - def __setitem__(self: PyListObj, idx: t.CSizeT, val: PyObject | t.CPtr) -> t.CInt: pass - def __len__(self: PyListObj) -> t.CSizeT: pass - def append(self: PyListObj, item: PyObject | t.CPtr) -> t.CInt: pass - def dec_ref(self: PyListObj) -> t.CInt: pass -class PyDictObj: - ptr: PyObject | t.CPtr - def __new__(self: PyDictObj) -> 'PyDictObj' | t.CPtr: pass - @staticmethod - def new() -> 'PyDictObj' | t.CPtr: pass - def __getitem__(self: PyDictObj, key: PyObject | t.CPtr) -> PyObject | t.CPtr: pass - def __setitem__(self: PyDictObj, key: PyObject | t.CPtr, val: PyObject | t.CPtr) -> t.CInt: pass - def __len__(self: PyDictObj) -> t.CSizeT: pass - def get_string(self: PyDictObj, key: t.CChar | t.CPtr) -> PyObject | t.CPtr: pass - def set_string(self: PyDictObj, key: t.CChar | t.CPtr, val: PyObject | t.CPtr) -> t.CInt: pass - def dec_ref(self: PyDictObj) -> t.CInt: pass \ No newline at end of file diff --git a/Test/CPythonTest/temp/7e529fe7a078cfef.pyi b/Test/CPythonTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/CPythonTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/CPythonTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/CPythonTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/CPythonTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/CPythonTest/temp/_phase1_manifest.json b/Test/CPythonTest/temp/_phase1_manifest.json index c4cbcce..7b21a36 100644 --- a/Test/CPythonTest/temp/_phase1_manifest.json +++ b/Test/CPythonTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\cpython.py": {"sha1": "7c5d5ec59c5fb0a8", "mtime": 1781613876.1585274, "size": 39169}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\main.py": {"sha1": "fb6cea4f70fade7a", "mtime": 1782403889.06048, "size": 13919}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\cpython.vp": {"sha1": "7c5d5ec59c5fb0a8", "mtime": 1781613876.1585274, "size": 39169}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\CPythonTest\\App\\main.vp": {"sha1": "fb6cea4f70fade7a", "mtime": 1782403889.06048, "size": 13919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/CPythonTest/temp/_sha1_map.txt b/Test/CPythonTest/temp/_sha1_map.txt index 8859590..9ef8f1a 100644 --- a/Test/CPythonTest/temp/_sha1_map.txt +++ b/Test/CPythonTest/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7c5d5ec59c5fb0a8:cpython.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py -fb6cea4f70fade7a:main.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +7c5d5ec59c5fb0a8:cpython.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fb6cea4f70fade7a:main.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/CPythonTest/temp/_shared_sym.json b/Test/CPythonTest/temp/_shared_sym.json index 57a966795bdb133c74e209ef0a2f68c7746a0a0a..b35dad6a058fed10a6c6b274f8b285695b7f7760 100644 GIT binary patch literal 624208 zcmeFa37i{Ol`h_PytM818t=|VR+}WoyB)H&)!j~~y4CGoY=?9Z)lzleDoZM*RI=S+ z337$umvUqVPGC%U>@W#3<=Ad$?yk;?eSw99t4K@pIeJmlB#6& zt-42@sPg;ey5+WA{eAV_bIv{Y+;d;H;Qo$|c^&k>)1|G&uKY}9QcWjxaWXBHifhyI zOjv(8Z+==R=X1JNDqc|jCvFw9skD^eZvT2v z%)=9w#KvZFQh#k)*jfJ4{KIkj*rka{_?Hqo{Gn33 zxC9=WNUDXbUJ^QrOHPRNQ#P-cjA9r4a6(Osx(wKi;?k6;i{8^%KVnXG)XB^Ah7qr8DUAh`Y5K%PX*nxpRr<3m zn4)hVes5VuO%>9T`8Me1#Th9xDQQ%_#ntefWNt<$YBr%xDpHc_X9@gfPD~y*>FP>J zQ}Ayl9Ojou*@E?E>A$tq{8auP{6#rSe*}{#^Q*+9nwo((w%q!LBb~TKPFBs%WYj_) z{`?Bf{Fd^?rT?DA9DHvDd@#XT%){@{f7ZkcU$3FxJ(ZMl^sgoW zaGw5*i{STkO@x<3-#>`;dV}0xkQ+g=H<8`sW`o=kC*1})7$-4PBBYlba;DO4@FxVJ zlMEEEOFe&LJP&VsVocI9a$Gu9$WQc0`Qy5pn;6r?Y<_qqHsQ>*dQZuG77&j7ANBdIT9yFq3yS1BB)UYt-Ym<~i7R+@>Fgq#Af&Nh--78@bFkCJ!qFD<+b9Bst zx*iGYf+IuyoXpX}*b$nY@w7#nND%7vr14vp}7o3T-%YPvVhyDgj>k#KgJIJr60 zP7A7^bYEkE-Gl^o(KyGqT8Ro9yxq51fHxxnUSa{}_Ig*9<0TWb-)sJ`g?bAT>dt|o z_#yf~A7i{EHlSvw>Hpp{__G$;3y{z*8RrXkb@?4PhW#}Q_Jv5W7w~(*3(Xho{c@kO zP+o+Da-sQh`RKT^wDZ^UFD35HX@-ifp3kME% zqhsu`FkX&?aWP%va1(9A)!dkc^a>=T3;PC!y1A`$`qHZCv(Aw$oL3^@T+}l(esF+O zl5}ybM=j9ZRZstN!a{l#7E<$#9^hhxik&g@l^y`ac)8M7Sx~nkL0xP@-MNns)+H8J z-|Xm{EwI~A!S3G06|8T9^n(`I=c0n$w}&fO-yG@RT41k60^4cHco(NRyVTb4F27m( z6$|b)NN^Xx-W(^W=036?%f> z$!UW6uS&Zukh?KKa+;jVO@2%7!xqRrNFW!}X~}I_+DVE|nYHbLO`{Y2kf7CSHzH*TUOi?mlMWy&e-U$H{BqZ7_SEwD8`5gm)p` zzu*=N(*h>HSop^l&>N9}E}}p=#lny`q)2^NtWR4|Z^DGiDI&I^`mR}*EijjIHzPqc z3)A?;j7!Y->hF9mu+ZLugm#IgVUEtnma$)Gajk{78xt>A=R@%}a6UI#cn>1soiFpT z#LD++Cdq3@W5@y+Ljri7%*g^P|LKP?VIk~6L&(YSDvPKS@p^}Gw^J1vB_q9Nop4SnlW9<&hlqaoxq4Smyr zk6H+CLqfR7EH~m-yg}O!`0Vq4%>pVQ0bM-G6X}xJu&(vUQ&T=*pR&LXAc0*1(Q8kC zUtfaHi&cI^;dr^pUs^Z^k#H`OA#25}kjyupo43$he#MbME(VZ0_whpM8`G_}P!1uY z+`WqzO5eEdITp%cM3npX@IvVu+wHVa9>zjh;5jdS1H5hv

hWPKuJ>#Pp5w4qGrs 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 u-La(t diff --git a/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/CPythonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/CPythonTest/temp/f5522571bcce7bcb.pyi b/Test/CPythonTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/CPythonTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/CPythonTest/temp/fb6cea4f70fade7a.pyi b/Test/CPythonTest/temp/fb6cea4f70fade7a.pyi deleted file mode 100644 index 12b9442..0000000 --- a/Test/CPythonTest/temp/fb6cea4f70fade7a.pyi +++ /dev/null @@ -1,29 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -from t import CInt, CLong, CDouble, CPtr, CSizeT -from stdio import printf -import cpython -import testcheck - -def test_init_finalize() -> t.CInt: pass - -def test_long_operations() -> t.CInt: pass - -def test_string_operations() -> t.CInt: pass - -def test_list_operations() -> t.CInt: pass - -def test_dict_operations() -> t.CInt: pass - -def test_pyrun_string() -> t.CInt: pass - -def test_import_module() -> t.CInt: pass - -def test_operator_overload() -> t.CInt: pass - -def main() -> CInt | t.CExport: pass diff --git a/Test/ClosureCallTest/temp/_phase1_manifest.json b/Test/ClosureCallTest/temp/_phase1_manifest.json index c7fd7fa..537d39b 100644 --- a/Test/ClosureCallTest/temp/_phase1_manifest.json +++ b/Test/ClosureCallTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureCallTest\\App\\main.vp": {"sha1": "5a548a4b33e11918", "mtime": 1784741370.3345914, "size": 1060}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureCallTest\\App\\main.vp": {"sha1": "5a548a4b33e11918", "mtime": 1784741370.3345914, "size": 1060}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ClosureTest/output/748d0424e8976fa0.deps.json b/Test/ClosureTest/output/748d0424e8976fa0.deps.json deleted file mode 100644 index eed66f5..0000000 --- a/Test/ClosureTest/output/748d0424e8976fa0.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "main": "52e6b51da061882f", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ClosureTest/output/_shared_sym_includes.pickle b/Test/ClosureTest/output/_shared_sym_includes.pickle deleted file mode 100644 index 8d9937e71894728bb37dea066ec01d946a6ee2ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 291784 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 diff --git a/Test/ClosureTest/output/bbdf3bbd4c3bc28c.deps.json b/Test/ClosureTest/output/bbdf3bbd4c3bc28c.deps.json deleted file mode 100644 index eed66f5..0000000 --- a/Test/ClosureTest/output/bbdf3bbd4c3bc28c.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "main": "52e6b51da061882f", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ClosureTest/output/fc980acec33d69a7.deps.json b/Test/ClosureTest/output/fc980acec33d69a7.deps.json deleted file mode 100644 index eed66f5..0000000 --- a/Test/ClosureTest/output/fc980acec33d69a7.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "main": "52e6b51da061882f", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ClosureTest/temp/_phase1_manifest.json b/Test/ClosureTest/temp/_phase1_manifest.json index c896b4b..8cbce9e 100644 --- a/Test/ClosureTest/temp/_phase1_manifest.json +++ b/Test/ClosureTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest\\App\\main.vp": {"sha1": "52e6b51da061882f", "mtime": 1782266177.611862, "size": 5497}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest\\App\\main.vp": {"sha1": "52e6b51da061882f", "mtime": 1782266177.611862, "size": 5497}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ClosureTest2/output/440f18f9dce85a95.deps.json b/Test/ClosureTest2/output/440f18f9dce85a95.deps.json index 2a27f59..f9587e9 100644 --- a/Test/ClosureTest2/output/440f18f9dce85a95.deps.json +++ b/Test/ClosureTest2/output/440f18f9dce85a95.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ClosureTest2/temp/14d33679f7fadf1f.pyi b/Test/ClosureTest2/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/ClosureTest2/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/ClosureTest2/temp/14d33679f7fadf1f.stub.ll.dep b/Test/ClosureTest2/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/ClosureTest2/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ClosureTest2/temp/440f18f9dce85a95.pyi b/Test/ClosureTest2/temp/440f18f9dce85a95.pyi deleted file mode 100644 index 0b2c4a4..0000000 --- a/Test/ClosureTest2/temp/440f18f9dce85a95.pyi +++ /dev/null @@ -1,52 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -def test_nonlocal_conditional() -> t.CInt: pass - -def test_nonlocal_multi_var() -> t.CInt: pass - - -g_counter: t.CExtern | t.CInt - -def inc_global() -> t.CInt: pass - -def add_global(n: t.CInt) -> t.CInt: pass - -def test_global_cross_functions() -> t.CInt: pass - -def test_nested_ref_capture() -> t.CInt: pass - -def test_lambda_capture_then_modify() -> t.CInt: pass - -def test_nonlocal_loop_accumulate() -> t.CInt: pass - -def test_deep_nested_vars() -> t.CInt: pass - - -g_state: t.CExtern | t.CInt - -def test_global_nonlocal_same_func() -> t.CInt: pass - -def test_lambda_default_and_capture() -> t.CInt: pass - -def test_nested_accumulate() -> t.CInt: pass - -def test_nonlocal_while() -> t.CInt: pass - - -class Point: - x: t.CInt - y: t.CInt - -def test_nested_modify_struct() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/ClosureTest2/temp/6f62fe05c5ea1ceb.pyi b/Test/ClosureTest2/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/ClosureTest2/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/ClosureTest2/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/ClosureTest2/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ClosureTest2/temp/7e529fe7a078cfef.pyi b/Test/ClosureTest2/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/ClosureTest2/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/ClosureTest2/temp/7e529fe7a078cfef.stub.ll.dep b/Test/ClosureTest2/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ClosureTest2/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ClosureTest2/temp/_phase1_manifest.json b/Test/ClosureTest2/temp/_phase1_manifest.json index b19e418..0a15cba 100644 --- a/Test/ClosureTest2/temp/_phase1_manifest.json +++ b/Test/ClosureTest2/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest2\\App\\main.py": {"sha1": "440f18f9dce85a95", "mtime": 1782266179.2717218, "size": 7586}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ClosureTest2\\App\\main.vp": {"sha1": "440f18f9dce85a95", "mtime": 1782266179.2717218, "size": 7586}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ClosureTest2/temp/_sha1_map.txt b/Test/ClosureTest2/temp/_sha1_map.txt index 1a0a5e9..d4fa956 100644 --- a/Test/ClosureTest2/temp/_sha1_map.txt +++ b/Test/ClosureTest2/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -440f18f9dce85a95:main.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +440f18f9dce85a95:main.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.pyi b/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/ClosureTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ClosureTest2/temp/f5522571bcce7bcb.pyi b/Test/ClosureTest2/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/ClosureTest2/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/output/b1122357fee8fd68.deps.json b/Test/DecoratorMarkerTest/output/b1122357fee8fd68.deps.json index 2a27f59..f9587e9 100644 --- a/Test/DecoratorMarkerTest/output/b1122357fee8fd68.deps.json +++ b/Test/DecoratorMarkerTest/output/b1122357fee8fd68.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.pyi b/Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/DecoratorMarkerTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.pyi b/Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/DecoratorMarkerTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.pyi b/Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DecoratorMarkerTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/_phase1_manifest.json b/Test/DecoratorMarkerTest/temp/_phase1_manifest.json index eb6e78e..3ed1d64 100644 --- a/Test/DecoratorMarkerTest/temp/_phase1_manifest.json +++ b/Test/DecoratorMarkerTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorMarkerTest\\App\\main.py": {"sha1": "b1122357fee8fd68", "mtime": 1782110269.7636156, "size": 1840}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorMarkerTest\\App\\main.vp": {"sha1": "b1122357fee8fd68", "mtime": 1782110269.7636156, "size": 1840}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/_sha1_map.txt b/Test/DecoratorMarkerTest/temp/_sha1_map.txt index a08ed2e..97b2cfd 100644 --- a/Test/DecoratorMarkerTest/temp/_sha1_map.txt +++ b/Test/DecoratorMarkerTest/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -b1122357fee8fd68:main.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +b1122357fee8fd68:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/DecoratorMarkerTest/temp/b1122357fee8fd68.pyi b/Test/DecoratorMarkerTest/temp/b1122357fee8fd68.pyi deleted file mode 100644 index 97850c4..0000000 --- a/Test/DecoratorMarkerTest/temp/b1122357fee8fd68.pyi +++ /dev/null @@ -1,36 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -from stdio import printf -import testcheck - -@t.CStruct -class Point: - x: t.CInt - y: t.CInt -@t.CEnum -class Color: - RED = 1 - GREEN = 2 - BLUE = 3 -@t.CUnion -class Data: - i: t.CInt - f: t.CFloat - -@t.CExport -def test() -> t.CInt: pass - -@t.CStatic -def static_func() -> t.CInt: pass - -@t.CStatic -def mixed_func() -> t.CInt | t.CExport: pass - -def main() -> t.CInt: pass diff --git a/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/DecoratorMarkerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/DecoratorMarkerTest/temp/f5522571bcce7bcb.pyi b/Test/DecoratorMarkerTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/DecoratorMarkerTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/DecoratorTest/output/814e6b31adfc6256.deps.json b/Test/DecoratorTest/output/814e6b31adfc6256.deps.json index 2a27f59..f9587e9 100644 --- a/Test/DecoratorTest/output/814e6b31adfc6256.deps.json +++ b/Test/DecoratorTest/output/814e6b31adfc6256.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/DecoratorTest/temp/14d33679f7fadf1f.pyi b/Test/DecoratorTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/DecoratorTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/DecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/DecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/DecoratorTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DecoratorTest/temp/6f62fe05c5ea1ceb.pyi b/Test/DecoratorTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/DecoratorTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/DecoratorTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/DecoratorTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/DecoratorTest/temp/7e529fe7a078cfef.pyi b/Test/DecoratorTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/DecoratorTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/DecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/DecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DecoratorTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DecoratorTest/temp/814e6b31adfc6256.pyi b/Test/DecoratorTest/temp/814e6b31adfc6256.pyi deleted file mode 100644 index 0a0bccf..0000000 --- a/Test/DecoratorTest/temp/814e6b31adfc6256.pyi +++ /dev/null @@ -1,69 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -from stdio import printf -import testcheck - -def log(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass - -def trace(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass - - -_timing_tmp: t.CExtern | t.CInt - -def timing(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass - -def repeat(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass - - -_skip_count: t.CExtern | t.CInt - -def skip(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass - - -_call_count: t.CExtern | t.CInt - -def count_calls(ctx: t.CVoid | t.CPtr, func_name: str, phase: t.CInt, args_ptr: t.CVoid | t.CPtr, ret_ptr: t.CVoid | t.CPtr, decor_args_ptr: t.CVoid | t.CPtr) -> t.CInt | t.CExport: pass - -@log -def add(a: t.CInt, b: t.CInt) -> t.CInt | t.CExport: pass - -@log -@trace -def multiply(a: t.CInt, b: t.CInt) -> t.CInt | t.CExport: pass - -@log -def greet(name: str) -> t.CVoid | t.CExport: pass - -@log -def get_value() -> t.CInt | t.CExport: pass - -@timing -def compute(x: t.CInt) -> t.CInt | t.CExport: pass - -@repeat(3) -def echo(msg: str) -> t.CVoid | t.CExport: pass - -@timing -@log -def power(base: t.CInt, exp: t.CInt) -> t.CInt | t.CExport: pass - -@skip -def dangerous() -> t.CInt | t.CExport: pass - -@repeat(3) -def accumulate(x: t.CInt) -> t.CInt | t.CExport: pass - -@count_calls -def factorial(n: t.CInt) -> t.CInt | t.CExport: pass - -@log -def fib(n: t.CInt) -> t.CInt | t.CExport: pass - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/DecoratorTest/temp/_phase1_manifest.json b/Test/DecoratorTest/temp/_phase1_manifest.json index ae726f1..f0f00c7 100644 --- a/Test/DecoratorTest/temp/_phase1_manifest.json +++ b/Test/DecoratorTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorTest\\App\\main.py": {"sha1": "814e6b31adfc6256", "mtime": 1782110086.8867075, "size": 10275}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DecoratorTest\\App\\main.vp": {"sha1": "814e6b31adfc6256", "mtime": 1782110086.8867075, "size": 10275}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DecoratorTest/temp/_sha1_map.txt b/Test/DecoratorTest/temp/_sha1_map.txt index 9afdfce..ecbf194 100644 --- a/Test/DecoratorTest/temp/_sha1_map.txt +++ b/Test/DecoratorTest/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -814e6b31adfc6256:main.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +814e6b31adfc6256:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/DecoratorTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/DecoratorTest/temp/f5522571bcce7bcb.pyi b/Test/DecoratorTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/DecoratorTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/DictTest/output/20cd49775c100a38.deps.json b/Test/DictTest/output/20cd49775c100a38.deps.json index 78c2003..74a5ecd 100644 --- a/Test/DictTest/output/20cd49775c100a38.deps.json +++ b/Test/DictTest/output/20cd49775c100a38.deps.json @@ -1 +1 @@ -{"json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/240a9a4157959a9f.deps.json b/Test/DictTest/output/240a9a4157959a9f.deps.json index 78c2003..74a5ecd 100644 --- a/Test/DictTest/output/240a9a4157959a9f.deps.json +++ b/Test/DictTest/output/240a9a4157959a9f.deps.json @@ -1 +1 @@ -{"json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/6ddf430432a0e373.deps.json b/Test/DictTest/output/6ddf430432a0e373.deps.json index 78c2003..74a5ecd 100644 --- a/Test/DictTest/output/6ddf430432a0e373.deps.json +++ b/Test/DictTest/output/6ddf430432a0e373.deps.json @@ -1 +1 @@ -{"json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/_shared_sym_includes.pickle b/Test/DictTest/output/_shared_sym_includes.pickle index 01731a340396aaffbe81ec411006440f27a46f14..371344c82c49cc66fb4c2b2f9142a4c9bcef2a17 100644 GIT binary patch literal 716546 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 `uG_NYLOWP59G%R!cb64%^-LnKUNTi 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 HobUKQ=AxE@ literal 712802 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 UW5cGYDqGSVwQD~K}e9I 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 z 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

$Vw7oE3W>Icj)YI^1F;xZM)otC6>O7P%cSgX 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 int: pass - - -@t.Object -class RemoteClass: - value: t.CInt - def remote_method(self: RemoteClass) -> int: pass - -def no_doc_func() -> int: pass diff --git a/Test/DocTest/temp/14a9b576ab5d21c9.pyi b/Test/DocTest/temp/14a9b576ab5d21c9.pyi deleted file mode 100644 index c16365f..0000000 --- a/Test/DocTest/temp/14a9b576ab5d21c9.pyi +++ /dev/null @@ -1,32 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t -import stdio -import string -import c -import testcheck -import remote - -def local_func() -> t.CInt: pass - -def no_doc_func() -> t.CInt: pass - - -@t.Object -class LocalClass: - value: t.CInt - def local_method(self: LocalClass) -> t.CInt: pass - -def _check_doc_adaptive(name: str, doc: str, expected: str) -> t.CInt: pass - -def _check_doc_null(name: str, doc: str) -> t.CInt: pass - -def test_local_doc() -> t.CInt: pass - -def test_cross_module_doc() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/DocTest/temp/14d33679f7fadf1f.pyi b/Test/DocTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/DocTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/DocTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/DocTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/DocTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DocTest/temp/6f62fe05c5ea1ceb.pyi b/Test/DocTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/DocTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/DocTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/DocTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/DocTest/temp/7e529fe7a078cfef.pyi b/Test/DocTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/DocTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/DocTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/DocTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DocTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DocTest/temp/_phase1_manifest.json b/Test/DocTest/temp/_phase1_manifest.json index 65ae1de..93f1191 100644 --- a/Test/DocTest/temp/_phase1_manifest.json +++ b/Test/DocTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\main.py": {"sha1": "14a9b576ab5d21c9", "mtime": 1782474568.0454285, "size": 2162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\remote.py": {"sha1": "f26d7266c4f8762b", "mtime": 1782397989.7183921, "size": 271}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\main.vp": {"sha1": "14a9b576ab5d21c9", "mtime": 1786000143.1706655, "size": 2162}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DocTest\\App\\remote.vp": {"sha1": "f26d7266c4f8762b", "mtime": 1786000143.1723108, "size": 271}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DocTest/temp/_sha1_map.txt b/Test/DocTest/temp/_sha1_map.txt index fff1770..669f7b4 100644 --- a/Test/DocTest/temp/_sha1_map.txt +++ b/Test/DocTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14a9b576ab5d21c9:main.py -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f26d7266c4f8762b:remote.py -f5522571bcce7bcb:includes/stdint.py +14a9b576ab5d21c9:main.vp +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f26d7266c4f8762b:remote.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/DocTest/temp/_shared_sym.json b/Test/DocTest/temp/_shared_sym.json index 813c835562e9c3272cb1b709192952093a4e2a81..e55f26d22ac0d89a7528e612b4a93688fa4b8fd8 100644 GIT binary patch literal 365027 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

f8#>_YA2#M_ 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 DpVC{5 literal 349013 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 l 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 J+brz){{fXp3bOzJ diff --git a/Test/G4/temp/a45655b992cc8767.pyi b/Test/G4/temp/a45655b992cc8767.pyi deleted file mode 100644 index 3ce6f8c..0000000 --- a/Test/G4/temp/a45655b992cc8767.pyi +++ /dev/null @@ -1,17 +0,0 @@ -""" -Auto-generated Python stub file from caller1.py -Module: caller1 -""" - -import c - - -import t -import stdio -import stdlib -import memhub -from g4node import G4Node, new_g4node - -def caller1_make_chain(pool: memhub.MemBuddy | t.CPtr) -> G4Node | t.CPtr: pass - -def caller1_sum_chain(head: G4Node | t.CPtr) -> t.CInt: pass diff --git a/Test/G4/temp/ba12ed409d78139e.pyi b/Test/G4/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/G4/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/G4/temp/ba12ed409d78139e.stub.ll.dep b/Test/G4/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G4/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/bbdf3bbd4c3bc28c.pyi b/Test/G4/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/G4/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/G4/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/G4/temp/c9f4be41ca1cc2b4.pyi b/Test/G4/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/G4/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G4/temp/ca0f8dd74e6cb63c.pyi b/Test/G4/temp/ca0f8dd74e6cb63c.pyi deleted file mode 100644 index 458b0e6..0000000 --- a/Test/G4/temp/ca0f8dd74e6cb63c.pyi +++ /dev/null @@ -1,17 +0,0 @@ -""" -Auto-generated Python stub file from caller3.py -Module: caller3 -""" - -import c - - -import t -import stdio -import stdlib -import memhub -from g4node import G4Node, new_g4node - -def caller3_find_tail(head: G4Node | t.CPtr) -> G4Node | t.CPtr: pass - -def caller3_append(head: G4Node | t.CPtr, new_node: G4Node | t.CPtr) -> G4Node | t.CPtr: pass diff --git a/Test/G4/temp/d089e25a15c6f6e0.pyi b/Test/G4/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/G4/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/G4/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/dbd53aaa91309ba1.pyi b/Test/G4/temp/dbd53aaa91309ba1.pyi deleted file mode 100644 index 17ecaa1..0000000 --- a/Test/G4/temp/dbd53aaa91309ba1.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from g4node.py -Module: g4node -""" - -import c - - -import t -from linkedlist import GSListNode -import memhub - -@t.NoVTable -class G4Node(GSListNode[G4Node]): - Ty: t.CPtr - Name: t.CPtr - IsConst: t.CInt - IntVal: t.CInt64T - FloatVal: t.CDouble - def __init__(self: G4Node) -> t.CInt: pass - -def new_g4node(pool: memhub.MemBuddy | t.CPtr) -> G4Node | t.CPtr: pass - -def g4node_get_next(node: G4Node | t.CPtr) -> G4Node | t.CPtr: pass - -def g4node_set_next(node: G4Node | t.CPtr, next_node: G4Node | t.CPtr) -> t.CInt: pass diff --git a/Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep b/Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep index 9996536..6b67815 100644 --- a/Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep +++ b/Test/G4/temp/dbd53aaa91309ba1.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/f5522571bcce7bcb.pyi b/Test/G4/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/G4/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/G4/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/G4/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/G4/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/G4/temp/f9d023d1df2bc9c5.vpi b/Test/G4/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/G4/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G4/temp/ffaf70367668b227.stub.ll.dep b/Test/G4/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G4/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/ffaf70367668b227.vpi b/Test/G4/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/G4/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/G5/output/5c5f2d19bc9e75ab.deps.json b/Test/G5/output/5c5f2d19bc9e75ab.deps.json index 9c7f8d7..e345629 100644 --- a/Test/G5/output/5c5f2d19bc9e75ab.deps.json +++ b/Test/G5/output/5c5f2d19bc9e75ab.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G5/temp/14d33679f7fadf1f.pyi b/Test/G5/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/G5/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/G5/temp/14d33679f7fadf1f.stub.ll.dep b/Test/G5/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/G5/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/271ea3decb810db2.pyi b/Test/G5/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/G5/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/G5/temp/271ea3decb810db2.stub.ll.dep b/Test/G5/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G5/temp/2d39c6c7d3557b3e.pyi b/Test/G5/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/Test/G5/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/G5/temp/2d39c6c7d3557b3e.stub.ll.dep b/Test/G5/temp/2d39c6c7d3557b3e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G5/temp/2d39c6c7d3557b3e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/5c5f2d19bc9e75ab.pyi b/Test/G5/temp/5c5f2d19bc9e75ab.pyi deleted file mode 100644 index 8cdd875..0000000 --- a/Test/G5/temp/5c5f2d19bc9e75ab.pyi +++ /dev/null @@ -1,39 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck -import stdlib -import memhub -import string -from linkedlist import GSListNode, GSList - -@t.NoVTable -class G5Node(GSListNode[G5Node]): - Value: t.CInt - def __init__(self: G5Node) -> t.CInt: pass - -GSLIST_SIZE: t.CDefine = 24 # Head(8) + Tail(8) + Count(8) - -@t.NoVTable -class G5ListWrapper: - List: GSList[G5Node] | t.CPtr - def __init__(self: G5ListWrapper, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def test_g5node_create() -> t.CInt: pass - -def test_g5node_next() -> t.CInt: pass - -def test_gslist_create() -> t.CInt: pass - -def test_gslist_append() -> t.CInt: pass - -def test_wrapper_list_field() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/G5/temp/6f62fe05c5ea1ceb.pyi b/Test/G5/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/G5/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/G5/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/G5/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G5/temp/7e529fe7a078cfef.pyi b/Test/G5/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/G5/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/G5/temp/7e529fe7a078cfef.stub.ll.dep b/Test/G5/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G5/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/90c53dd6db8d41cf.pyi b/Test/G5/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/G5/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/G5/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/G5/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G5/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/_phase1_manifest.json b/Test/G5/temp/_phase1_manifest.json index da34066..fb9e628 100644 --- a/Test/G5/temp/_phase1_manifest.json +++ b/Test/G5/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G5\\App\\main.py": {"sha1": "5c5f2d19bc9e75ab", "mtime": 1784657611.1935527, "size": 5524}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G5\\App\\main.vp": {"sha1": "5c5f2d19bc9e75ab", "mtime": 1784741370.3410766, "size": 5524}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/G5/temp/_sha1_map.txt b/Test/G5/temp/_sha1_map.txt index d79696c..6e1cf1b 100644 --- a/Test/G5/temp/_sha1_map.txt +++ b/Test/G5/temp/_sha1_map.txt @@ -1,12 +1,12 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -2d39c6c7d3557b3e:includes/linkedlist.py -5c5f2d19bc9e75ab:main.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +5c5f2d19bc9e75ab:main.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +a5e9a83e9db303ad:includes/linkedlist.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/G5/temp/ba12ed409d78139e.pyi b/Test/G5/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/G5/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/G5/temp/ba12ed409d78139e.stub.ll.dep b/Test/G5/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G5/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/bbdf3bbd4c3bc28c.pyi b/Test/G5/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/G5/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/G5/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/G5/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/G5/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/G5/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/G5/temp/c9f4be41ca1cc2b4.pyi b/Test/G5/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/G5/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G5/temp/d089e25a15c6f6e0.pyi b/Test/G5/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/G5/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G5/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/G5/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/G5/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/f5522571bcce7bcb.pyi b/Test/G5/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/G5/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/G5/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/G5/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/G5/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/G5/temp/f9d023d1df2bc9c5.vpi b/Test/G5/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/G5/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G5/temp/ffaf70367668b227.stub.ll.dep b/Test/G5/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G5/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G5/temp/ffaf70367668b227.vpi b/Test/G5/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/G5/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/G6/output/c3df2c1540dfb432.deps.json b/Test/G6/output/c3df2c1540dfb432.deps.json index a6b7b27..6b9350f 100644 --- a/Test/G6/output/c3df2c1540dfb432.deps.json +++ b/Test/G6/output/c3df2c1540dfb432.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G6/temp/14d33679f7fadf1f.pyi b/Test/G6/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/G6/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/G6/temp/14d33679f7fadf1f.stub.ll.dep b/Test/G6/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/G6/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G6/temp/271ea3decb810db2.pyi b/Test/G6/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/G6/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/G6/temp/271ea3decb810db2.stub.ll.dep b/Test/G6/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G6/temp/6f62fe05c5ea1ceb.pyi b/Test/G6/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/G6/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/G6/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/G6/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G6/temp/7e529fe7a078cfef.pyi b/Test/G6/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/G6/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/G6/temp/7e529fe7a078cfef.stub.ll.dep b/Test/G6/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G6/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G6/temp/_phase1_manifest.json b/Test/G6/temp/_phase1_manifest.json index 0e5bce0..ab6f02a 100644 --- a/Test/G6/temp/_phase1_manifest.json +++ b/Test/G6/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G6\\App\\main.py": {"sha1": "c3df2c1540dfb432", "mtime": 1784657935.903463, "size": 2446}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G6\\App\\main.vp": {"sha1": "c3df2c1540dfb432", "mtime": 1784741370.3381848, "size": 2446}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/G6/temp/_sha1_map.txt b/Test/G6/temp/_sha1_map.txt index 4541cc4..913cb55 100644 --- a/Test/G6/temp/_sha1_map.txt +++ b/Test/G6/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3df2c1540dfb432:main.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c3df2c1540dfb432:main.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/G6/temp/bbdf3bbd4c3bc28c.pyi b/Test/G6/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/G6/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/G6/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/G6/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/G6/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/G6/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/G6/temp/c3df2c1540dfb432.pyi b/Test/G6/temp/c3df2c1540dfb432.pyi deleted file mode 100644 index 206bea6..0000000 --- a/Test/G6/temp/c3df2c1540dfb432.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -import stdio -import testcheck -import atom - -def test_atomic_test_and_set() -> t.CInt: pass - -def test_atomic_clear() -> t.CInt: pass - -def test_atomic_thread_fence() -> t.CInt: pass - -def test_atomic_lock_free() -> t.CInt: pass - -def test_atomic_spinlock() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/G6/temp/f5522571bcce7bcb.pyi b/Test/G6/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/G6/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/G7/output/12c1b8e59d117476.deps.json b/Test/G7/output/12c1b8e59d117476.deps.json index e5e57b6..f6c62af 100644 --- a/Test/G7/output/12c1b8e59d117476.deps.json +++ b/Test/G7/output/12c1b8e59d117476.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "conflict_node": "d76710b4e0707c91", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "conflict_node": "d76710b4e0707c91", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G7/temp/12c1b8e59d117476.pyi b/Test/G7/temp/12c1b8e59d117476.pyi deleted file mode 100644 index 2075ae5..0000000 --- a/Test/G7/temp/12c1b8e59d117476.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck -import stdlib -import memhub -from conflict_node import Value - -Value: t.CExtern | t.CPtr - -def test_value_struct_fields() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/G7/temp/14d33679f7fadf1f.pyi b/Test/G7/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/G7/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/G7/temp/14d33679f7fadf1f.stub.ll.dep b/Test/G7/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/G7/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/271ea3decb810db2.pyi b/Test/G7/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/G7/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/G7/temp/271ea3decb810db2.stub.ll.dep b/Test/G7/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G7/temp/2d39c6c7d3557b3e.pyi b/Test/G7/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/Test/G7/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/G7/temp/2d39c6c7d3557b3e.stub.ll.dep b/Test/G7/temp/2d39c6c7d3557b3e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G7/temp/2d39c6c7d3557b3e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/6f62fe05c5ea1ceb.pyi b/Test/G7/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/G7/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/G7/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/G7/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G7/temp/7e529fe7a078cfef.pyi b/Test/G7/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/G7/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/G7/temp/7e529fe7a078cfef.stub.ll.dep b/Test/G7/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G7/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/90c53dd6db8d41cf.pyi b/Test/G7/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/G7/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/G7/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/G7/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G7/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/_phase1_manifest.json b/Test/G7/temp/_phase1_manifest.json index 4b3a721..55797b0 100644 --- a/Test/G7/temp/_phase1_manifest.json +++ b/Test/G7/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G7\\App\\main.py": {"sha1": "12c1b8e59d117476", "mtime": 1784695052.6706405, "size": 1812}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G7\\includes\\conflict_node.py": {"sha1": "d76710b4e0707c91", "mtime": 1784695042.7606275, "size": 906}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G7\\App\\main.vp": {"sha1": "12c1b8e59d117476", "mtime": 1784741370.3632765, "size": 1812}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G7\\includes\\conflict_node.vp": {"sha1": "d76710b4e0707c91", "mtime": 1784741370.365836, "size": 906}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/G7/temp/_sha1_map.txt b/Test/G7/temp/_sha1_map.txt index 0f59962..90fb89b 100644 --- a/Test/G7/temp/_sha1_map.txt +++ b/Test/G7/temp/_sha1_map.txt @@ -1,13 +1,13 @@ -12c1b8e59d117476:main.py -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -2d39c6c7d3557b3e:includes/linkedlist.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -d76710b4e0707c91:includes/conflict_node.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +12c1b8e59d117476:main.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +a5e9a83e9db303ad:includes/linkedlist.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +d76710b4e0707c91:includes/conflict_node.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/G7/temp/ba12ed409d78139e.pyi b/Test/G7/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/G7/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/G7/temp/ba12ed409d78139e.stub.ll.dep b/Test/G7/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G7/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/bbdf3bbd4c3bc28c.pyi b/Test/G7/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/G7/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/G7/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/G7/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/G7/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/G7/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/G7/temp/c9f4be41ca1cc2b4.pyi b/Test/G7/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/G7/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G7/temp/d089e25a15c6f6e0.pyi b/Test/G7/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/G7/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G7/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/G7/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/G7/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/d76710b4e0707c91.pyi b/Test/G7/temp/d76710b4e0707c91.pyi deleted file mode 100644 index 2289685..0000000 --- a/Test/G7/temp/d76710b4e0707c91.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from conflict_node.py -Module: conflict_node -""" - -import c - - -import t -from linkedlist import GSListNode - -@t.NoVTable -class Value(GSListNode[Value]): - Ty: t.CPtr - Name: t.CPtr - IsConst: t.CInt - IntVal: t.CInt64T - FloatVal: t.CDouble - def __init__(self: Value) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G7/temp/d76710b4e0707c91.stub.ll.dep b/Test/G7/temp/d76710b4e0707c91.stub.ll.dep index 6529f0f..0bf2f47 100644 --- a/Test/G7/temp/d76710b4e0707c91.stub.ll.dep +++ b/Test/G7/temp/d76710b4e0707c91.stub.ll.dep @@ -1 +1 @@ -2d39c6c7d3557b3e|f5522571bcce7bcb \ No newline at end of file +a5e9a83e9db303ad|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/f5522571bcce7bcb.pyi b/Test/G7/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/G7/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/G7/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/G7/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/G7/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/G7/temp/f9d023d1df2bc9c5.vpi b/Test/G7/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/G7/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/G7/temp/ffaf70367668b227.stub.ll.dep b/Test/G7/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G7/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G7/temp/ffaf70367668b227.vpi b/Test/G7/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/G7/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/GenericTest/output/16e1f65b154831e8.deps.json b/Test/GenericTest/output/16e1f65b154831e8.deps.json index 2a27f59..f9587e9 100644 --- a/Test/GenericTest/output/16e1f65b154831e8.deps.json +++ b/Test/GenericTest/output/16e1f65b154831e8.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/GenericTest/temp/14d33679f7fadf1f.pyi b/Test/GenericTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/GenericTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/GenericTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/GenericTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/GenericTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest/temp/16e1f65b154831e8.pyi b/Test/GenericTest/temp/16e1f65b154831e8.pyi deleted file mode 100644 index 3167de1..0000000 --- a/Test/GenericTest/temp/16e1f65b154831e8.pyi +++ /dev/null @@ -1,64 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -def add[T](a: T, b: T) -> T: pass - -def test_generic_add() -> t.CInt: pass - -def combine[T1, T2](a: T1, b: T2) -> T1: pass - -def test_generic_combine() -> t.CInt: pass - -def max_val[T](a: T, b: T) -> T: pass - -def test_generic_max() -> t.CInt: pass - - -class Box[T]: - value: T - def __init__(self: Box, v: T) -> t.CInt: pass - def get(self: Box) -> T: pass - def set(self: Box, v: T) -> t.CInt: pass - -def test_generic_box() -> t.CInt: pass - - -class Pair[T1, T2]: - first: T1 - second: T2 - def __init__(self: Pair, a: T1, b: T2) -> t.CInt: pass - def sum_as_int(self: Pair) -> t.CInt: pass - -def test_generic_pair() -> t.CInt: pass - -def test_fixed_array() -> t.CInt: pass - -def test_char_array() -> t.CInt: pass - -def identity[T](x: T) -> T: pass - -def test_generic_identity() -> t.CInt: pass - -def double_val[T](x: T) -> T: pass - -def test_generic_nested() -> t.CInt: pass - - -class Counter[T]: - count: T - def __init__(self: Counter, start: T) -> t.CInt: pass - def increment(self: Counter) -> t.CInt: pass - def get_count(self: Counter) -> T: pass - -def test_generic_counter() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/GenericTest/temp/6f62fe05c5ea1ceb.pyi b/Test/GenericTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/GenericTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/GenericTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/GenericTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/GenericTest/temp/7e529fe7a078cfef.pyi b/Test/GenericTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/GenericTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/GenericTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/GenericTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/GenericTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest/temp/_phase1_manifest.json b/Test/GenericTest/temp/_phase1_manifest.json index 1e3b6ec..5a9c644 100644 --- a/Test/GenericTest/temp/_phase1_manifest.json +++ b/Test/GenericTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest\\App\\main.py": {"sha1": "16e1f65b154831e8", "mtime": 1782266275.0221426, "size": 5369}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest\\App\\main.vp": {"sha1": "16e1f65b154831e8", "mtime": 1782266275.0221426, "size": 5369}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/GenericTest/temp/_sha1_map.txt b/Test/GenericTest/temp/_sha1_map.txt index 9160313..f8f9104 100644 --- a/Test/GenericTest/temp/_sha1_map.txt +++ b/Test/GenericTest/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -16e1f65b154831e8:main.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +16e1f65b154831e8:main.vp +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/GenericTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/GenericTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/GenericTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/GenericTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/GenericTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/GenericTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/GenericTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/GenericTest/temp/f5522571bcce7bcb.pyi b/Test/GenericTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/GenericTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/GenericTest2/output/bdfc8bd243b7e5b7.deps.json b/Test/GenericTest2/output/bdfc8bd243b7e5b7.deps.json index 2a27f59..f9587e9 100644 --- a/Test/GenericTest2/output/bdfc8bd243b7e5b7.deps.json +++ b/Test/GenericTest2/output/bdfc8bd243b7e5b7.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/GenericTest2/temp/14d33679f7fadf1f.pyi b/Test/GenericTest2/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/GenericTest2/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/GenericTest2/temp/14d33679f7fadf1f.stub.ll.dep b/Test/GenericTest2/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/GenericTest2/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest2/temp/6f62fe05c5ea1ceb.pyi b/Test/GenericTest2/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/GenericTest2/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/GenericTest2/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/GenericTest2/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/GenericTest2/temp/7e529fe7a078cfef.pyi b/Test/GenericTest2/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/GenericTest2/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/GenericTest2/temp/7e529fe7a078cfef.stub.ll.dep b/Test/GenericTest2/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/GenericTest2/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest2/temp/_phase1_manifest.json b/Test/GenericTest2/temp/_phase1_manifest.json index 5a8cdf8..d1a1a7b 100644 --- a/Test/GenericTest2/temp/_phase1_manifest.json +++ b/Test/GenericTest2/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest2\\App\\main.py": {"sha1": "bdfc8bd243b7e5b7", "mtime": 1782479447.3739374, "size": 8453}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest2\\App\\main.vp": {"sha1": "bdfc8bd243b7e5b7", "mtime": 1782479447.3739374, "size": 8453}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/GenericTest2/temp/_sha1_map.txt b/Test/GenericTest2/temp/_sha1_map.txt index a83ff75..a79f033 100644 --- a/Test/GenericTest2/temp/_sha1_map.txt +++ b/Test/GenericTest2/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -bdfc8bd243b7e5b7:main.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +bdfc8bd243b7e5b7:main.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.pyi b/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/GenericTest2/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/GenericTest2/temp/bdfc8bd243b7e5b7.pyi b/Test/GenericTest2/temp/bdfc8bd243b7e5b7.pyi deleted file mode 100644 index bd232f2..0000000 --- a/Test/GenericTest2/temp/bdfc8bd243b7e5b7.pyi +++ /dev/null @@ -1,87 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t -import stdio -import c -import testcheck - -def square[T](x: T) -> T: pass - -def test_generic_square_types() -> t.CInt: pass - -def clamp[T](val: T, lo: T, hi: T) -> T: pass - -def test_generic_clamp() -> t.CInt: pass - - -class Stack[T]: - data: t.CArray[t.CInt, 16] - top: t.CInt - def __init__(self: Stack) -> t.CInt: pass - def push(self: Stack, val: T) -> t.CInt: pass - def pop(self: Stack) -> T: pass - def is_empty(self: Stack) -> t.CInt: pass - def size_of(self: Stack) -> t.CSizeT: pass - def type_size(self: Stack) -> t.CSizeT: pass - -def test_generic_stack() -> t.CInt: pass - - -class IntPair: - a: t.CInt - b: t.CInt - -def generic_swap[T](p: IntPair | t.CPtr) -> t.CInt: pass - -def test_generic_swap() -> t.CInt: pass - - -class Range[T]: - start: T - end_val: T - step: T - def __init__(self: Range, s: T, e: T, st: T) -> t.CInt: pass - def sum_all(self: Range) -> T: pass - -def test_generic_range() -> t.CInt: pass - -def array_sum(arr: t.CArray[t.CInt, 8], n: t.CInt) -> t.CInt: pass - -def test_generic_array_sum() -> t.CInt: pass - -def max_of_three[T](a: T, b: T, c_val: T) -> T: pass - -def test_generic_max_three() -> t.CInt: pass - - -class Container[T]: - values: t.CArray[t.CInt, 8] - size: t.CInt - def __init__(self: Container) -> t.CInt: pass - def add(self: Container, v: T) -> t.CInt: pass - def get(self: Container, idx: t.CInt) -> T: pass - def contains(self: Container, v: T) -> t.CInt: pass - def total(self: Container) -> T: pass - -def test_generic_container() -> t.CInt: pass - -def factorial[T](n: T) -> T: pass - -def test_generic_factorial() -> t.CInt: pass - - -class Accumulator[T]: - total: T - def __init__(self: Accumulator, start: T) -> t.CInt: pass - def add_val(self: Accumulator, v: T) -> t.CInt: pass - def get_result(self: Accumulator) -> T: pass - -def test_generic_accumulator() -> t.CInt: pass - -def test_generic_sizeof_bug() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/GenericTest2/temp/f5522571bcce7bcb.pyi b/Test/GenericTest2/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/GenericTest2/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/GenericTest3/output/01d9e58c9dd31a4d.deps.json b/Test/GenericTest3/output/01d9e58c9dd31a4d.deps.json index 2a27f59..f9587e9 100644 --- a/Test/GenericTest3/output/01d9e58c9dd31a4d.deps.json +++ b/Test/GenericTest3/output/01d9e58c9dd31a4d.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/GenericTest3/temp/01d9e58c9dd31a4d.pyi b/Test/GenericTest3/temp/01d9e58c9dd31a4d.pyi deleted file mode 100644 index 21804bc..0000000 --- a/Test/GenericTest3/temp/01d9e58c9dd31a4d.pyi +++ /dev/null @@ -1,27 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -def double[T](x: int) -> int: pass - -def test_explicit_type_arg() -> t.CInt: pass - -def identity[T](x: int) -> int: pass - -def test_identity_explicit() -> t.CInt: pass - -def add_one[T](x: T) -> T: pass - -def test_add_one_explicit() -> t.CInt: pass - -def test_mixed_inference_explicit() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/GenericTest3/temp/14d33679f7fadf1f.pyi b/Test/GenericTest3/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/GenericTest3/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/GenericTest3/temp/14d33679f7fadf1f.stub.ll.dep b/Test/GenericTest3/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/GenericTest3/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest3/temp/6f62fe05c5ea1ceb.pyi b/Test/GenericTest3/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/GenericTest3/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/GenericTest3/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/GenericTest3/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/GenericTest3/temp/7e529fe7a078cfef.pyi b/Test/GenericTest3/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/GenericTest3/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/GenericTest3/temp/7e529fe7a078cfef.stub.ll.dep b/Test/GenericTest3/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/GenericTest3/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest3/temp/_phase1_manifest.json b/Test/GenericTest3/temp/_phase1_manifest.json index 74f16ac..c6153f9 100644 --- a/Test/GenericTest3/temp/_phase1_manifest.json +++ b/Test/GenericTest3/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest3\\App\\main.py": {"sha1": "01d9e58c9dd31a4d", "mtime": 1784652963.6604164, "size": 2196}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest3\\App\\main.vp": {"sha1": "01d9e58c9dd31a4d", "mtime": 1784741370.364283, "size": 2196}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/GenericTest3/temp/_sha1_map.txt b/Test/GenericTest3/temp/_sha1_map.txt index 5310143..28935a6 100644 --- a/Test/GenericTest3/temp/_sha1_map.txt +++ b/Test/GenericTest3/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -01d9e58c9dd31a4d:main.py -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +01d9e58c9dd31a4d:main.vp +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.pyi b/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/GenericTest3/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/GenericTest3/temp/f5522571bcce7bcb.pyi b/Test/GenericTest3/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/GenericTest3/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/GenericTest4/output/42e09c6149524d9d.deps.json b/Test/GenericTest4/output/42e09c6149524d9d.deps.json index 2a27f59..f9587e9 100644 --- a/Test/GenericTest4/output/42e09c6149524d9d.deps.json +++ b/Test/GenericTest4/output/42e09c6149524d9d.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/GenericTest4/temp/14d33679f7fadf1f.pyi b/Test/GenericTest4/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/GenericTest4/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/GenericTest4/temp/14d33679f7fadf1f.stub.ll.dep b/Test/GenericTest4/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/GenericTest4/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest4/temp/42e09c6149524d9d.pyi b/Test/GenericTest4/temp/42e09c6149524d9d.pyi deleted file mode 100644 index 54f2976..0000000 --- a/Test/GenericTest4/temp/42e09c6149524d9d.pyi +++ /dev/null @@ -1,49 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -class Box[T]: - value: T - def __init__(self: Box, v: T) -> t.CInt: pass - def get(self: Box) -> T: pass - def set(self: Box, v: T) -> t.CInt: pass - -def test_explicit_box() -> t.CInt: pass - - -class Pair[T1, T2]: - first: T1 - second: T2 - def __init__(self: Pair, a: T1, b: T2) -> t.CInt: pass - def sum_as_int(self: Pair) -> t.CInt: pass - -def test_explicit_pair() -> t.CInt: pass - - -class Wrapper[T]: - data: T - def __init__(self: Wrapper, v: T) -> t.CInt: pass - def get(self: Wrapper) -> T: pass - -def test_mixed_generic_class() -> t.CInt: pass - - -class Counter[T]: - count: T - def __init__(self: Counter, start: T) -> t.CInt: pass - def increment(self: Counter) -> t.CInt: pass - def get_count(self: Counter) -> T: pass - -def test_explicit_counter() -> t.CInt: pass - -def test_explicit_box_set() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/GenericTest4/temp/6f62fe05c5ea1ceb.pyi b/Test/GenericTest4/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/GenericTest4/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/GenericTest4/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/GenericTest4/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/GenericTest4/temp/7e529fe7a078cfef.pyi b/Test/GenericTest4/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/GenericTest4/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/GenericTest4/temp/7e529fe7a078cfef.stub.ll.dep b/Test/GenericTest4/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/GenericTest4/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/GenericTest4/temp/_phase1_manifest.json b/Test/GenericTest4/temp/_phase1_manifest.json index abbc254..d634067 100644 --- a/Test/GenericTest4/temp/_phase1_manifest.json +++ b/Test/GenericTest4/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest4\\App\\main.py": {"sha1": "42e09c6149524d9d", "mtime": 1784652963.6644833, "size": 3247}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\GenericTest4\\App\\main.vp": {"sha1": "42e09c6149524d9d", "mtime": 1784741370.3625746, "size": 3247}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/GenericTest4/temp/_sha1_map.txt b/Test/GenericTest4/temp/_sha1_map.txt index 7097f45..5d7d5e1 100644 --- a/Test/GenericTest4/temp/_sha1_map.txt +++ b/Test/GenericTest4/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -42e09c6149524d9d:main.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +42e09c6149524d9d:main.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.pyi b/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/GenericTest4/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/GenericTest4/temp/f5522571bcce7bcb.pyi b/Test/GenericTest4/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/GenericTest4/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/HashTableTest/output/02d833b3cf571c5b.deps.json b/Test/HashTableTest/output/02d833b3cf571c5b.deps.json index 928b785..c1bbc88 100644 --- a/Test/HashTableTest/output/02d833b3cf571c5b.deps.json +++ b/Test/HashTableTest/output/02d833b3cf571c5b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "hashtable": "b8c66c8ff44eb874", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "hashtable": "4c1f8f779b98eab9", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/HashTableTest/temp/0035c95a18d4f8e8.pyi b/Test/HashTableTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/HashTableTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/HashTableTest/temp/02d833b3cf571c5b.pyi b/Test/HashTableTest/temp/02d833b3cf571c5b.pyi deleted file mode 100644 index 33275d4..0000000 --- a/Test/HashTableTest/temp/02d833b3cf571c5b.pyi +++ /dev/null @@ -1,18 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import stdio -import stdlib -import string -import memhub -import hashtable -import testcheck - -def main() -> CInt | CExport: pass diff --git a/Test/HashTableTest/temp/067c78e9f121dce3.pyi b/Test/HashTableTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/HashTableTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/HashTableTest/temp/06f53cc594b4ac6c.pyi b/Test/HashTableTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/HashTableTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/HashTableTest/temp/14d33679f7fadf1f.pyi b/Test/HashTableTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/HashTableTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/HashTableTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/HashTableTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/HashTableTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/271ea3decb810db2.pyi b/Test/HashTableTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/HashTableTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/HashTableTest/temp/271ea3decb810db2.stub.ll.dep b/Test/HashTableTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/HashTableTest/temp/2b77d783c41d21d1.stub.ll.dep b/Test/HashTableTest/temp/2b77d783c41d21d1.stub.ll.dep deleted file mode 100644 index b2d63e3..0000000 --- a/Test/HashTableTest/temp/2b77d783c41d21d1.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/HashTableTest/temp/2b77d783c41d21d1.vpi b/Test/HashTableTest/temp/2b77d783c41d21d1.vpi deleted file mode 100644 index 317f934..0000000 --- a/Test/HashTableTest/temp/2b77d783c41d21d1.vpi +++ /dev/null @@ -1,46 +0,0 @@ -""" -Auto-generated Python stub file from hashtable.vp -Module: hashtable -""" - - -import t, c -import string -import memhub -from stdint import * - -_HT_EMPTY: t.CDefine = 0 -_HT_TOMBSTONE: t.CDefine = 1 -_HT_INIT_CAP: t.CDefine = 16 -_HT_SLOT_SIZE: t.CDefine = 24 -_FNV_OFFSET: t.CExtern | t.CUInt64T -_FNV_PRIME: t.CExtern | t.CUInt64T - -def _fnv1a_hash(key: str) -> t.CUInt64T: pass - - -class HashTable: - __slots__: t.CVoid | t.CPtr - __count__: t.CSizeT = 0 - __capacity__: t.CSizeT = 16 - __tombstones__: t.CSizeT = 0 - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT = 0 - def __new__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def _slot_hash(self: HashTable, idx: t.CSizeT) -> t.CUInt64T: pass - def _slot_key(self: HashTable, idx: t.CSizeT) -> str: pass - def _slot_value(self: HashTable, idx: t.CSizeT) -> t.CPtr: pass - def _set_slot(self: HashTable, idx: t.CSizeT, h: t.CUInt64T, key: str, val: t.CPtr) -> t.CInt: pass - def _find_slot(self: HashTable, key: str, h: t.CUInt64T) -> t.CSizeT: pass - def _resize(self: HashTable, new_cap: t.CSizeT) -> t.CInt: pass - def __setitem__(self: HashTable, key: str, val: t.CNeedPtr) -> t.CInt: pass - def __getitem__(self: HashTable, key: str) -> t.CPtr: pass - def __contains__(self: HashTable, key: str) -> t.CInt: pass - def __delitem__(self: HashTable, key: str) -> t.CInt: pass - def __len__(self: HashTable) -> t.CSizeT: pass - def __iter__(self: HashTable) -> HashTable | t.CPtr: pass - def __next__(self: HashTable) -> str: pass - def get(self: HashTable, key: str, default: t.CPtr) -> t.CPtr: pass - def set_int(self: HashTable, key: str, val: int) -> t.CInt: pass - def set_str(self: HashTable, key: str, val: str) -> t.CInt: pass \ No newline at end of file diff --git a/Test/HashTableTest/temp/6446627d4f07a1b5.pyi b/Test/HashTableTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/HashTableTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/HashTableTest/temp/6f62fe05c5ea1ceb.pyi b/Test/HashTableTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/HashTableTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/HashTableTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/HashTableTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/HashTableTest/temp/72e2d5ccb7cedcf1.pyi b/Test/HashTableTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/HashTableTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/HashTableTest/temp/7e529fe7a078cfef.pyi b/Test/HashTableTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/HashTableTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/HashTableTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/HashTableTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/HashTableTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/90c53dd6db8d41cf.pyi b/Test/HashTableTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/HashTableTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/HashTableTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/HashTableTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/HashTableTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/_phase1_manifest.json b/Test/HashTableTest/temp/_phase1_manifest.json index 4e11dc4..4fc78ed 100644 --- a/Test/HashTableTest/temp/_phase1_manifest.json +++ b/Test/HashTableTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\HashTableTest\\App\\main.py": {"sha1": "02d833b3cf571c5b", "mtime": 1782828002.1143503, "size": 7795}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.py": {"sha1": "b8c66c8ff44eb874", "mtime": 1782826619.490043, "size": 9385}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\HashTableTest\\App\\main.vp": {"sha1": "02d833b3cf571c5b", "mtime": 1782828002.1143503, "size": 7795}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashtable.vp": {"sha1": "4c1f8f779b98eab9", "mtime": 1786093272.094484, "size": 9754}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/HashTableTest/temp/_sha1_map.txt b/Test/HashTableTest/temp/_sha1_map.txt index ace46a0..3a19644 100644 --- a/Test/HashTableTest/temp/_sha1_map.txt +++ b/Test/HashTableTest/temp/_sha1_map.txt @@ -1,12 +1,12 @@ -02d833b3cf571c5b:main.py -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -b8c66c8ff44eb874:includes/hashtable.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +02d833b3cf571c5b:main.vp +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +4c1f8f779b98eab9:includes/hashtable.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/HashTableTest/temp/b8c66c8ff44eb874.pyi b/Test/HashTableTest/temp/b8c66c8ff44eb874.pyi deleted file mode 100644 index 85bdb8f..0000000 --- a/Test/HashTableTest/temp/b8c66c8ff44eb874.pyi +++ /dev/null @@ -1,46 +0,0 @@ -""" -Auto-generated Python stub file from hashtable.py -Module: hashtable -""" - - -import t, c -import string -import memhub -from stdint import * - -_HT_EMPTY: t.CDefine = 0 -_HT_TOMBSTONE: t.CDefine = 1 -_HT_INIT_CAP: t.CDefine = 16 -_HT_SLOT_SIZE: t.CDefine = 24 -_FNV_OFFSET: t.CExtern | t.CUInt64T -_FNV_PRIME: t.CExtern | t.CUInt64T - -def _fnv1a_hash(key: str) -> t.CUInt64T: pass - - -class HashTable: - __slots__: t.CVoid | t.CPtr - __count__: t.CSizeT = 0 - __capacity__: t.CSizeT = 16 - __tombstones__: t.CSizeT = 0 - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT = 0 - def __new__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: HashTable, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def _slot_hash(self: HashTable, idx: t.CSizeT) -> t.CUInt64T: pass - def _slot_key(self: HashTable, idx: t.CSizeT) -> str: pass - def _slot_value(self: HashTable, idx: t.CSizeT) -> t.CPtr: pass - def _set_slot(self: HashTable, idx: t.CSizeT, h: t.CUInt64T, key: str, val: t.CPtr) -> t.CInt: pass - def _find_slot(self: HashTable, key: str, h: t.CUInt64T) -> t.CSizeT: pass - def _resize(self: HashTable, new_cap: t.CSizeT) -> t.CInt: pass - def __setitem__(self: HashTable, key: str, val: t.CNeedPtr) -> t.CInt: pass - def __getitem__(self: HashTable, key: str) -> t.CPtr: pass - def __contains__(self: HashTable, key: str) -> t.CInt: pass - def __delitem__(self: HashTable, key: str) -> t.CInt: pass - def __len__(self: HashTable) -> t.CSizeT: pass - def __iter__(self: HashTable) -> HashTable | t.CPtr: pass - def __next__(self: HashTable) -> str: pass - def get(self: HashTable, key: str, default: t.CPtr) -> t.CPtr: pass - def set_int(self: HashTable, key: str, val: int) -> t.CInt: pass - def set_str(self: HashTable, key: str, val: str) -> t.CInt: pass \ No newline at end of file diff --git a/Test/HashTableTest/temp/b8c66c8ff44eb874.stub.ll.dep b/Test/HashTableTest/temp/b8c66c8ff44eb874.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/HashTableTest/temp/b8c66c8ff44eb874.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/ba12ed409d78139e.pyi b/Test/HashTableTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/HashTableTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/HashTableTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/HashTableTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/HashTableTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/HashTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/HashTableTest/temp/c9f4be41ca1cc2b4.pyi b/Test/HashTableTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/HashTableTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/HashTableTest/temp/d089e25a15c6f6e0.pyi b/Test/HashTableTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/HashTableTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/HashTableTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/HashTableTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/HashTableTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/f5522571bcce7bcb.pyi b/Test/HashTableTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/HashTableTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/HashTableTest/temp/f6b51804a0ba8ff0.pyi b/Test/HashTableTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/HashTableTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/HashTableTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/HashTableTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/HashTableTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/HashTableTest/temp/f9d023d1df2bc9c5.vpi b/Test/HashTableTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/HashTableTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/HashTableTest/temp/ffaf70367668b227.stub.ll.dep b/Test/HashTableTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/HashTableTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/HashTableTest/temp/ffaf70367668b227.vpi b/Test/HashTableTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/HashTableTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/IterTest/output/6b8853854d6ef556.deps.json b/Test/IterTest/output/6b8853854d6ef556.deps.json index e7bbdde..a783ef5 100644 --- a/Test/IterTest/output/6b8853854d6ef556.deps.json +++ b/Test/IterTest/output/6b8853854d6ef556.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/IterTest/temp/0035c95a18d4f8e8.pyi b/Test/IterTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/IterTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/IterTest/temp/067c78e9f121dce3.pyi b/Test/IterTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/IterTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/IterTest/temp/06f53cc594b4ac6c.pyi b/Test/IterTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/IterTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/IterTest/temp/14d33679f7fadf1f.pyi b/Test/IterTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/IterTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/IterTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/IterTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/IterTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/IterTest/temp/6446627d4f07a1b5.pyi b/Test/IterTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/IterTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/IterTest/temp/6b8853854d6ef556.pyi b/Test/IterTest/temp/6b8853854d6ef556.pyi deleted file mode 100644 index 66d8d02..0000000 --- a/Test/IterTest/temp/6b8853854d6ef556.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import string -import testcheck - -def test_for_in_string() -> t.CInt: pass - -def test_for_in_char_ptr() -> t.CInt: pass - -def test_strcpy_for_in() -> t.CInt: pass - - -import w32.win32memory - -def main() -> t.CInt: pass diff --git a/Test/IterTest/temp/6f62fe05c5ea1ceb.pyi b/Test/IterTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/IterTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/IterTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/IterTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/IterTest/temp/72e2d5ccb7cedcf1.pyi b/Test/IterTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/IterTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/IterTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/IterTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/IterTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/IterTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/IterTest/temp/7e529fe7a078cfef.pyi b/Test/IterTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/IterTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/IterTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/IterTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/IterTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/IterTest/temp/_phase1_manifest.json b/Test/IterTest/temp/_phase1_manifest.json index fe8294e..9468b8a 100644 --- a/Test/IterTest/temp/_phase1_manifest.json +++ b/Test/IterTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\IterTest\\App\\main.py": {"sha1": "6b8853854d6ef556", "mtime": 1782474645.4172094, "size": 1600}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\IterTest\\App\\main.vp": {"sha1": "6b8853854d6ef556", "mtime": 1782474645.4172094, "size": 1600}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/IterTest/temp/_sha1_map.txt b/Test/IterTest/temp/_sha1_map.txt index d4f1141..cc7f199 100644 --- a/Test/IterTest/temp/_sha1_map.txt +++ b/Test/IterTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -6b8853854d6ef556:main.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -7e529fe7a078cfef:includes/w32\win32base.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +6b8853854d6ef556:main.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/IterTest/temp/ba12ed409d78139e.pyi b/Test/IterTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/IterTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/IterTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/IterTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/IterTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/IterTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/IterTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/IterTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/IterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/IterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/IterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/IterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/IterTest/temp/f5522571bcce7bcb.pyi b/Test/IterTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/IterTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/IterTest/temp/f6b51804a0ba8ff0.pyi b/Test/IterTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/IterTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/IterTest/temp/ffaf70367668b227.stub.ll.dep b/Test/IterTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/IterTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/IterTest/temp/ffaf70367668b227.vpi b/Test/IterTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/IterTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt b/Test/JsonTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/JsonTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt b/Test/JsonTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/JsonTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt b/Test/JsonTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt deleted file mode 100644 index c76c2b1..0000000 --- a/Test/JsonTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib ast.tokens \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt b/Test/JsonTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt deleted file mode 100644 index 789f582..0000000 --- a/Test/JsonTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdint \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt b/Test/JsonTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt deleted file mode 100644 index c19302e..0000000 --- a/Test/JsonTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdio t c \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt b/Test/JsonTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/JsonTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt b/Test/JsonTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/JsonTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt b/Test/JsonTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/JsonTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt b/Test/JsonTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/JsonTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/8a/8a97754e9e3c2b9a.deps.txt b/Test/JsonTest/.tpv_build/temp/8a/8a97754e9e3c2b9a.deps.txt deleted file mode 100644 index 5819b93..0000000 --- a/Test/JsonTest/.tpv_build/temp/8a/8a97754e9e3c2b9a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint stdio memhub json string w32.win32memory win32mem testcheck \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/_sha1_map.txt b/Test/JsonTest/.tpv_build/temp/_sha1_map.txt index ba24654..ef39fe5 100644 --- a/Test/JsonTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/JsonTest/.tpv_build/temp/_sha1_map.txt @@ -2,11 +2,11 @@ aa246c6e6aa30484:includes/atom.vp 6ddf430432a0e373:includes/json/__init__.vp 240a9a4157959a9f:includes/json/__parser.vp 20cd49775c100a38:includes/json/__writer.vp -f9d023d1df2bc9c5:includes/memhub.vp +04e5fe47ff2af528:includes/memhub.vp f5522571bcce7bcb:includes/stdint.vp 285b6aa29a34754d:includes/stdio.vp 6c658cc728d0bbf4:includes/stdlib.vp -ffaf70367668b227:includes/string.vp +928c0ff6d8c69ec9:includes/string.vp 748d0424e8976fa0:includes/testcheck.vp c9f4be41ca1cc2b4:includes/viperio.vp fc980acec33d69a7:includes/w32/win32base.vp diff --git a/Test/JsonTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt b/Test/JsonTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt deleted file mode 100644 index 60b345d..0000000 --- a/Test/JsonTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdio hashtable \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt b/Test/JsonTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/JsonTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt b/Test/JsonTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt deleted file mode 100644 index da1157e..0000000 --- a/Test/JsonTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt b/Test/JsonTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/JsonTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt b/Test/JsonTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt deleted file mode 100644 index 3d26bad..0000000 --- a/Test/JsonTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.visitor ast.lexer ast.parser ast.parser \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt b/Test/JsonTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt deleted file mode 100644 index 6ede9fe..0000000 --- a/Test/JsonTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt b/Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt deleted file mode 100644 index 6803c16..0000000 --- a/Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string atom viperio stdio stdlib \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi b/Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi deleted file mode 100644 index fb3ad3b..0000000 --- a/Test/JsonTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,97 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - -@t.CVTable -class MemManager: - __provides__: list[str] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def calloc(self, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self) -> 'MemManager' | t.CPtr: pass - def __exit__(self): pass - def alloc_buf(self, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass - -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemBuddy(MemManager): - __provides__: list[str] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def mark(self) -> t.CSizeT: pass - def reset_to(self, mark: t.CSizeT): pass - def reset_all(self): pass - def _fl_push(self, order: t.CInt, block: t.CVoid | t.CPtr): pass - def _fl_pop(self, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self, block: t.CVoid | t.CPtr, order: t.CInt): pass - def _is_valid_ptr(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self): pass - def _unlock(self): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self) -> t.CSizeT: pass - def stats(self) -> t.CSizeT: pass - def free_count(self) -> t.CSizeT: pass - def free_bytes(self) -> t.CSizeT: pass - def used_bytes(self) -> t.CSizeT: pass - def dump_stats(self, label: t.CChar | t.CPtr): pass - def self_check(self) -> t.CInt: pass - diff --git a/Test/JsonTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt b/Test/JsonTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt deleted file mode 100644 index 5dd68c7..0000000 --- a/Test/JsonTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.exprs ast.stmts ast.astaux ast.lexer \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt b/Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt deleted file mode 100644 index 0ec8cde..0000000 --- a/Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t c \ No newline at end of file diff --git a/Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.vpi b/Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.vpi deleted file mode 100644 index 2e97004..0000000 --- a/Test/JsonTest/.tpv_build/temp/ff/ffaf70367668b227.vpi +++ /dev/null @@ -1,54 +0,0 @@ -"""Auto-generated Python stub file""" - - -from stdint import * -import t, c -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - -ascii_lowercase: str -ascii_uppercase: str -ascii_letters: str -digits: str -hexdigits: str -octdigits: str -punctuation: str -whitespace: str -printable: str diff --git a/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json b/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json index 5a7b3ab..8d25974 100644 --- a/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json +++ b/Test/JsonTest/output/8a97754e9e3c2b9a.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/JsonTest/temp/0035c95a18d4f8e8.pyi b/Test/JsonTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/JsonTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/JsonTest/temp/067c78e9f121dce3.pyi b/Test/JsonTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/JsonTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/JsonTest/temp/06f53cc594b4ac6c.pyi b/Test/JsonTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/JsonTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/JsonTest/temp/14d33679f7fadf1f.pyi b/Test/JsonTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/JsonTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/JsonTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/JsonTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/JsonTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/20cd49775c100a38.pyi b/Test/JsonTest/temp/20cd49775c100a38.pyi deleted file mode 100644 index df04de7..0000000 --- a/Test/JsonTest/temp/20cd49775c100a38.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from json.__writer.py -Module: json.__writer -""" - - -import t, c -from stdint import * -import memhub -import string -from stdio import snprintf -from . import JsonValue, JSON_NULL, JSON_BOOL, JSON_INT, JSON_FLOAT, JSON_STRING, JSON_ARRAY, JSON_OBJECT - -def _write_char(buf: t.CChar | t.CPtr, pos: t.CSizeT, ch: t.CChar) -> t.CSizeT: pass - -def _write_str(buf: t.CChar | t.CPtr, pos: t.CSizeT, s: t.CChar | t.CPtr) -> t.CSizeT: pass - -def _write_string_escaped(buf: t.CChar | t.CPtr, pos: t.CSizeT, s: t.CChar | t.CPtr) -> t.CSizeT: pass - -def _write_value(buf: t.CChar | t.CPtr, pos: t.CSizeT, val: JsonValue | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CSizeT: pass - -def write(pool: memhub.MemManager | t.CPtr, val: JsonValue | t.CPtr, pretty: bool) -> t.CChar | t.CPtr: pass diff --git a/Test/JsonTest/temp/20cd49775c100a38.stub.ll.dep b/Test/JsonTest/temp/20cd49775c100a38.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/JsonTest/temp/20cd49775c100a38.stub.ll.dep +++ b/Test/JsonTest/temp/20cd49775c100a38.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/240a9a4157959a9f.pyi b/Test/JsonTest/temp/240a9a4157959a9f.pyi deleted file mode 100644 index c230800..0000000 --- a/Test/JsonTest/temp/240a9a4157959a9f.pyi +++ /dev/null @@ -1,38 +0,0 @@ -""" -Auto-generated Python stub file from json.__parser.py -Module: json.__parser -""" - - -import t, c -from stdint import * -import memhub -import string -from . import JsonValue, JSON_NULL, JSON_BOOL, JSON_INT, JSON_FLOAT, JSON_STRING, JSON_ARRAY, JSON_OBJECT, null, bool_val, int_val, float_val, string_val, array, object - -class ParseState: - src: t.CChar | t.CPtr - pos: t.CSizeT - len: t.CSizeT - pool: memhub.MemManager | t.CPtr - def __init__(self: ParseState, src: t.CChar | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(s: ParseState | t.CPtr) -> t.CChar: pass - -def _advance(s: ParseState | t.CPtr) -> t.CChar: pass - -def _skip_whitespace(s: ParseState | t.CPtr) -> t.CInt: pass - -def _expect(s: ParseState | t.CPtr, ch: t.CChar) -> bool: pass - -def _parse_string(s: ParseState | t.CPtr) -> t.CChar | t.CPtr: pass - -def _parse_number(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_value(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_array(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_object(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def parse(pool: memhub.MemManager | t.CPtr, src: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass diff --git a/Test/JsonTest/temp/240a9a4157959a9f.stub.ll.dep b/Test/JsonTest/temp/240a9a4157959a9f.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/JsonTest/temp/240a9a4157959a9f.stub.ll.dep +++ b/Test/JsonTest/temp/240a9a4157959a9f.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/271ea3decb810db2.pyi b/Test/JsonTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/JsonTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/JsonTest/temp/271ea3decb810db2.stub.ll.dep b/Test/JsonTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/JsonTest/temp/57288496f7c2d1ad.pyi b/Test/JsonTest/temp/57288496f7c2d1ad.pyi deleted file mode 100644 index 0624d9a..0000000 --- a/Test/JsonTest/temp/57288496f7c2d1ad.pyi +++ /dev/null @@ -1,71 +0,0 @@ -""" -Auto-generated Python stub file from json.__init__.py -Module: json.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -import viperio - -JSON_NULL: t.CDefine = 0 -JSON_BOOL: t.CDefine = 1 -JSON_INT: t.CDefine = 2 -JSON_FLOAT: t.CDefine = 3 -JSON_STRING: t.CDefine = 4 -JSON_ARRAY: t.CDefine = 5 -JSON_OBJECT: t.CDefine = 6 - -class JsonValue: - vtype: t.CInt - bool_val: t.CInt - int_val: t.CInt64T - float_val: t.CDouble - str_val: t.CChar | t.CPtr - next: 'JsonValue' | t.CPtr - key: t.CChar | t.CPtr - child: 'JsonValue' | t.CPtr - child_count: t.CSizeT - def __new__(self: JsonValue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def type(self: JsonValue) -> t.CInt: pass - def is_null(self: JsonValue) -> bool: pass - def is_bool(self: JsonValue) -> bool: pass - def is_int(self: JsonValue) -> bool: pass - def is_float(self: JsonValue) -> bool: pass - def is_string(self: JsonValue) -> bool: pass - def is_array(self: JsonValue) -> bool: pass - def is_object(self: JsonValue) -> bool: pass - def as_bool(self: JsonValue) -> bool: pass - def as_int(self: JsonValue) -> t.CInt64T: pass - def as_float(self: JsonValue) -> t.CDouble: pass - def as_string(self: JsonValue) -> t.CChar | t.CPtr: pass - def __len__(self: JsonValue) -> t.CSizeT: pass - def __getitem__(self: JsonValue, key: t.CChar | t.CPtr) -> 'JsonValue' | t.CPtr: pass - def __setitem__(self: JsonValue, key: t.CChar | t.CPtr, val: 'JsonValue' | t.CPtr) -> t.CInt: pass - def get_item(self: JsonValue, index: t.CSizeT) -> 'JsonValue' | t.CPtr: pass - def _pool_alloc(self: JsonValue, size: t.CSizeT) -> t.CChar | t.CPtr: pass - def _append_child(self: JsonValue, child: 'JsonValue' | t.CPtr) -> t.CInt: pass - -def null(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def bool_val(pool: memhub.MemManager | t.CPtr, val: bool) -> JsonValue | t.CPtr: pass - -def int_val(pool: memhub.MemManager | t.CPtr, val: t.CInt64T) -> JsonValue | t.CPtr: pass - -def float_val(pool: memhub.MemManager | t.CPtr, val: t.CDouble) -> JsonValue | t.CPtr: pass - -def string_val(pool: memhub.MemManager | t.CPtr, val: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass - -def array(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def object(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def array_append(pool: memhub.MemManager | t.CPtr, arr: JsonValue | t.CPtr, item: JsonValue | t.CPtr) -> t.CInt: pass - -def object_set(pool: memhub.MemManager | t.CPtr, obj: JsonValue | t.CPtr, key: t.CChar | t.CPtr, val: JsonValue | t.CPtr) -> t.CInt: pass - - -from .__parser import parse -from .__writer import write \ No newline at end of file diff --git a/Test/JsonTest/temp/57288496f7c2d1ad.stub.ll.dep b/Test/JsonTest/temp/57288496f7c2d1ad.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/JsonTest/temp/6446627d4f07a1b5.pyi b/Test/JsonTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/JsonTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/JsonTest/temp/6f62fe05c5ea1ceb.pyi b/Test/JsonTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/JsonTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/JsonTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/JsonTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/JsonTest/temp/72e2d5ccb7cedcf1.pyi b/Test/JsonTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/JsonTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/JsonTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/JsonTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/JsonTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/JsonTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/JsonTest/temp/7e529fe7a078cfef.pyi b/Test/JsonTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/JsonTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/JsonTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/JsonTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/JsonTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/8a97754e9e3c2b9a.pyi b/Test/JsonTest/temp/8a97754e9e3c2b9a.pyi deleted file mode 100644 index c3e417c..0000000 --- a/Test/JsonTest/temp/8a97754e9e3c2b9a.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -from stdint import * -from stdio import printf -import memhub -import json -import string -import w32.win32memory as win32mem -import testcheck - -def test_construct(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_build_structures(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_parse(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_write(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_nested(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_mpool_reuse() -> t.CInt: pass - -def test_escape(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/JsonTest/temp/_phase1_manifest.json b/Test/JsonTest/temp/_phase1_manifest.json index 9e66511..764b017 100644 --- a/Test/JsonTest/temp/_phase1_manifest.json +++ b/Test/JsonTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\JsonTest\\App\\main.py": {"sha1": "8a97754e9e3c2b9a", "mtime": 1782828053.1672907, "size": 14025}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\JsonTest\\App\\main.vp": {"sha1": "8a97754e9e3c2b9a", "mtime": 1782828053.1672907, "size": 14025}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.vp": {"sha1": "6ddf430432a0e373", "mtime": 1785424554.7204792, "size": 7707}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.vp": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.vp": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/JsonTest/temp/_sha1_map.txt b/Test/JsonTest/temp/_sha1_map.txt index be56dc6..ddc13dc 100644 --- a/Test/JsonTest/temp/_sha1_map.txt +++ b/Test/JsonTest/temp/_sha1_map.txt @@ -1,14 +1,15 @@ -14d33679f7fadf1f:includes/testcheck.py -20cd49775c100a38:includes/json\__writer.py -240a9a4157959a9f:includes/json\__parser.py -271ea3decb810db2:includes/atom.py -57288496f7c2d1ad:includes/json\__init__.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -7e529fe7a078cfef:includes/w32\win32base.py -8a97754e9e3c2b9a:main.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +20cd49775c100a38:includes/json\__writer.vp +240a9a4157959a9f:includes/json\__parser.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +6ddf430432a0e373:includes/json\__init__.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +8a97754e9e3c2b9a:main.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/JsonTest/temp/ba12ed409d78139e.pyi b/Test/JsonTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/JsonTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/JsonTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/JsonTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/JsonTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/JsonTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/JsonTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/JsonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/JsonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/JsonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/JsonTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/JsonTest/temp/c9f4be41ca1cc2b4.pyi b/Test/JsonTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/JsonTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/JsonTest/temp/d089e25a15c6f6e0.pyi b/Test/JsonTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/JsonTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/JsonTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/JsonTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/JsonTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/f5522571bcce7bcb.pyi b/Test/JsonTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/JsonTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/JsonTest/temp/f6b51804a0ba8ff0.pyi b/Test/JsonTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/JsonTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/JsonTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/JsonTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/JsonTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/JsonTest/temp/f9d023d1df2bc9c5.vpi b/Test/JsonTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/JsonTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/JsonTest/temp/ffaf70367668b227.stub.ll.dep b/Test/JsonTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/JsonTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/JsonTest/temp/ffaf70367668b227.vpi b/Test/JsonTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/JsonTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/33d64eeb99369a85.deps.json b/Test/LLvmLiteTest/output/33d64eeb99369a85.deps.json index 2fe893c..c602097 100644 --- a/Test/LLvmLiteTest/output/33d64eeb99369a85.deps.json +++ b/Test/LLvmLiteTest/output/33d64eeb99369a85.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "__values.__types": "63d0e4548b4c4672", "__function.__types": "63d0e4548b4c4672", "__module.__types": "63d0e4548b4c4672", "__module.__function": "874bac141c97bae9", "__builder.__types": "63d0e4548b4c4672", "__builder.__values": "f9e36e2cd6fa659f", "__builder.__function": "874bac141c97bae9", "__verify.__function": "874bac141c97bae9", "__verify.__module": "40c03bc03431ef81"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "__values.__types": "63d0e4548b4c4672", "__function.__types": "63d0e4548b4c4672", "__module.__types": "63d0e4548b4c4672", "__module.__function": "874bac141c97bae9", "__builder.__types": "63d0e4548b4c4672", "__builder.__values": "f9e36e2cd6fa659f", "__builder.__function": "874bac141c97bae9", "__verify.__function": "874bac141c97bae9", "__verify.__module": "40c03bc03431ef81"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/40c03bc03431ef81.deps.json b/Test/LLvmLiteTest/output/40c03bc03431ef81.deps.json index 5b49c9f..6d5f6b5 100644 --- a/Test/LLvmLiteTest/output/40c03bc03431ef81.deps.json +++ b/Test/LLvmLiteTest/output/40c03bc03431ef81.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "__function.__types": "63d0e4548b4c4672"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "__function.__types": "63d0e4548b4c4672"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json b/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json index a133684..19e3aab 100644 --- a/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json +++ b/Test/LLvmLiteTest/output/5b8cf12a5862b640.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "llvmlite.__types": "15f1ded02f3aa5bc", "__types": "15f1ded02f3aa5bc", "llvmlite.__module": "21a7fcfc665f75ef", "__module": "21a7fcfc665f75ef", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "llvmlite.__function": "89b3965176cd2407", "__function": "89b3965176cd2407", "stdlib": "90c53dd6db8d41cf", "llvmlite.__builder": "946e087da91aaada", "__builder": "946e087da91aaada", "llvmlite.__init__": "95394ca8da0f655a", "__init__": "95394ca8da0f655a", "llvmlite": "95394ca8da0f655a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/63d0e4548b4c4672.deps.json b/Test/LLvmLiteTest/output/63d0e4548b4c4672.deps.json index eeeedab..1d85b90 100644 --- a/Test/LLvmLiteTest/output/63d0e4548b4c4672.deps.json +++ b/Test/LLvmLiteTest/output/63d0e4548b4c4672.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json b/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json index 2953ce4..262ff8f 100644 --- a/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json +++ b/Test/LLvmLiteTest/output/6b3bc463fd044545.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "__function.__types": "63d0e4548b4c4672", "__module.__types": "63d0e4548b4c4672", "__module.__function": "874bac141c97bae9"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "__function.__types": "63d0e4548b4c4672", "__module.__types": "63d0e4548b4c4672", "__module.__function": "874bac141c97bae9"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/874bac141c97bae9.deps.json b/Test/LLvmLiteTest/output/874bac141c97bae9.deps.json index eeeedab..1d85b90 100644 --- a/Test/LLvmLiteTest/output/874bac141c97bae9.deps.json +++ b/Test/LLvmLiteTest/output/874bac141c97bae9.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/_shared_sym_includes.pickle b/Test/LLvmLiteTest/output/_shared_sym_includes.pickle index 73aec0e8eb849c88824bc0fe405ae29d572e346f..ff278cc5be78ef41822939464d61b5389cea9bbe 100644 GIT binary patch literal 869210 zcmeFa33y}KRW9o4@?5TY=o-4ZtLLijj=RcsO+DMPT%|g)?6Tw6zG0h;0ReSzEn0dg60zXV8tKnO`LaCzZ|0Po)S7~bP?87_Hy zpFuj(Ia`*t&R%j^r@pVcCEMkrf33CGUVH7e{`IczH@dpEbkRR|O2>;s+1ty}bW+YK z(WF``?n@@3!?AQm9S&<>kLX|CW_|ae(usGM=)dik^?#hz-t{E1E4fUmcwhNfTvSr= zq?#Qz{y(8)$rA>Ak=rY3Ahnn-m4DGzIhQRJcbESm{fY338Y>n1%P+Mb4$;RB%2D#0 zcfn>24*nbh1?JUQH+B zrPoVJahLu>^atdWvaD*qv+^%9YA&BimC%qbOSBX1A+IPtw7!o7rM8A4i?a%0yz*R=%$jU zPwY)5QfewqKTG!_)js*!w&ip@pHww%(D!}I>T*=gQ0p!3CeMkj+|HqNN=`?y8l(0z zK)$%5#BONf8j7onX&;+HulB4PPZKAR5`Zr9| z3F*Q~rBk<;)A=m<`5hVKcM(yi$hsh=xIM1Ml1fI6>tZ3#+aA*mNc)2JGXu*+6ml{_ zEFTRP`=^Mx8p4sfzN<7>D()m7%8-DPOepkGJ2PrFom?fqSN{fGPUNSuxlCRYKp%NS zKMeU%s-=7?kxr4Tpgsv6Pb+SlaAzxk~ z|9=fdQLKRCA*2@2VgW4`5GtTV0pT@tqkxhHv|K=`0!o{hh&qku=|0raD}?GV)1vNy z&_l%e=t~wo&L=CB2SD6sAa?eE>tHop5(m646y$}s=A_U9L!tX+S;?iB6EQibW^*#x z2<5CwR;H7?UkB`QL$k%LiE~eotwno#szlz7j*z#ip=_t$jNW4GE+<3i)Cn{~>~pMu zP8ZOb0y^8U=dUN`0$r5VEAA<>;;5KMU9=*GnCpEqhA-Gfe8Fr(z92#rw-5}jE(a4i zReO_Dmsb`PWn}D3?2LLwQASUWog0I45j)Bj6-%lL*;btt-k>R=H=8q~CrJQug$6ce z#D;7J6(R=J)nF*mq}u*yLmSi{V(P!@qN%gC2#ZHS8C8kPi)t!H;u;P!s5lhOgP7Ze z({DmwVR?{_Rro$|h0_3-gv6f0n+dht+cFLSDg02`!z;;~%I&P2Ovi4>iy4(~m0RM5 zGh>ywf%<+gW@zgCa1h7xpJWMk)!{uPhwFHgjRE>V3 z5@h{UlgC|}u_RdvkVEC(YEihFSwO#6k-;Bu$N=hKU26_5ovzV8R1&fOlLJ1~F|!7~ zTW3vth}K}2b@aNwdL6iW{=&~|k}%S?mg5(m;1deeaiqpFTsxEC7)v0C zPasesy6!DIBTlcvy2*p}Dy*A4Vz0uw$;0+4teZS`ufn>?1Nd&bTLYg?=#3`lHBVC) z$AiH{iWHoL(s915FMkS%Bn?`;89l9@SI&*9=i|}QlcP$!>SmN=qf?}i!&z(S$zq=` ztXG|suNW^Ct7PGH;~3H|9Jj1nyTlQBwtR!VR$ckQNJtjDS2F6VvsCa`@9F9?uHQOC z7(FqRAk}1!cbc6ijX_cYm6JV@Sn8yDNx`K`Dm^_5p`~!eZJKcy)vt~+A)d9@M+-e8 zb!sw61H*?W2}*WNa`uzPhqJMSs$6x8uY z+fUT!n8e2yNmZBgr>IgheiyZd&8g>NcSK1fJ6#ApKCPX_dBvY6+Go||c^kQ<)}D3Z z8n_T4B~@+M$VY3Je1m>{b1(SW#?HT+S_nP92G6~lS_%U}a^CeMLC$r(vyC2eH?u+D zUt@;7-X_RuIBPKI-A|emNt&6q3l6t4<7_$E;@_u-T#g>Q1|gHy<}&1Vo$RX5^7slh zaB+yOO5PxcS$tb8WYR-kR`Lco*Wr(dg=@9xjS<%3uZu-ISW&R^F;Uowo!kgnyj8R9 zz|CC(POHn)N{WyV@b&rerzP%h^%C&pn0k6q9Xq?YIHD|`9ywQY2{xbDtUQVB0}(Hu)agAq(0aSOAQ2gFgn!W`d| z#PR)nH;GgX9)#n?-t^)kvz;AxL~vdlM2RIN-&82EilaU{Lk=RZ+^D^WlSvfB(6bTR#u#y zlvdd`A4uiStyh4d^KjkO!QYOuFbHQ?XNQ5s-h5W0&U5sVn|@hr)6sXl8HkLI`bl&& zk&hEnIY%2479PD=8y?|bpoaq|_b==-v|OFr;Bj_fS-EA>7&-wY?!DVbynCJEx;0W< zcg%(2x-}cq7XD@rkvmv%U2(9y*=Lo4OW9#j9db#0Uz1#I`X97a`=qwEU zmqa_PLJeo5SaT%aY)A2WW6J~o05w3zbGNrrO28w-D1~FFT-${lLC!DQ_VF;a(4eY13(7Abkk#X*TOz4W2QgWVg#9k-J zWYC}y`c#b-tsWIxXDnfk_=3?ifi4Izw}`z116!5cbx@qH^CVWj!($bfsi~AobgG(U<6}H!VTuEUJf*YpFOanLwe zf!i_X4b#>;?bvasqU+8%eH^xd?u0{##l$=5EYhnh8~C(E8-J|z@6AQ2O*Q`Xt(qeo zIg;G#rM`+gee)@On5GXYnPX3soF*pX=lV%RCrKoQ&>9`!*;DFCWpr^d79CZii#2qB z&B?H4mg1T=OOe%r(obYaZl*H~mauga#^!aAmCSv;i8&1vJ2=c&CDk%LVQubdnevcD z>QXg`)j8T;t2Y1>s9ehVlhqx~Nk}L0MQU*3XKeNoyC7FdT+Ty~RXCJC;3$y>t89qO zT%(kio7Wu3s0&DQP*V)TrFEQyah*tgM7^uTM#_9097AWD0KJ9*@(5db-GQlp%dB0e z{o2z%$BsaA+d%r?k8RRu-DA6Eibn z=J&Dfh~$$(IIUnM0~V$`fR>zz77 zHcY2|?ejWTT1y6mwP#W^*wGON*gw(1(n>NYu$P5_#s5s}OPqB2f9Wu3#0dp6;=4F5 zD7fhHvHjEk(vj|mL)uS)1_Ocy=N5Zc(}_51``Iz5#h|n?14yskS7riY{1W;jN7H>k zhj=d>#GdfQnK?112|ASprRg1&(<*&hhf3>%fVA1KK^3;S_UmX_*87r<_YfT3-g$w# ztptp9bbMLIOiQ1DbUdJA7N+D~<)~4E%~Ez$2Yv(&cz?do&e`G3d(ik8RXH zrX!|=)WVJD)gWLjaIhz{#eAA^J1J2^8y5fqeQ?ek5h^HEA>;I!#H zse`3s0D<<_UQMs(g!m-F38pEQFkm{OeNIPv91d-thW6AMF>nWTxXiTbw2t=#G+si0 zAY#iY8hDwR)z@^qbl@S7HS78%OdlfgQjR-Edrs?kDQh|q-hSPlM+B|kLBpU&SS$El zI^w6`5OvKSWg0CrPuRfmMgx)y6O6|4)YWo%w7sp&{}0@DE>mnNrx5yZ8sWD zLF*JV53v8Bk}+k zfUoO-&%*&8(6?G)h}X@MV;%A{z>ozlV;ypxb^Hz;^0UB@1ukSAa-Ef2)FD3y2f2sd zg@_52i~3Cn>uCE?9qaROSbHf}LGdz4I?~cG=Hd3^I@%Y2(F%&14YbVT?XT)+>EsTe z*jcNE6BkqtXxe2*m0#2WzXS((KsRQAJCb3~tWEgqI^=O+$U=7{3c1dX^!GaC2{_32 zB*ge;{QdNF>vR{ib-Q*P^ub}=nh@lZ@qb`}+^d6}gaj$b72{8{Kt8O4^h1IamA&`^ z3*@K{ataRQJ$XS(l9^fb=@>7-VceP*wIrE^PhlP8MM#jMmLxN$7}G%pAVG>+lFXKm ztPb)L9LQd+!iijuil}fpx0SI|eus`zg2UMt76_EwtIy^#lZnMe#y#_gbi6@0yaOb< zoeWG($%0h-5sJtu2>MYS>NFhG-ULZni>h8@275oN;|#&!>?1f&oe>3;8SwpQ9q0@! z(9sc5K$$_`AL>A7VS%0*69tqR_uiZjmxW!0sK| z(K8H;RNN|M#)12Eq!D1G;+82h7<@!WIuD1mmyQA#<&K!a;Fyl{3LMV9tVp2D&}dQz zdKC`nz)CI?Ct;~5oid?Dbg0+hp!O5TOVA2JO0xEWRE`Asi~v8bA?l!E(wS7{2Hq2Jeaw66f7rC@~}Yu=>kc&Fpr_vt_v;DC~G ztn~6vkY4f6vylF{j`USvq~b!R&#{nxN=Nz{AkszJ9wf|qCs`@&&*?~IIHUs_QgP-x z&w~0D9qL=5p^CHLMHbY*)S)WSP{qakH(5~sQHL6ZgF2`i@QAR*y2irVw^KW_#^A8_ z$P?*wQb?{FJ>|Ha-m7Db!(pUUsU$KSCY7^7fHJugi&amSBuWhoRKY@NaShC(iaKzL z(XCyqeYhk6a%65Zki%1D7ONjENr0T0=A&t4sTd>w0887|kCr4r=1fXLPOY4x7G~x@ z!~$-6x+DP-XqsXd#-oWp!2(|WXo*Z+2J>sC%texE;@@Baw>@2w0J$_xv5O;KWF^zf zo=tzWPW2D8lMNYbTpYP3vumqZ^K3~1B-k{c-3Fe`GH&D9k_5=OY2p?~yoq}#&5A>+ zr;OWpwj=@aZ_<$#bT6ZoxWZ^S@c|Ze`{N}EkdM>!ZNRjgWyhvJSCRnvIZZohG*C}$_W$bxQvyd(iqcbaD-fefDbItzR4!zBrjz;l-wtcz7VW`TEj zz9a$ic$$VMl-v@(g9YFIcu4{z^(;$YEc_x1zQgk+36R>;+~9;UeBzI?pjSUyk^p%= z&3#53-6#Gy3wF)3B?*x2(|mRtNI%O#tnq9~0;K;mos3WxQ2cu=mD?XLNq|(KW_o~z z@WRqj{|5`a?dg&PNDOK|y)FEp+B8CXcq%_#k^s3v&DGup%Fyy^H=Zp?faIa3&P8&F z;@ynPva-(0PnRS>E>TnG;wVM&LoDPq&z2-WVo~!5A&_4bkFtQ*K3tLjSw_u=3nUxG ztTK-Bm74i*NdjaXHP^XL)F_5{6tl`Y%Im!RbV&kaAFaYJs>P30=TVKFK3$RknMkX! zi|YJi6@FA>r%#t8Kvq&Sl+>+G5IHGkRe}`lkC!AshEns$NbXey^(V8s$jTX6{n3&H z$X06ZtK`w5I+j^IW#u@|c(x<~GM8F#i}G-+7Beeu-M;~{m|Ad)@@}k-Gb?W0w*fMm znz%LIH8Is9tOm3)ZsXaK1W0jeMsW1mq82#w3cdE>k_1S4YJIq?D`sa zg$DJFuC6Uz^bcArprryr^=BtrMIdUmvl`c`M4&HsK!#K^j3eR~#%YC*GD_{sVO;s? zk_1SXYQ|C8iWioX8)kvGKVFgmxl=8V7sqskUu*!q@pwrBBvQ4Y7e~X0XB$9oJYJFj zSyfH++D0qP@|E?_R~|1(fE26c>prmyKf{9W@O()E34{OFEcg!3mn1+QSL^cy z?sWg$2>$X;2T1BVV3gHCbGsI;50)fAidVC%4xH(=+|Q>yS&{%5U(1+9xproPw(7}} z1V{i|ezK@^4Kq1g^<+r`Irgj{5Q-J z0^8Fi36P@J@^o>8ILs*3_H;=CWUaM4T^vIWGg`GhU6KHaY|W>)h0nI^>B~=-BtULk zGxgIRiraFLSmp7O1ju)5MK5m2GecSX<0T1@1K0X^af_ZA)Y=~}Nr1e#<~A#mHFn*| z)_k}m0W#&9{;n;Axn+M>e!3(9lINO{B_UaD2ZwGsvb8*4k^mWX%|%DzJ8?X-I7u1r zoaia+kC!AseqB@hbh{A<{|*bj!}BExkZspo`65Yo@%OOM+nz2-fZV(0)7wJ9TlRY8 zr%Mtb9k03U+QZ6Qj`Avxmn1-nUMqTWQ6BSV+5UJ*0;KIVAKxDK-m>m1kC!AsDqqv% zwu#ZVyx&`%FG+y>zE$|e89%fA%i;Nw1W5W@^?Y%M9A*oc!}BExkO_FVaksA9A3Py& z(dh$75+FaYSw{v<6I?DLGaf8SfP}%ly4rGuiPKMB_6KI4W9V?*I1$1T&ot2K|qv!wues2LCETBULbhv|F5AaiWQm=HhOl=;gc2W zeX;=*EY8NCS(wkNne0MD%`7KE>aBcsVN%WB$fZ{nA{ix>oxSZN-^=C}g2C10U?Qh# zZ*uDL%EHLG)6p}EGICxS9Xoq^EIz!tk|?Zf^ycd&2&+I(7W;huTPx{IuJoZ2%YilShUzYM;`TSF z8zN-Zt+}DaGfMQ_`E%zNM^BHPR?m$>xuO1S%3W(Cn;ofIF^q3SuuCeD71^;iM+ugH z6vicWujF&tRze_SXYwK-wBF9-6r0s`ij-9yXlLqK$wL{dFO@4@K+J#W+b|6#f zU0h7&v#6E5#Iy!)GjZQ(P)>IsOVH9~>ERZlPt8}HG($|o9Po2AB;raWKq1!(Lej%- zBmnSR30lTU5378V06gj%l5pd|YkCE91MyNJ4dpjERtg=}1>_^NtMv4+D`(Ui10iqW z&Z!-pqNRhrfb2zUUm<&ntEW}`Uo}74bW{a+Fw-~)>5jq++zi93k7s!60ZTp^_mX$c zmj`tZsDK9%Qw}X3NAL*^xw)BCoks9*l~hjgNd++GHX^OoBX2yfAvYtfYkbH7W6U0U zJDKJ>Y}CCht84G{a+2TQHFr6=tR$1^7#BbzdN%jLdZ#J$l{!gQsmnW5m!imzE)XG+ z>(S%r61k+%=D4EROUWnT9x5I&9`+EIG&L? zUd-3^HFSXNjeB9PB{OR4c44`e^lZZ5;#}vdy6L!+j+h0qiSEUWsl1w2o~o8}{ghfU7Y9{yRS0fZLy`ZFhG;eBdCL z;{){hwD_NxIoHnLT7HdxQ)?=}wo}Q*5(zn(zNuznN|x`a!-W)of@)u5z;7*!bbjPq z?BwF&nfSTbne%Gwyn9)s`ZFX9(dAcGz(w~Py67l<{(qt`-RN7W4|cm@Cu%N7+7RH@ z1O5XYD&@)tg4!ETEG0OLz4%tbpX(SYBR&wu0i@mnhxzw9OiFwY1v4EZ*CW8%yyuYS z*C@X|5X@~W`BW^IS8|DT3UF!e(ScGTdmx~LHxX%V%C0Ce$c^eD9VaEO2f{g^)r=|8 zBqYoc9VTU|2ZBkWt4wU=HkZko_b@g0`3)3BohFyMtlPf2CA6VNx(w@HW`MQ#G@VhU zC2_84UC;Nk`T{krD}32BPwVVPUXBzJEp!9YdLLQqDItqpOC^oa9%QZDt=SpS?Y&sO6)r^3K5L;dW4gk4{D4GZW*C@G0Rml|oCgH!(nLS`yyqi`$E!YH7d|y^s zCTtZMSk0riu;PB|4)oSJ2Y1kf+Cw(AYn5^vH}0pUs$e>&5uk|G-pt1vn#)B@C@KtfU^Z00ki;`_(5)Ze{%XG<8#(w2J%jS)gg(tHywpjJIw)j zdKbeh)^xP@0G!_Gc@I3;^Kv~k2M}$wKM1V#6~0qGf1Vd&cfaeR{D%RxPJ+9v+FEwM z9MPSkSzT>kZz9C!?d9s|q|c*p7SgX<2OqHc*_z5#MoqU+JRx+V>J-EbZtNUX%F7eH+!exblsC(NpiMIntQinNuPND z>?V^2=%|6ZWj+uN-fjmQ{Hkvh&Ik^WY+oX^G~Bl4k|OgHXbmUsU3u2;nyCI1ZRixK zk%Q$END^T8$i8ZOfNmlwGM+CxlI1A#wGL{UB);g9eM2CyHXN-!d9#5gwMU#k+#XZQpISR!v(JFZsB<8Sgo2P_J= zKyS55&@q!>x{d9Jxg029m2`P^2rib!BYdI&EFLb4LU0W+zDh(<@t`mB2?ns3)?6*Z zYHIO2t0eLsK8XMpmzolx0hp^brufY&N&Ez#BmnCzEsMr&QGC8i6u-+S3cwOXi%}4} z;JSCJo1Qi|mH&rN5`blSR!In~&cg?faBZ)ErD~=m+^tx{&l2F}!Cv?U?VV{J<9tE^ ztj^kL997&d(!z^XVo6kqCCMiiz>+14t+aZoFV~}-DwSW7F`^%=l1Pb9B7kK&=H?=< zS_gl+N+iF+ClbKo6+)Az9rN9-VZmSL0}fctLFR9mz}+nBz}@$8?ID1r4HlKVSmA(= z^8p9E=QmX@_PQU3h#)G*vCDj70lfL9tuEx|n=8O}a_4|n@aAD-g*)cL}WNc(iJ$L@>nMLI!6j|gpc~MCu!Nv9my4Yx{`wR4? zc%sN{axR@ylA4vktpfb#I#9|44Gfg(6%gp(>p*Fa9tdbpR9#B&wQ+ehxdr3`Estx8 zu20O?msMlj6q25*TUIr_V*yh2J?R@a#IbkszQ`pJG5DBcv3BT6$oSo-HFs9-zZRTxwpLB=>;c{ zp0}#0IM?p2AH5x$>-cAoHPJeAH?CiLT??ewzHEMZS;_G6VSBo5z7~?+KSSx(H!IIa zrp~pnZbO{ao=ym-|N4KSFzHu{gwT8eT?wJ9A#|;PuD@DBuaGYa<$Ve?kCjzIV}_!ZcCDo`2n=Np?jLH-}7UYLOXJPRZ_5i07(K&16rlf zj)Y*96s#XWk^pmrb}4Y5$hgwx4pPuRfFuDX5O-Gmg3GByJoEt91tBfub#jX#ey7Nq zcCfnw-u3hvewq(HV4`WL0^iM)6Q1Kk4w!t|Q9;hV=pD~xIM0V2Fd<=C@vWyO@b?nD zMnP5m%mn@@pJV{f=oYJR_q2|GjSoBExpjMGMYMK;#b4*c3V4>Yy8V_vWlIJ=&k-W|76O;13O%+?sFy#TI)>C)rXCF$BOpEv1PBV8O;bj?a-HEpXg9#r~K=rUxc+ zj3gWG3@P-aZ>Cg64tcW=$;hMG0=isij)i;8mH{g`Wx%$rCde@0M0&U_z7s$3pjqOD zpQJCv0qrw@I{T7!nELoP2)g}MK;9`ehp?&bZ|9PllQpiE7K-*5x2xu5tI-wW@`Vg~ zve@Sf=g2hJScy%2N9fQ(Wd7Ct1@r((_C7-XKE{(^-nf%(XtMK1_nQl%SzB>Te6w;q z{i|7xZGtaeGL59%3{pPiim{I-_UjFBVYh~!E1>74F7yHk5nn8zmqKW~?u=EM+XK@3 zK3U6d$k`P&mLN5+i^()6hk=pkDfY(Gc{=s?^^&5mNtb=Y-KG1cXIjwo9+2(_Rs99l_%z>N|XFo z9tCv6@gDe~791uM(P1}ZDExyYq^+cZe^`5G_SL>g!`av8OBw*CP(R{~^1P*aHrHANes3?+UoL9w-Z`Q#RRt z6EScgK~pgNPN1n2%#L92%Jg(Po=>X2bcSyp2!CdSP${%_88JE6-)67Ibd`9W0m>R7c2l90dz`AUUgA+={robU9Yo_fDdoc4gb)7<$P4rw*l6kU^dFFsFX&3%9 zLIg60ZDn(Cb?~5;v8!tVOAiz8cX#j891ES6)PZZ3D8n&dzRrE5^HTRTYb(~!)+{X; z1k&tIV@F@ir}&8p9JE{B-$yD8Yz?H?t9*I?RQW@B?%Z(aw7wF^GzOG-oHQ9_lx4S; zycyy3X>5Viz0XkhQZgMSSMO!o zwKukOZRw(anx7!*p7yJDiX9iUk9bANBounL?}h)z4evm?eu2zoceS~=cq(+>H>%Ex zV|0xD`tfAskxo1*P;O%&BRG~!t}c`5lrUwPeg!O zrK5F3bdTu=XGcbAH6Ld?EupIz7Ce$b=uJ z@GT-FBS;u4;df~7%pl?0`2+}f?AUD+AXmA4nyJ~rSEx3I9M%ptPPbhm z>Q(l%TB|d5GInw_O8$CXjovNzUIZg_193gG~ijU$w5mu*cV}zd@vplJ$qJ$K( zJGXNNNRogw_9Wh}GDe1>uNbE8l<}9kNQ2!*z4>iW1cQOBkDmDyRvATS5JwjKf{D}( zWr?G-hYjx$!R?{u&i`a%`uSuv}CX1`!C}1b5g) z4P%5kqGwZJ9H6C0KK4Ma4k5J})bH8r7_{|TUO%Zih3%9UW1~jx4K_a*qNro{AAXGN zYlEidrT&?_%Y+ zIDD$+G{;jtRg(y1brauDq3IOGOaZbQI=76 ztv8ldYV8hf1CY8kP3$!Wr~lm+{p;%;%+q_?cWya51F!uoVgJl&rz%hTyhEa#?o>H^ z|2a7A?>E*y)js74Pu4k1@@?~;_vf&HXW%Sgx17kz=@sQ|d6gE&=VOdi!aCa5qPde= zcWK*+JVkN5)CA6qA_@+5KL@97bHUSKPrKWdbL8sLO_$$jT<`7u&U^n0aK><$u6?S1 zIj$}y2tht+5`sSLLzux`=MY|kvw>rBHm0O>D_Bft#);$dxdj;Aq;0E+huKFjB$(X)Y=Wem^HI+*P_Q-j zabXFEt8j)fBr7W`WK6akBi9fDO~P{!91h}t*qPDA_{p)c(__`M0R&bt z^8T87YLShep67Ba z^;5C<2lyldSj)avZg)F|%?Pjj#DB#n9l#n$2fGnf6^XYU=h~tG zO9a`r0$DVONB9HO>6|l~uzV(Q!{J_uhi3YF+!pd%L9KX}k)e)X?8;JiMpSS=o&K(wFmAG8JO2gOyykxhvLYhA_>qRvIf zNO{!Rk*YZiY&z!6PQx#fi@Bd3(kS6J@Oq$w{=WMua^5${w%1z^$BSD7WC%fV>ny2< zEOt}Q+fuP-Jd;swmx{e%ovWePGnGs$1vs%vPefKUM?3J8~*5!X6<_g~8-U`M)gnd@O7texM-25Q>*Ru}F3 zKMJ*T&C%;!r7m;?b(m+T6(m3=uQeLe)7r3c;(@h!I@Xqf)U^3-7j6ENoHnmnvupHw z9cIn6RE42qa&qP(17!u~6$h>#+hL8F&d_B5HI2E)MPvS1&zPIbPZVnN6C9^ZS}4lU zvD?O63A(l16Ra)MamEasrY-lnXv;t6*)qH>(=sQ9j@`E9ieuIjsIbQTI2)*G%zZ8z z^Ure{Gk;R(#QFgH-2+(MT|Ot3)8McQ1;$&>_xaKp=xdEvYgCK>_94cl0j?VC^4T8p zW1DjdlgQhv0h#s-a&vHc2LnW__cYvshKFG_e9qHwGxxV{ zoR26|3D6qup=`@T6%#5#p5W5+(=GUE+HMc1;xl8OilJ9AyO1;Hbhu^5aJ9GKcK6N04T9&WIy2iJB8BW@TQoYWbB~Baefs}7q z%~bi^tJzb3xh1RRt($h$1F3(27HYc6eBurJsBO_}*&ecR_OMef8^ol#l0#gPoP#f@ zZxvc7;7tjt^l@^;`?uhXWRT7s*JpnSv=1+G;IM+X!&!kj7l_ybnL#f{({a}VN6%Xr zUEhvP(Qc#wzYWe#_G{sV-U~8Gr6lJ>N@f6(w)+Adop+pot65@1ka6{CKTof-UX-Z-4h8?E z(RaOTH;7$wT-5-wOV%+1UYYRkeXw+s z#r?Kb&rLYUumj@|TRy{#mhj=XSZ4+uCGR*41dxr~@Yw|*eW7*YPmNvh%ZT4FVEGJ-_u33Yzs2N=sMfKJHO(?KS5kF#iQms> zB!Gl}$82IUL(fiN0CaF4{7iB7yAb@VeEJ8Z$gATd_$9&bBw#u79O4UZZZ!w({~e$9 z0XgOBgbv(-;8#8@$(+O5=O-g`(Eh{2T!AAX3tOGF&o2pn^~2J#741ov&R{Qlh`r-? zh5*bCQ_;Z^E1#3dT-30AlH&G7f~xjjI#FMCqKMfNZJi+uP2sjwXJyVc2$|AY@e zAW@V(W#A@r6#f>U003!}90lMSuM&QUwroFJK+hG>^JIL~3*;j7#R7UMgvJYKB7}S) z=Tay@k|9R{xW+n!{d@udq~Ni;02euVFyg}xNKj)>4!O!$gWty|0YLf|`x0=I&jo*+ zPXK`ACicURaJCctB|fPDl783^2O43348{V2|CvulfQ%Ur+73|FqzbN4Xy79!xpq=O zK8c6dkp*{4xzFe7sgpnpNpH$EJZjt^JHCz!5$H z0yYXiW-~CMox^y(jtotyE$~SVu!Yv{)GTe5F80*ock+n>u))-R^00`))s9pA!+gR3 z?9Qw&3^&^~@n`si0ob@`zppV{+GwogW<8JTIR1)HCV*{y_UuKu=SNhZAKpG#p{z}#g8 z`mOBefR1Xw+Ewc^xpr6n5}+ zd4g=7)8t~5w2Gn;XXfk8-%l%YaNp1sHIrDpJ*Q^#Nj{3>^)&p(maZ*b^bh+=`%sOl zj~561nM^w4WAm-x#t1X+a$>9E&{ZXqN~D%NNembk!J4noAqLT}iD4qo7z~6rzc(xn znIZ@$-p)AI;`3YCG-w4vgZ7d}gVvgNDA?+A@Hz5W!e&6WXR>FR`xZx;Vq<%AUSI{} z9P=aj}_Dy*c!S~KuH_t zW^p@F{YpBMlU2GMa|OB12B0w^X*v7`W}9@xR?m?mdI-)Cc53c`X4>VPB6wsO`U;D{ zGDJLgS0@r!J_f4kvX*5f9(QZemoL=41yAD!V#Upu{yqt32K(g7VwYp-RE`j#@llyN zYyg&u3g_M5^Z2&dQlrUw3!DLLmlIhzhLntE2wYx3+uu)?iuWYWm0m9?dZNHncr(TR zPs1sEw@ijyWfa14A6FOomCm!=H~*oP!`YvLQ~eIQ)^loRIgwIwoN>Of*r{vxRyv2e zN8!}nN7cQ860JCOPtTk&+-W#H?9Vm=jfbDWWv3R-S?T;lU^X0Y8bgXMHQpY#HV0=is4bB$Hn6q=~C z;qV17!WqH975`jd>bg85ah)30D-vPXhU{WsB$upVk`s%B(0l=138AYYbgh7{zgj}C zkS{Ng|G$Q!h&f_z&FQ-9paIf9Hz$W?h9)m!5?9`))qo? zR{fKesKPWON`F(i8|RXe{jLOG<}(+-!VpJU0G5j2TYMq{ESj)3cbCnjA|ioh6!@cj z!T~HOaB|6Rl^Eb(A@Iu=kNDU5gaLTjZtb5kEd}8E9eeO0G9qrL@xVE* z-3RcV*2=tW5rumDu>or;}5 z8&%Zv!>cQ#XxQj$K8_!Fker~0jAp%^XpcG4eSar(p>GYUDQ9!_n$MYa7>(WQ;TIof z8P@akI|oSZ$Grt~uz(H~(BT3)LW(_(hS2>5^ZJV1h~r*iKk)|R&ywG78hGb2 z&J=s7yJGbFZT9}$;!q%~IZM(EqcZwmJA-XRAi)Igd4#pbx6_2Ai-d_{Adp}USvOC$h=hR$;!PnQ|&UH7t zwPLTvTgzD8n?8K$ok*r*H#!ylU?4lG#*#{=vqQIHe;|8B$&6=~7>CrxqMOzZT5C2I z3*i1L{Kxb>*P$s2fqQ(hpH{)S-A~*&A>0|NR*w+QAcT9OCiLN{xNeXTZktwPyp*ML z?wlP<^R48K@Bwc2O`9WKMJGX9(^UeszLT!@sFF>@K`ai{B%?C_L_O;jk?MPw5*Y51BMOINytDpFhp$tro^WKGtg2Do*5WsK+C^? z%wUgc0+bq3*5bISyHBLxcxCf;E!{yb#oL*J+ zSWwQTWi`dPCTspMux?1`nSrwzjKi71Zf)V4y@H@w08jhQ+V{a}f1j>>ZBDmA8Ochu zHoyE${xB~P;0Of#;6^}4kD9!poJL^pg>{bqy_N60@-M(Cz1r{RNWY?+v45la0M8Jd z4Iuz$2oLL90AYkz$!rj62y#?iOlQb&h}KAi9q0o*vbfgC;v_iJs3ZtzfS|C8Y?_Y^ zyrTgpEz>yr9_VKjdMkWhQ7T)Atf5xag7EFL+X23S&`|{FG0q*IWEiQH+S#g ze}`ZB^U%tt`?~<;8%IFT7Fw`{t8likU(Uvq6rqm4C19%zIC^ql975aP)Hz5=K8y|R+cCYDnASWr#njDqv#Ljg<1$MgZ3 zWsH{0x8CglhjqLPXC3?K*x;lRQ?-3T_Xr})qiiV+nua%LE{go>{Q}^B~b!UjmbBqSnbppml72eo2@!j0!$`J!5+NE&q zT8J+MY*67|hmb9@y8)-|d#jeWehG+Fg|95ML5<^odrl(?*_dm%F{&euHM|U`)tWt; zx8SEyeLnhpC+af|r_X)mRZ4H{>UPP4?!tF@mpR8GejA+9cj(^Oi?W-Z5m<1T5y+wI zES#=~D!TT9Oq z!HM9EPihBBI@iakLryv-0OjoX-1u}mP>unj9GIF9`Pu=JP6u&RnZ3fQ6 z?V)kDV8#=a`vzvFW*PMa<^Gu9rv7k?lNaa2Vz&-lDr28jGRiVnZkiu5Z#ACh@ETIQ! zTD5tf1IQ|4ottV3W!QWnlxYS}@d*czb7g(uXx*4@8j|0GHRgQ_;_$#f$0r*=HjCp<2BgbI48sNfDv?Pg?)hUr2?0_) z)RB-7`Um`Pd?EoPLRf!6x!DL&E^H&sR-`oEbk2{yz_qOd(gd7kudOyx2jC!|-~gNG z>u>oYo2&8L_=E%4V(xej)9<~6O6Gg{Bm>xh?dYk+Hf7^q?t0N0=WHeKI1ZtJovm!ixZLfEAJZhGRYj3u;3ul&^c0_* z0J}aFkKbwMpVUpGW{31|N5{8jvPJ{O>jM(bn5&34gT8 zn0|;)a)8Zr&c+1ZV23|fCAZ(^lN(^Ond3!<*akHGH+)h7Y{h!eX&p|9XwSlXUZMej zvCWkav7=Ro*hA!JIKl$JJ|*X{z{s1$vN^t1cZd58hjuov&zZwER7QzNV?(_QC>}y; zO@-i^bA@2hF%M*BST%+m7yH`qb9`$Bu*u7DldqD8tBqe+=936u7u5O^(J~iqbw=U$ z@JR%)Q|L*j4XDaS^jwaM-9z|IKB)k9+BD!v+^h1%pXHMWV5f>>&|9_=_q$i{U-F3r zu#e**r-h@h6_b@Akxvx{fXkDNR`ytAO4xASR(k^!{j>$q`R5ipxE!rXXRRO>M`zhk%2mNFjnjWjT^@@^YD0*oV*mBP%U#ueSbTE7~ zk&7XplI0^Z<2Tb!+03+$eu_5bnFp*DE+N8uFyKva*~n)1pBHWy~>gm5N z`hOfw|3jMo^*By(&O)t|3gbDtZGyZOhaW!yr`G*ewdyCcT!xPu-P7+2@G?_1#XyG_?`Hb>^4yXlo1Rj?O| zJ1=p{`UrL2He7g|kMG`F;T$_O<+p-WZ#Exo$NKI}2R;g}-sL>wYL_plZq$8urg~4q zsn>|Vvhl>Kw|o~~Euq&?6vgyDCt*WM&VuVV@9CGEeW3J9d6TjfhlJ(uztNe20;B%=4D|0dO2u7{ZbBTVEuYIN_nV#_P?N=A)y_dRLKJXs<{tfM2PGO53_LcM+`hkmC#q`ntDeYd-Rl@hxFt#2ch zNf)_WuH0PbmP#$po!2XxzYVT#y2d?qqpS5=n}p@B-vOs?;}SXQ>NQ2(=-aEBcdnYh z1E=)udUzg7r{c1^n&+(Rr}Z7W7odXy zR?`W-8ZqPGM%At8H_6V2HgAzTFY@nzQ@0Vv#|RsZo2%UJ@vEZyF>UCK_Cu%3=liBd7Cg;8TbdmbxhPthBmm%3F&Rb^)5_41gB$TBVJtb95tY$egjUy#$joZ zEMPCz0#xz$!Kt{shDWkwOpX(|z1L0YemCX!gDW_j7+G}fTAL=lyOP7D|5dFYP)RKKgDdNK_qFZznP9E^{7RR(PG?H>o!Kb>~Af)b>}poI~VE#5*_O+TBXgX_HM zXGS~NC*VxM*zbukaD{d2+koN!&B7zk@!K5#C*icclP>(MHj+~&)g^6VX0KZJ@A1~X zr496#;Vi)zo1)u-*rng>_V3lBI@hEAD!g^5N#XT})H=LP!L}*!*QyDx)ef zq(qZ^+k&>yZ;%Ynnr#K)Z}yM~Q<64rlIJsU8s9+%Dv{CgF*&{BwS~89%R z?@V0Hcq(s~%KsQnFl*d+>L2wID;upn-6A7a0z#qfm)uo@Rw z81E5>5n7M0vM_EHhA{}O$JbaGyTxII)}zeA*dq$#JotKiD+^<JGR9G1Mgkc0< zk5LxJesLI~^%!Ge9B?1w;1rE=rpAL|Xq0glN&$gRzlL%KJeX5i7)3-nI!18My2!#P zBGNH1Lfh&R3!{igN5=^6SrH4Ph)Bo42(8Bi3!{igN5=?$y231sA|f3fFNdx zqlidH!#E$B0mhhQVH6SR=orEG$7L2q0g;X#1Hhj=QY?&v?niSbMrgm9W?|eW3?umd zxWd9XBn~6A9^b~oxLp`V@cl8v!nnhIj02iqjm*tMD>BOhxzl}++h#8Y0wG^J?gM_B z1@oW)nBl9w@vy%gFh30mb38IL9q`H5d>1bOM?9Zp!4!}Y7&KsxPeRA8pJSmEkP|Rb zhUX`Mb@`htlmfB>Cd%;;v@U;(g;GFXV4GpFA$XX-&4MW)H85bnoS6f**w3>-3djwZ z7JCgG6VcxT+wbqQ5DSR+su7cH-W);hhmIHifQ48<>{pF=dWL9u zCKT`i>-bA7!~){LeN|RH?z=o6n1eoe{~-&nfQYaf@0>sAC+AaO{eGE+S3qc3jhEIxUfdVI`eSO|TJr}q(=(oU$$0@ee#gomYGklRs z$;T;x(dDDWMO#mZPdcYIf^@R^sGIKCVQppkq%*n^q_dnCHP_YjJRjzh&S^O5upM(Y zo>&!ZJip8*p0gW4JbCfr`Ex$;oZkrI$!1hhTnFaj>buCbtv|aF#FG~g?+7rmYAUc@a)JN0=vyG+%zd@qloZPdMXn!eN`vE#cDn2%mI(8$mi*Bs%2z zH9qP1;iSV3d6HQqdTIRypLi~81o0^1#WNV-+S3CYK|G7%&!SKBiAUNH;t_usjqr(Q zdP9gu{Au(ypLk|Agm}asw|;<6JeN0wc*LJ4KEo%T@P-giN_CZA(L92FlTRk|a58ba ztOqGSmz;<#ugEJIHO_rkZd`%lr-%SvFBx<8@Y8(a z$hTP>i>`@dwn`jfK5^WH69@a)KuyH0OetQ~#A3-Ez{!HWZ^cMGq+71I zJWfh4y)ZT{{8l0!W9Iu~Zum>vo7N%6bjr1%)yBM~W*k&W?0M)*`F{Qg>T zngaZHd;)wgoB-J_J(|dosduh=DvL`uCG;si2^HWZ#9pXb^_FPy{0X0U-UlZhc8wGn zmYa$Ra%86YYzcDhdGCjl58Hg+F5Y||;}g#Z;KaiY3088MTsn~wy}~3u5q)qYh=@oh zmnL!&yvSDgMD!sz5wV@n;)?iH_6DDP-hh)2dzW7%<|E!s{}P{sz7I}9^(<&4D{9`e zxsCl9pM1W5BgiM47+G{JbyRa+G3C=e&9%*cWFyFDab+Yg+I~*($>*aRK|Xl^`w8*M z=Lg~B<9H!NTA7G@)>;C&ws?ocNSaR)AA^$wJ8!n6it;l?Uc@q98Go2hP(K1ED5oZ4 zJ)1@ZMMl?U6j!^NEQfcCxU`pg4#{-Zzs@JQH{m4b)K*!MT$V&cF;T}3yXf#=5qXuz zdgK4jC%qqUuk>ig{|ZWwgjtObg%6CEP4ErCL2pIWNi0V-+V#)88b?{#3#Q$g_9pUFG(BVQYafaA|pnb&9er1#(8q~~N_va+&5c+BJ& zIWM~veHOPS&Wx3e$`rk1#c*b5=)}8AcS^_6PPB)-3elJQ@n80Ibs1kj8A7K{pb^3a zH&#HW3+T)mIx8K^M-eHDLiZNX!2&u|K!*$H$g3rEG=%Oipa;mSN66pDLiKi;H9AWh zS*O+GZ<5C%iTvImdE7MlOFoVZY;px>Ho1BqE@b;~_y-PQ}0-FqXXzY(JONZ@}R)eA=rlZ3|$fX2S*_*#ZObfe z3*e|`!iFET2sz@t4s2*`D=cjbn03O24ZgM^2f^2Y4Xy1MOWOj5p*WRaY6A^7`?z=~ zeQUrs_XK%1>`gsXz7A~Y)xE@8-9T}gZsg#;9CGwLTiZcsZ6{dT28z>kZG#^@AqUj6 zwY{ll)-z#m?lJak*qeH?JsURoz709-z7A|?Po8FZ@@-Ab3aXipLNeNGPV-UNu)+83 z6&CCvP}tDgej5w+c1YOZ`*wx}dx!h5ok{?;a3wM~53TMj3-?a1bOUln|og&{dtg`h`z#>{2w>M00?D_|5n=eD zgV{e|2|){H-#FB@rHlSSkr0|MperGCHH5Ae&~;ML`3k9mTp<5{4MkC`fZ`#fHkg@O zR~pkZ#3*J$0UxkQe2FCu0TJ%w>#Ykiw|+h_2c5+DLzV~x#JcN>V9p=(lY>356?~Z` z0s%qqx*{M}AQLeFi{Ot~A`lS&t}BAD|FY~0M}S4}6_yADM8bRQz5p04DYM6ebh0^D zrTrSi`#a8U@A1u$y$%@PaTF}h#-CZ3&#Ia1LWB->4ym{D*@a0pdxP+MEkrU(Dm#1I zN4}TMEd+zB%fUoW)!yXP<&}kKG`=`W{xcREjmAdK#fDc`NQ=24t>eWl*PH>NC-K?A zuC5Q2>UB`;a-oC5UeJr5CJ%PCgJKOO3J5bgD2iLIJBt7xUZ~$dvMJ!_d3saU&|(2C z6%Z=amF!@6dOR2;+kg++3DPmidx`oghTa`i7a6=AouTOB)(C5KM285VXD+dXI@<<% zC(?u!k}>78Gt5Aw!#nJo3592ZV?m{7|di1z(cYw|m3 zbAY|^o8iRURp-xvzj{x3ue*f%spquyOoq_ekdO^u`@n(&9lW1na_kfBh;1Gp?`-@c zSN*Q|O)Wt~QrT^iy=Oe_ZHr{HYGd|E|u)FLGez!>lDmB7u+BO)k<%zzup9d$5Fm3^uvgAH9;uCYZ!{AS5*oQn(2k z4~ew=0pG>(w%GgmT6-^Un@=TT>A31c3WM|r{|~YxSQ&MJ;qRwljec;wqd>dl0DBA& zY4*D$|8?1a#UF~$^g8^#)N?lL?~h9A?aA~_*6A05j;rmSt~hjaPF+!zoG+bcO(*IM z<1g;Kc_op_<&`8c3m@@{jH7UyJR+yZ-6Ut2PUSLbx;(-; zCC6GHxmW8)44WcM7P(XInVy*^JyvbpD}A=TawjKnnY(of-dBiIo~dHjDe@ppv1;(zUM{5zOYS!d|~*ha$-o5k+*s9azyD)3hq_k>lF zd`)H3Np&WlTgm5qv(8)YI;EG!Oe!*TVswNIoiGM5xx63ZXg@ov>Sicn3Y$P*CPbZ)LWPsu0_Rjk6ZhmAUzWERjKE|k3lr#)I@%9QOyKW zi)pU7!JNd4&+n(>3bioels4K@%&@A?Hk2!XhEfS3tcJoaW?U!0bT$io~3N833)HWS<1f3_M=;hxAAD>8!v6}v+Dw&iPSn1&qVGD z6QRS|tQ-Ua(;N3zOeCV-%9YD+U5sE!BJ9)|k_hvn*mYPhI3}{v!EQj7a%3uzOjhSd zNwvBX%c+@hH?8HK#JS3-UNebm3?(;WTena8`BL=Bh;QYo1YYuw=SqREuy%wf$;_(4!d}pqo3MHQ#6RP3TP{ z6F62fe$ES{+z+Ero6N|~J?Bp6*b4)YZ68HoD^LI)ZG z8OUx+Boj!HvP(D5R^{W9UO;4d2$*J;XcHP4aHwQ*%7yiDheKx}9ILbC+dJfM> z*pnJvibdZ8XCy=8$z(ca#G+gQXuXyrZgPgsb`swSr~hqJq|eAxzYF!SjFD~}am4Fz z>fcv6aOiyKF4uFL8Fg*b81d>W1=Uxs!CA~<(r}h8m+e}+&-f0jW_)2SHqm<&EjFXQ z94&dpx^?G7yA*wVH=HpY@Q21H$cVDpxf!279QIF=@nnQ7tc5rv#NltZGXP84{BG_N zpf!{%pydKe6;S$4DgSyYnvWKD8;FB}kiRWpcd)<;7|(5j_4_W)v<2)=7FYpOsP`J0 zHK+~SVaU5!aQj=zusa&^9s{njlI))hv<2~A7UGxON4(##X8*N_KQu}9p{d~bg)p#+_pt!K%YDH28h|T1@63Dz ze(T-Of-GR`J!CrQx$#+fJRk0FzkaY*aG%u)6#=iCgclqfl2x5 z%v^BtY5;uGI>Z7kV2j>4H8bbGFgG(Fnv^Gk^U(YAVHQ*Yo@|!|>IFL78Q7MOu&}!C z!1Bk7J1l7D{FA^~?_*&V;I8&rkOo2|5(x()*MadKW#JXzr*=+^`=s_Q+51^g1$d`j z7O3r5vJbGZ3OGLOuwaE>u*XUkPgp* zzBPHW8hAh~@F#7+%_-AiA3Xt?ql5yXsTtso7@mhfm=^}cKaKx7fj9`Vl}6O>Vbj=x@cSEmRa{}rD+0m+e@k!Ne|g4N~x zc)L;_Kr~XqyDIPM$@5XNq16eBkHk;WwW!+a71q(QYG zqb+P=ZnijCJtPs}Z#5>sFY*ZxkO8!=00mm$KQ<=7f8!G%Ao=A3HZNE?SGY`gXg$6^ z8s*w;0f`^&f~kbeE(-=fyv0cwAmN4-e28I-fu>q>{uSjy5VR7s~;C7loONe7V0$bRl{iP{MNM?UO; zEI#+y_GEWxeejq0puY~6GpcvZAcWEe|FgC*G$&HUXoJ7SCoDkn7JI&OBeJ>Rr{Y}u zHXw1y!)r9B?2UqiT&_oh@c~=O_=CAg6qUyglzWK2SSrGSKGq%0!e;iuQxLA zcLo~@6MkpVqcEL+=kTRG#@hcnhCs!h-myghZ6OzdWK^+Nq?_A7CsC}7verUpa<15G zOgfWAj zB(IBo(OY;j+OX&$iC*lB-h#ayiyo5s#lGk*;NcfNBo&N((OaOmYtch;!`R!h%k9a) z4f&8{G4`7mOII>5Zb50)@iU9cnbYSNhgVk;B{Ypj5&iV|laI1cH8!Yd ziwMv}tK{<;pOJ??qA``C5odj#KG4-===o#_ojO5&ZWN6b(CGp?vxd$}{rMTGB0 zOuRPA7HOe$-9g4*y{Bxgm-Ma5=DLWwLL1m~H6~Av+EvQ9{j->?D)%-NR<~Zi=2VGW z;nKBPby%*7uNwM9=7yaaBeRP&ix^#hZrHIK1oB4Rri3Y*=5v9RJ)kK&lut5tkabpe zeQjI1Mx29`&Qvc=*@CL~Wi^v_b1~N)Al#WcrP){@oepYCRttIDRH{+2`SsklEJ9w$LPXSn4#WsU%gCRu^BJE*C4Hj{8K#Hxy`^y>9SL#&QC zCUY1BW%dR#h#~E0B`>KtId_}Or#E`SYE0R8b5@8$(~rYxdPhamDfJfL39C_EcV-}V z0#2F6vd!`@TgFaZH@)sgH3C4tYXSr59F_nRZJDny^1~67tjrtCR@LyJ*roh z`O=}D>fKZQ({QTat?%7*)hDts_Qg~4DKiqikB*S6sOR@N{QfC83)m(rD=TU$E@yKY zt}xwU7Srx-^%DPWRxGP$~(BxM-GvVQfK z9oF&|T!!CL?T7_3{yBOFCTJ9zL-E=KJc4MN9?|f09oufVr@TS>8lIb`1X! z5l1;WhQG!q9KbZuQM+&iB#!XEYGTnmaP@&;%QDxl446T2ieNe+r?T5-8Nk^T+G^yK zKngXKKWe7csJJ)mCzFcl#TL<1?L5@}piQt>3?f)J!P$-y*k z4nWF6WJk*2%oYD!aC~;wKk2;s)=97NC!}c?`s*noN3;E~*iU*T)J%%igoU2OMY1G6 zRAL!F^#y`jkiHYv7Yvz_xR_XCdBrag*=>GF^v*0Ul33W;Halcz7}RA@#}+zchwMfE zRh3oi+m1c4*n4q2G#MnfmtbLn$i1L{DiHKX0@Kj9vBzyY!S?vgVEX2yLVDK|tl}WD z9ejgq!}YfVL80NFfbRdr9r2rV@z<9JelcBtL)a9u5NZE|;p^duf4U7TfaWKwW1*g# z*HwiP{^S3#P+!x##2kn|4{PcAn=Ap1NWH3ma;O&{ktEzf~5dw9F9J;9-I$8of zH!r61o$V0%ZcZms`5Y@3&>1VC?;=fs=;Jyf-7iqn_z{vGa};fhD;n>n7o!f{2Ko~vX{biY zJl0(1u&jTF+#8(rg(G4-SFz9MLrUh@6D3EmKTR!HlIVmzYbHw|*ggXGsxY*>eDkSn zVkxD@!zi7}v0(q24tob2>>)DpH>hND{!E5dAJC9RJFW%(8#Ns5XD1~Mw!sGYZ`bOz z?f`Ltax@ja;HLfyTAc`sR&XfXs{V~)W3yYf9+hMxw`vX)37u^WFTokZHeWKGRqK_= ztm6v|Tfpb{)7sE_rodlo)7jQA0cQ<6$ks5MNyoxFnh^s9b zM0euU8R{ZDi>O!T%V7~0;Vfb(m{#J!L^PvhZhP**J&JHf%{PZJTxyRoc&@=LQ*J4t zp`YyBvxXp?HEf&8sH))_TG=POlSVn0=e9M3;H+Ugi6z6gvt+0cyFhcDgN6}Et~bo0 zks#8`Kvd@DXdE}QaF(E@BhxV@=@|kMJsG35p*Dy)I78Ssl}Kvk+L3gNp218(lzDpe z(I;Z)+&Vk`5COE0id96?rmb*A5}tja1u{bLH55g$LK9O9IgT4w;Oyhx%Xu|(dsfXX zrZdY*DyI6F0Cz=ZXM2Ds zoCWM87T`-SlhXvb)Jmy*H(K>ffO|N2XPZDA&II-aLWE^LFe&Ry4YEc#--0U$arnHQ z47iuRMgBBI7{)r~uc2fCEf-L#fYNtLbaHk+TI>$Z2ZO*6cQGImUiL6ai$+3dzJRWT z(A5ySRzTND_Tm-t<#n?d&iEp8^UxF(yIJ_QxR0-AYCIT*2Dpa>P=Esa1EHxvC=h|h zxR-(PyL;$D6aaMF)$u??o*E~#D$sqD`=GII*Rak^T=M%O@=0L#v!8)hg!>uNfKrl> znfVAX&I1gb)AtDQLpwB};}eA9XeI=1z;r~5QzMD=F84id|Md7Zd3HQ<5m=oE85pO# z1*mhoe{ODOP7creeEu*rgD4%k;;2mlUU#1kl#*G=p&8+8Y?_M46 zxTaTm(jN+dFIGA!#!57@Oj!s3#RD}!pMeG zVo~p@)^yu>SMUzn)+$cRN2>9*vjxAJb^$Mm1%6*O@C`&hfWKQT@_p6FP2yB1u7ieh z^6W$$vmw98_za*e`Zb?HV8cHC6xFB$F+r^y%+CPYy}!TO9z^!?fSv3$z}@O=$Nx%@m;2E0xA^1$*u;IP+5m*KbmK?f#$^tG z-ODw5BUuMxdYN&6h@vtFDaa=nz{cJCtL=jb#$n^+-0TnfGfdoFDA#sd{O}H%c@xvG^%vDOACkjgaFu+^icKAX?C3m?oh&S z=MxNIGfs_QDhottYYzSxpI`vHP#&$enA+w8cY9LsXZhp-*naVNeR;UujDi0}B9B6MFyQxnp=}A>7YX0n)FDgl(Le3xl^;9Yb5lHn8idLQXYA8qHi6qXIhA zPyzH>6Vye;-O1$Yax#%qhl9Z@|37=@0pCV>{_*TMdv7uzgM<+h+i@Hqfa5rcv8|Zc z4hbYVPSPo-i!2F^3?P(I(wI7QVD@OCW$&_Sfdc;cPvZ5`_<6OS<>oyWc&}y?Zn?Z;RUO0@=l}WA<8U@>qML|L}D!aU~XC*Q~@^ zgC1pTGQMu965o`FMAtRPe5-xz%$_|u zGV`Em>nXX_6Y+CDY0R~}Vhgo`rqt3BSAg3a@&^XI6gloFM7o6C$6xo5rOI@-!EnAj1IW8vZ zsfAJtW^wFWZ7#GHFj3EX#~pUF7E|>ur|K1a79X5R)f*Ge*27J&bofP<)Xpk#7mIKm zw6^O6!U;C=K)9Z8QjSAt70+P+2YroCj`Z}-?WOJgF-)MPBIk%hh+)`O^I02mvHp{ z@0mBGvIgW5oo>KU%oc331xzJnatx!iutE+69Jxg?Tj+AOfJw7V1~;;WWub`dEFmab zyvr8HY+xpf8)^U2NYWc})@4&Pd6!L&NzY6sH@)PI^Gl2E_?<5!T(CAiOzmd3c)jdZ zLdA^SopyXoVrR1WxJ;2gtZb2@7<(awoesXRDcbLO0sbq+9$Qm$-%36=n3!<`-33Cy zctVn+Q6=oGk;ldpMEm?P_gjW<-%VRpYbQz z7(c9RWvuQMGX!)0PYa*<^S%3V=kLBve$Z(q@FyB=H|NX_bbndK-0f5s)=i^5B*)TH z`{UZw@onmaHg#f~I*GRUnEV9>TJFT=C2EaoY-Fvyg+YFG6mLECxuwQ}c0;#%o4Tnj z&$cNJ8hnrE^MZVd0KC9)B2e^$?(>7Se12ez&c+b<##k`yEDy+Ie(L_A!6d1^;H+-p z-M0M~69`M{C58#a`5a?Prj#I@Lhlw@ssw`JU?La^J8D2EItj-X+o$t6$@q+up!N_K zU58RwZY^vZvg1wizCiK8lm7+Wd&>@I@LAnxJzgz`lFn?cuSnx$ju`C>*R^?5fkjGL zg;MJCR|MpW1&ab%^QLCoPY&9{Exh;6xgt5^`|ZjqrFlpDYG3|0PJ2nSn<%tT6h^c^ z+v+dbuk+g4F@>qEJw1rCwx<2tR{tTL=%*QCb={%gn%!t+tooBqD#Cl#G1hL>G0+pS z*>RrXsF^W1y*O3O7-x)a)09)`iF9A{huu^$V}f;cBpgrB1i|jAGh_xBmtugiQO7J3 zLytRcdCD48R&)(>6C}1=V{#26K@hItNrs$tNav|fntWrotqetHupMDI*)?Z4L5W4W zGodIZ2hMsUr}BBgs7xz@NDiEjJM26?(B9wQv`t6;icT>}uuT&7=W__7=+M+u<-Cod zb9X3a4;^UZqRQJB-_vP2pD!4RgK&gm55?Zyg*lVYGmHgiM3s_b0Lz{=1^rLA0Dker z;6Of;8)F&`lRNIQE;c80dDPMzKGWyE?ZqK0d$uTE+ZR|A&p}DxU_KAXeff*SRn%2` zg%2F+vJW`zZ?>r)blPIDXC;7rZ|K@#d_G`|Xx9q?NC$#(9~zmvtKn#mX08`qA^#YO z`FyTm%ucQkhPekK(6XXk8;DT3u-q&A=9ka+En4W6l|?xN5vEdeRsL40eV{wO`3O7l zi+bC4N4IrTcWj%*v$aaPEZ^YaLUzX*Ehq%V(nr(<$E~N>VLeHRmgYT7@{W@-DZBhC+5E1#X)uYY?oo` zNSgN|CW4OH7t*#@Y~S!Ne-WmTueZ@bhBf>gkH>eOfunc0n1PG#Gi}I`c16`at0Dd` zcNb_=?ZkiSOE2^HS>@Gs%J+?Oo7S?A>o4Z&ZC|YAeGkV;8@W2hNr#-aXgO)t&Kmbr zfl`}gV)mC}GZY6sTnFV8b({>8&zXH=H)PtFP6r3@qIE{{I&PlnvL77%F;F_QhLfYJyp1b3TC}I{jAH6wOsK%3 z{Y=hajDUbM1iDi3>rQ`o<;$N+e1XK_2tI!>mhedXf+YL>`buxznMxGaJsr%7t0DokI3&4 zwR|3tr=Wl_Q*t5^ix&$D%^tO-O5Qii>b{&FnUwUN*6`(-BCX4ySPwlDCi zzk5~!_+Rb?bxx2pJ9wVA1QXY>&oMlTlc`73rwK9lEt&sj70V)4$L!EfO+{n$(fzbrKx zptw8^<0L%?^*g!iGG(`MKhg*9(pCvG*t21QF=lSN9dFlW1viVA&a(?y< z*?oA@pghZN&Oz2l&M$G*OFOyv2+p*91pCA!Y3+Pl{aJ6p>M!qzMeUm6Be>i45$qdp z!4tOnzx;_nN!CYD@U^X!&Gswc^2AD46r->6$XT`)WW)%BGk>5csaTK3dSP}Nk~qK({BlAL$=f2yqARE_yTajou3%IrQdJ4Kg4mTp?!K*$iyKpHcfM=k zGCpT8rrevHfmZa}Bya525<{oW48>wX{-qaI@cDr;3D4vQ$*^90q}7^Y-Bnm9CJbFj z7>?z0h`b3yTyegJw@p=|m@qh~Kh*R2fw2~cF*=)Z@V;o0Ebl0$8eK>=n)tkBbfyhr zWlM8oOS81BrM})#*5Q0GKh`M8*W^NrBR0{J8BPoOJJnE|+M2x+X}d*lQ*+A_X1$Ge zdV4bHZLV3<%&hk~JH5TSU+=7pKd0K%lyE#5Q=~{#J~^pKfk>>_wzj>a8yYpcZ=I^8 zHtx}d9Z2mu=8RR3Yga8v219 zz#a`^d%Q0N`;rday&VJe^6vRIb1@wmTeo*E2()Lz3$#OO?9{!8%_IKD)g5W8Zl7p! zDCA%yqvV4@3EnQGeoiWeSp!r4yOccj%bEH(s2gH@)+y)E6G@H1?uN|SF8?#?hS5ko zh~2$ttxib^J6p2Fi686}udxFsn9Sz{vol5HR3aexk}-WZ5ZdipN+_|`U|3ER*YWYV zv2f#oe2!o&=^`9Kl0&p3jO?g#=p-q~$`XRby&lBooyUqrz31>bfzi)wb^<+HNW``k zyIua{gIev$?+n;Ij;S7*>kRRvw>t|8MQ6zF zwQ^8qD09ylT9cuoGdO9)DOdq=0iQGE79ivP;O3$?>{Z^d&^>QR7QKOL`FoW&EOO5q z;xVPQm^SQH-hfR;naYs4IR%Zc0H^@bA*xQ;KurW1LMvU9QL;Eu5a*pLvGzPnusML z!S35)BB!2GOdp)358ranBgh#N5ps)SjXbI%3LiK+hB}^v?5QbCt8^s%!WhWkSxnA#jv9RY(inRc`W>^r(xXw>a~b>-fAS zH@k_dg(`}svYVoBw5eUma_;2wjohsf;#+7Og<7C?3{z=Dd@Sys*(Eo5*hM!{LIod} zh0LayyEw~T9^rG1i8*DFWH_eCK2`RHoUNcQQikGKUkv1RG%f5gKGWycSL8&bHRy}A zZt1T4BVCXXK2d56?bU0vUnCDH4%)OGwD~HZ!{qj&(KN!XKDAq?8t;*-h(N{h;cB>R z<<#Hvc}{MPHy92D!-^!w3$>K4aFJp<(~WCszQN}$xwV?jGPR=>Dw!#kQJoc3UgPrz zqqDwI4c3NzR7?pwa|h=eV&9Y_ceb{{b`RivrL>}jZ6CpxV3X%UZgOnohuGwpTJ&hL zR2SU3J6Dii1)CN(Jy!J{F7L>B?VSveY0F;T+HTWhV~~53XvM3RotcV`-RRxypE@f)*KY21T3Z+!vNxZ#=B z#@gzJMycjFM@>!66Sxy>q}KINoA!7E-JJBCwkz0~XMKnE9Ic)jX00dMY3|h_1TFX(EVbKI^r^vpO#hCH*w4L+sQ3J5y~i52)QfS z%ZrMg*n*a!bg}H|allS&LCa7nvD|LF(N1hZ%TT&l_Vie_6I;+SR7xzjWrKEN3tEQK z#j;oOG&`{cEko&IS1o0(;ff+DLC$ zNp@f9sjX(V`Y-LI7of~JIlseKRUg+X4wOWY<1KU<9@nk5$Z0QMV zeS4$-@O3S5B^F=Tti)P_9%XAXzHX@!-$V;8uWOFU;dtY=YC0BAtgElz+*%(@DB?>( zX^pO{@RoUfb=RkG zgQk$hxvxTFn|fTEy2|6cYt3#(p|M^^${$)I{-ncoeTv?oZfsN4w$5g}Iq-&~`Mkl% z1yBXBtIPYHL=Z4Nz*XS=CVMp_V}Ij++s7;tS9i zmRJ1Jmd5(p>Z;}%X=%+eX3LMX6JLPlu)N}1JS4i-Q?pcRVQ(24WhcG>O=5Y)H?F8f z^S89Db`^Ug$!I(A1!xwVlzHbR%s5VEdNJosC3!METGOneyyJ^3ZTJmTY%H}lkGjya z7gyT$tiHctHA*teehK|=Wq?EsFZH5cHmA=6I zQh7mTMX9%{eDL!q+)8(wIvD1@|k<2 z$=tz!q=X!*GxX1&*US7$@NB%Vv)eLG<_nU#q}bf*n~wC1dEBf3wii{eD>B0 zZTem+MT5IlXq&=kaJ|rmevYEK-7+_-^h{;+!6FCuE548%Q;LbX3yJvwe8$!j^FSyf z>#aEPqQPA-_zXUS>*aIZ;ND<35-nQXjW(BAd=}SVac?lOB^XzvqQTv1WSh-r@BtzN z575pb#l+l&#QY#WOAi#5rsaMU#Z=slRQwP=Q;*VL>Zs(4gsIatP9x5WHh073bNOsu zB5dw-FVbS8dDj}v=kXbOkT7%?HWn?~x@)#BWw*8S-9d}C?wYO3`E0E>rELsFymF|R zTf324SMV7-)en|P#Dd-=CFsST9oll0z;!?6WTGf^D=u7#mt`AU7rSx5xxm#?L z=~|o2GCq^{X_bS{ChI$&luPSdbYb+?&Mz?iqkTZ*%9Zs}Q|$@di;|H>nzNE#dm=T3 zDv@@%Gxdy1Q0hY)bhHFoapV%h>~99L#HSfbJjB ztG(zlm`ki{82l`*&|>a z2sp%e1l>0pQ1dy{%{VS@xS_jS2ghkUoJnUKCT5o2onytc8=OgJ95rPs;C1iNDeY-z z+8GBCnQM04J(5U!-IF*PQy@794e+Q0SHqJUnt-x1npF34}!5j-ufU4(J8N8>Fhx;c27^Vctm&iQEQJldkBoZ zwWgNuLUh?`Z#sJdjGdPQgc|^k#-r#xnE985=U7YJrt2(k*I^eHtL(m|@mBD4>gg>T zZuQ<`+30+|mj&v;?c<9$TwBCZC%jgE2^Igkd7p`$s%CMt+3kI6Y<%uy0&?WHR;p>uIlYi_T3zDI2hWQLvMCfuyANvmzvMOJ6zSCGr79fRk$k!-}t~iu;Me#(c(ic!#Tc zOH!o`PQ@3xs<;moH#pT^>$X}ir`mg5Roi#76i>D?zPyjSDtCZLo|zjaUvO2jo<4In zUA^V1-gNrRsrVyT6{G2yCi*bG#QiRFv-;Z?eMgmya>u$Vw*+#-Vb=DIS*|J`K#Ie( zbELvqZ>VrpvM_QbZx7)zR~7dPbC$AJyR4NnHww6_wU4UEobT;sSJfh^(r1}6=0`hR zm5iiHX^kefF)F^$RmB+0z}$g!t*e3urv!5k;kd_D)q3R+vxXTx`*Bw#>&=x;7cg_y zT={~limC5xE2DYea#bu6E>#Y34lDe~Rl&%c#MEy_6ZgB^&B`zeApS_w8*;W8pR-qZ ztgDiRk)!iVIhz1xxvIDy1}8;>j80wQs$Oc9mRUOum$@pJI#?Vo9_#G&UG1t`GVWGZ zxdFH3##PP|;ZENkcQ6>ipd`?e~v zjjVNDSLIR?#aWn|<+fPPezFQz#r6q?eVnFU=DJ!=+pcz1ZC_f1PnpM9D+stRm(!Ow zyDE1O^_R%WP=a|N{|;A0Q%1z;&=$NUx<$QDRaaAiuJ1d;67mvFtw^x+Y zjbCtCE2kU3<*HWn`O)GjyrTs_a#b>AKT*c=RKF|TtmBp>VsezZbTQUd#r?o7BpoP=s?;l^1xW z4l_vziHvA1}YnvF^o28FZm{1LCz5hkPhxE;9Pce=m!+sV5+(xf$}aEl$wD|WO= ztb`(l5@St=XYtC-&UKWn%(+eluUfNlg&#}IYdZ7FMS9#wWhghw6RUZp4oOSpPM!k1 zItQn9GM6Ma^UBPale-wPgI6cs(58^=b>j`akXI^9Dx`A1q1W>2#2YGfGQXks@XE}X zllu*QoL46b`b(02|28*X(HD5N!lt^`RyoGG>gQX$It`l&=amu>#)g)Uc(tPPrrT84 zN~tfS*nZz-t*IJ@rCG*OG#OVJwT|W0ilRd*VS?5OXZQOoUa9+KNeu+UeoQ}=VoGad zGiP&J1+Q%5)un1Gz|bD@A`ykf^2Hjc#n)aVk3#H4ue6i)lDc1?0T8lsk$M10n%D4?W zOYCD($GfW5yDgz`+IF^EYLjurFLA4_bW5#2*&3x)S$W^v6>h1e8BGDnrz)%k;x)W# zhf7joTU3e9t*>9*&`h5g6XdH7`Qi!kZ0%M$OS=uY9k>Jd0dOa97jQRl4?$5+RLj(L z>pRp9syCfc?NkFhO&L{YGwGe#1KkFvpNLe;I++0aXwU4aYCYY01O4yW-k~l!zsLoFf>K z`jFc4-Kg!;jcN_kE(=9uPO(U3N$laf5!<&L#TxJIYTk{{k(rRzqjsaUUpHzs3|lXI zS!Yxu(>zZS7INrFedL6Ci8cO<=__|PNb1MzDQ`V*Pjmrdpa7FqVw39mOJ3J^IBfXdF%|y%ytg)iXM~B;;JJt#f=$Y z+j#X(PQT1<>u%%Ko#{dlc4lsCzJyn6CST67F|+0ycr{z>%h||&Kd)9>`*Lc2idXYU zi!XEbF1*YuHj@*(D*7E>(H0A{_N#o#E7sP+tfB{epS8Ydu`p|o(ga?ywiad;J%?BH z@T>%jw=ZoGuhdKh(M8F%yppraSj>HhYk9TiFJm!l4)SWwPM^7Z6}Rz<&7VGVi*Dl; zooUb)wP5!C)Ju5PPRiTX!LIrSUe(#DH1iOM`+2qIPok}#4^lanRyno(0lS|s$c(w1B zWp82ZdK%MI#XY3y5?vAUagt5Y;N<~#+t@ewVr0Fp=yn^w5G9n1)pq;;caN^Njp)FLI-Q^C|rN{ zkHQ_7HnNnl@=_(5;9Mv8Q(jY#%qWgy+gj%Fw*#(atvhE5qEZwuFfB5KMI0n=#Lqbb zcLJ~I%%DAyXz2~uOBGrsIhY7W!hCPDHiuVt=3T}R>y)L#ax3SM`bE5oGYy_5#etv_ z@^dbdR=XEy=H8llEwAQD=|bn+r8PB;)hipY5?<9Aug<8ZJeo0EzJXWn@YQlC zsmxtnRo~*uoWN-`Cvb`5If1lHdy>{M%r_};UiT+>R5(vv5VHcsM@Gl^DX(Kt1v@3S zIued2XvP7f*5B}IH4H1XdXlW$?)=$Ru_q`o&JC45;}tt9+l#q7qX%BcTA?=H*`}td z)kqr|-`R=0S`Etzq1;V?2l1*MlksDbDD%%#KAcxCwHBmuA44zm?0$Jvv6u_#v-nP=i@U ztyuhaV;sxMFbe(|ui#QQ1PiCJ!VlUCnol4j7>Yka;-q?Fu&z`VvFYl^$ zC-Umw&!k_NI$aH6E^Th&l|9uWTeP5Hk;$-}Q2dMu+^KFW7poY$q5SK-%57ae!MmQ} zWxTR!X}ferHdlYcgJD`yl~yz)*^*bG&Da(Ctb2Zhv+dy~-UpF4YsYIZClWEvQC2_X z)oreQiBgQ@hUlO1iZ&&PVJ|XKe#cNpiL?n zv$VgssJK;*ivF%3>v~%Ma#^uxD`!g&$x_&9W@6S3Ffk=4@K~ zA+LD*x16_u>1VvM&4rbW%~A1Gd?7i;+LrnXuX38Rmlix%cW|_&GNS=kZ8funGSZG3WYoECFG#;V?{*pV8sQ??jQ4XJa)_5&8h9X`$ zMB_JOLD?JPY*Mc0eLoD@x_U7nBAxRwCJXC$WmCsV%GxH`y3rX$hg=pdI>zM~m24PA zpT;YiDyrF*hG@T>kVEpeNRm@{JFjrV#nDw1iOMG@si9GyVjCe{jkUW3OKF@cFOiQkV`wOG-! zL9fWKY-w(6X_l6?)YtO~7ONgMW7WgFRni{aKSV!|UsgO?7=olS) zF|S@z)~xHL)-y)64KAyVv(~`YyR5b~8Dg|;E3aBhLKXK1H#5rJ?y}q@uiRZO%ZKXa%En*LvCTM^IEJM;H?`>c3UoQ<={}aGL)&7Rn<3f3)XA}7ob>W%8G>GmF%U+O}26iTdvaOvZu`;tlJmsXK#)KIS0R9!7JI4I{RoAETe^Q z;gw5!Q{}wDB$pQD@&{wIW(%Y42YGc{QZ8>W;geaneSU^lvBk0DybB4x$}870QI6IY z4Eq=z`dwbV7W1CMYu?X!1K55$-I&+FL5Bs z>(z(y>b2xb0WvRdvbC63aUKho#)FI=-Qcp`c(63US{-&-Zy;KlkdOy*osEmfk1Errp_L+)U$7n_P8dU~y^ zW)wWxZNW;2x3Tt6Uct0Lt*|UD)v8-K8ICEkPi5ZxXfdy9Q|eXKyt1LTT3S=RVmY5% zi;0DsY*ViSjDR-{`A;dXTFO1rGGr^b0At{-f}7Y^P;a#rT!2yVR>4&sZVQKP1s7l( zy!9pa@GFkkDlWiKc+;S*)Jwc_6?38$wbfgIvG7)xUc)Z^4r?DlWjd_-RIiPbQhh9tfV5 z&H8s{2j6Ndz5oSHJMlErWfeVy8tx*=He2xpD0JG1Z&*pTU+Jl>X14q(w&Dv=0G(pv z_Epu#wbZWS9$kK_t@HvEMeU@os;RG`wlQX_pJpq)0A*4;>11_@VAF#HCnp(;-l4G>R5wq&;ysAyD z-g^6>ZtYm>7QQ!I+r_KdGE|6WRc!UCoPAeU@G7>n^KX`^E1FaAExdwFJ(Rjz2g9^; zsv^m8&ZV{=Y7!x%hpOO>-b(|G<(;LrES@kINp|Rvyd=1 z->z&0sLagF_rz*ep(-ae*Q{!&^-zV5xe2ar9CdoW1kcG`kFWq08rui3w574Wwz{gh zMp|04jM;<6+dY5+RBCJ=K#PZj*LrG}N-f+4{JIHt51;^58`}p!V_DFmAuX$2#a-5| zn`rj{3Q)nJa$hRZk@(QLJ zOdu5Q19*UU5z zG2_{WWSUN#kb~hkV-gnT)on_`X!tY@X^Dxqno;oSyn?AxlQuL><%!9@gydHO+@jCp z6-|}(v}n@~oUA$3mAs0FXDQ|#WqK>G)cp*pK2`B;l9F*HPGgBBRMs85$QO+3(X$8s zt?y80(EqbM>Je?~k!|YYx*qCLR6RYqO+Ch=R<)^1JZiNkxue6Y)~L(poY~>o-Z5J} zR(pt7KefK4om&)0T4fq@N>4!MEO|c5tJ#!8)64+L70JJIOR{clDL@kw6TwK>fr~r! z?Du#j8<}%Ta%;q&3^{qHoeKUBui$a@^{X2igve^zR(7sL$yhKUNsJ~QdKYUIa(s?r zkFrJA&nS5cujI)&lB;PfbwXLj|2EI%)xBR{-Aff;NM_wZ`6yo5x$kt9-`^<5WX>)G z53k~>IfhQVc9W8*N+e>OwaE><%5z;@7}^EdVP4r2a}2JhXiGv7-zLUn{B&N?6LLgT z&b1^N3{hu4qvrE?HRs8#mxm%=nR9`zD|sdFpJQg-w{_J`i5Tx})mwSBPw7N^E$dQ0 z5Ah10mLoi6ZY5D23C9yMtMq4irRQee8R_-G@Fsa9XXWd6yvnEB8NDTpb`?Jr+&Gi= z_juLY+P#UUw(_`d3Y7)7Rtrj>`Ah&n!ABla&7|FNagSZx0%Ddnk{V$ z(41~sVNAnL=arq?wjfN+-b8#Jujt&07qu;{HVwmJwDy&}!gJfkb=59-`K`RVC*{;V zblvQ3{t&C`Wcwg7?j#XqtG)W_9#)%Ua! z)Hkn<1Qq}lz=^;*;7s5w;9J1AfvbS4fjfX70FMBV0?z@@1Fr$E10Mn(0R!j`w1L1R zU_ancU@lMvECE`8)qny7fF!UPI0x7PTmW1MTmxK7NNSh$5i+%(;HSrdy559(APhu+ zZvx)}UI1PM8tF{!I6wkU0>VH9*bbZyv;(^cN$rpl{bD!ar<;KffWHAV`VwXWj{{Et zZT$%60=ENq0KWo$4SWK83Y7FG3;@Oh6M)&k9H0_d1grpRfi=KdU?ZRcn}IFBIlvB} z1GoUV9=HK`0Qe#BH1G`YTi{jTufV&&zk$zz!K7Oo0_+D&CM30*0s6x@5UBIzz>0+0Z#+J1zrW-1>OTb2mS*L9Y`1kOa-O^hXM0|V}L5)IA9gv z1$;mpNC002&H*j}E(ERxt^@7`?gO3xo&;V3UIyL){tSEydLH61SSCo1BU=d z0*iqLzyoXmBp?Drfir+Jfo}od2CfFa2iytV1^gfI6X4gt3&0+A0Y3qL z1^gO#6Zj+WPvAqK&rm{NU^FlWm;uZL%7F#IQlJKC23i0=pa4l=Gq3~r8gLPCF>oDl zJ#a5@AMgb5B=92e67VPBZQx_z6QKVvLJ2Sq7!Mo>%mylfML;cZEN}vFBCrVv0jB}m zfnC6Pz?HyvfZKrEfgb~p0M7x>1Fr*b0RI5~3G^9G=nISi#saf|1A&D=C9ndh1=a#5 z02;6fI2AYzXa{xyR{&Q6w*t2T4+B32egQlOyav1u{2llQ(0c@-4=@@S1Iz?w0TsYP zU^%b?SOcsDf`A5`0-Oqb9cTwG2d)5a0d55z0v-l_4*UZ61MnK~H{kC;uaSh_z$joe zFawwgEC4EiWx#Uacwh~n0zqIKa0+lP@O9ua;Bw$*;1=LP;342y;OD^afjA(!299RI<0Ly^Y!12IFKn1n}+kiIUT;NjRGTx6n#9Wb}b!KkJ$MI#&n8Fi9=`#!YbTX&YU`r^BD*`)lF?`s7-BcQ^Rd)WP1lj zlP0~|ja`-hRF?dwjc=v7592v!4`UeL!}t|F4DHvzr@&{x{&d&c0YC%b0pdUcI0x7P zTmoDQJOVrl{1tc?_z&=3U?lmXHVT*x%poMTtH$dNdMtjb15O5Fz@@-tz@xxpz@LD( zfx&d9HUyXtlmgYjQs8)C4X_Ca0o#Gofo}lcBqX&vrsy|t2Y&hi@F?&Y@I3HK;C0{) z;P1dcfL;>_y@8RyDBu8KI#3Ff0ZV{tU?ZRc?Z7VJF5qt9x4^4F&xwRyz%1ZEpbn@9 z;y?np47eP41b7tq6Yw@LcoJawE0W1Oz2UY@& zfC2=7Ex=Zw4LBFL47i+-)Q0V^JJ=)m=~3W$;FrMbz#G8dfqwwKrV@GsGl5ya3ZNF) z1cZR|fNucz0QUkf1HS=21O5d}nnu_UI2bqtI1*S4Gyoo810VqrAPSrboCTZ@bO6@? z*8=wf_W{oU&jP;({s6oWd;t6x=s}MmseLW=Fs9O9Z5pr@*hWZdzdS&HQWxQ;iveU& z+L^$k`1%-tbX&U#_!GXq4Gf|)wZXtbpb}UPtN=~~)&UV93Y-mm6}SYr6u1ev8F&o% zKSEO5F;l;(H}KP&K)>mP{=mV&AwUz*3~UEZ2d)CH27UrO4!jS108E%cmKpaq z(t&hgrym{oViQ@C@)Q@EY(s@FDOK(EngU2{0L$0?Y?Wf#tvoU_Gz_ zI2nim=Kwo^OMpv(TYy`ECx9n`-vfUDJ_bGkrjot1X~1E?Jm6^H7+@vP2uQ$5grv5i zLVrWPf}hR+t^%$GHq9l3fOcRPa2s$t@I3HK;6vaeVEkc(3BVD+k-%+;>Sf?|V923_ zyYT64e7Xalmf_P6@M$|fZNO;~a3_Ad2fv+(uV(?@2d)9`#?gtm?i2X>B=A?@U0}pK z!bqSTSOByDtASI1Q-SXQ-vyomehPd9d<;yPPnZhS0rfx<*bH0@Tmsw=JOKO_copbb zO6Ud50S*FI0*ycdNCIC4&H*}r3xMwf*8q0{cLBZ234MT(z$jn_FcYW%76L1PTHplW zL?8sT6523Q-h->Lovij<92{#o zvr23=qs_z7ah9Vr{xM0LlxnN#uy#6b?kl)CYc%?p1MPH#`zFGD3%DBiUj8%cWv>$I z&>qDZcOl%}z>~mJ!0&+H10Mi?19~kW^ajQPz5!efd=Iz} zxF2{H_&M+g;5FbQ;A3Fm;eyzAxE**N_$BZW@G-F8(S*rB4X_N@1cZR|fNucz0}lXi0B-^%#}Ebp z-C6K?zuKnY^G`b9px~oW!KaGM!%*-k#j_{_T7cESR$v=&8E`r9Bj7>cRp56(k19e> zU^*}ZSOzQyHUcWJ1=tFF4cG}>1Y8VU2V4)_1KbPz1b7_y74U1|4d6}SW8f2D&=SI6 zU@9;TSO8Q2bwE8J0Ve@*AOU<0*a=()Tn^j@+zvbfJPN!Byac=pya)6oyK23FF~C^h zKwvho2sj*Q06c&X@B>?btw0-aE^rlaHE=)h0Pqa(EbvF*Eno<}-r7)LDliS050nDc zz*3+ESPg6hRA3u$3h;HH9k>Fx61WYx9e5b{G4ONX7r^gU$&>0u&$s>;&3?+ko4Fmw=anULHbkU=DB)a2&7-*a~a|z7Jdj{0w*+ zcn^3V7`c)#3a9`U0y5wQ&I7&y+zH$TbZ36>=QTF@!TWT;L4NQ@$`1z8i^Gr~yozV> zJK$a5J>YZTKfsVi!cbr`FaL zKsB%iSPO)K2=GVT5~ z8At$0pdHu+TnT&!xE;6ycoKLD_yh17@K4}FVDM_f5MUaxKTryk0Ulr_paMbQbl@vM z2XFy!BXAS&W8e|s1>i;CufV%Nuj2{5f$_iuU@mYNuoS2PP5@2>qQJ?(S-{!ArNCvt zUBKPIv%t@RH-SF_{{}t>MpA00jRFn<4h5D1HNa}%ct8b$z$w6~KnHLEa651Z@Hp@U z@CV>Epkys!05Bey0L%vF0F}TZUnDi8#=0^5L{KpSu|a0zfda0753a6j-Q z@D%V8@G|f=@DA_^@F`Go0$~6!9+&{k2Ic^jz#?D;Pz$U9)&eRJ1hxX(fSo`aa4~QR za6NDXa363#@FegQ@DlJc@HX%c@CooKP(sByZ2&MHm;lTM<^YwzB47nj3#ncRJ#YhXA8k+rOc9b^wR*~DBx(|Lf|66 zzn-7~7Xz07PXo^YD>e{nfh&M3fgb@60;?s$@xW=ocHnB@d%)ws6TmybpMl{g5k>$D zfl6QlAOYt9JAj*kTYz5yzXp2Cgg!tiPzK0=7x)J7P2fS`A>c2-Ux5i;!bIR0pbAid zAkYC^0Q?wu1o#v1HZa&n7y^_6WxyI>EpR4q7H}hQ6Yvc1EbsyFH(;WlFbP-=tN@M& z)&Ls;71#o71-=IC1TF$D2Cf6H2krD*h$1YQJQ0{#TN4SWoI0`yl1CBQgfJa8Z| z8(0Wb0?UCF!12HuU?ZRcTY#;=*MObCMZm?tb-?w&y}*6I6Tp+ei@;03pMbZ4kARPX zz5zl%U^FlWm=4SUN`W$<3RnU(0>=Roa1sy(BET8InZUP!^MR{@?*Tsm?gSnOo&bIW zyaK!jybtu+NaziW1;zmf0S5z1ff`@~AOTx}ZNRsI^MRXzTY$%bCxAZyuL1uAJ_Jfs z!T?|zus=`$ZBtlJ zFoV@Eq_w z@CNWE@FDOKFo2$lHV~K$OabNtr9cg^3^);3M@VXCZP6d(srczM;8EZ)U~YtP7~li^ zK<_A_53mkc4}1kU1DJsz-^HiffZKr|1CIdD0nY>f1U>{No=lho91R=;Yy?zb7jPbM zCvX?=GVmMVzd(-|VFoZ0s0EG%!axML0JsqN5%3`J8t^*MFHYzW90D8)v;eDtt-vd))S>Wfu?||O}?*Z=v{{j9B3{4P*0aJjfz+B)k;3(i|zyquVHUJV31|q=e zz*m6tfNua-0^b2{0d56;1Uv}*40sy&4e$!^4)AB-6W~*zf09rFj0YwFbAW?@!+|4! zV}Uwg9k3n<0}Unxoxr2OW5DykFM-#AH-Ntb{{VW?d!qFQ zMgpUN1Ays3DNqJ10jhyjKoj5vd_W9{6O!$HT4|YIjJ4G2&Zi&ifd~)#EsL3fv50s(FX~;!g5%>jHMim1~hTDicwnvYW9?nP7wyB$T<{L>nnFMN6fWv@! zKozhAXabr61qc9JfUQ6qa4v8ea5-=ba4YaI@MGXP;CbK;;7#B|;3J^_#e@=I0x%Ic z7&ru23>*cl1R4Pu@B(ol0h|Nu04@S925tau1bzto2zUl~7Wh5z2jFkO-+|ubkXj#L z1~8M5Otue`5@HmA6yMhBjf5~2uYG8+RjlYQhk`P#r%OL2z3t=Tkz~xLNUdUtN+}-P zC!*-}K$5b5$cj@; zJnqmwnUjjs{M{TdwN$D0-T`_*^Y>(XKRFbV{63M#VAfz=iI_52H(bmYZ0ONb%oePh zCZ-C~pB4Q@7>o_8J4PFN5d9f0MupW;VFllMit%7|y)-0YBJmKTaVQjq;?()YI2<|^ z0~hF=Y53Dq3|XLaj={IyVz5G8A2Cva&YLu?M~{YgJ{O&*b>l_PDcuOVP3aH%OzSE& zG||&Hw9iwdXq=}=hcwckUZPo^B0Ut}`iKVky1t?{zOJ8Wim&T0+Tlt0b_5w9THq;` zEAXwSXnUtv9>llaqSc*Zc@^LKiuQJj<#T-NFIw6umdVG_w*jJ!y>6grV6Ph_TG#6a zi>CFuA);NqZm4KfuNx*>)JfPCIB&dYOQ)+ph;KbbD>_~MReb9$+Ry3gpW|C!(Q-~# zpS+5`^%rgCboIsfHbAtN)797Go8C@Nk!{DfUZRDZBD(_L`iQo1itIsr>nCRF(g~QR zOD9}~KfS~RT{__reCs2o=F$nvsSSdH9FIS}M1uz%+k$T;qN#%{cM-l#6O9~X@q6*@ z4AHzn=e?+(hlUM0?_>Na5ltF&-Z*MLpdbh0PcPAuK|z+|TZw4HpdcIZZJKDkps2rw zZ)b>h3p(#Q{XDc-(0NbbPl;%&pz|=+w{EGZeAUeph4f?pOaDY6ophswPBEZ(PTx>A zKesQA>!tJb=P3zscrN{E=tT~XuV;vIc|)I`qEt>NqexD7kMcM@EfmJ*ScBDt)5;ev7+0Vd|&T#7VY3~UykZlti9_$20F zh)-e;hWNDq*z{2`2SfaZsS@qOD|{6TDt*3%rIr49UT>hhL!UTt8DiHbPT-T6I3a!$ z6DPzcF>ykC!c5%u;S1+0^W?HXz~?PfyaAc+Q_Rb~9OsL9x#H7f6jl?TFi)X<_@dHE z-@HJe!e8mDSfuzCb?CDUuE1GhZh`oOR>=0@Uavn;Mkx1{d3|(Vhu$W6CBlj}N%2Xv zNs3RRO;UUsj>bjtX<_D*Xpghj&?gPL?wz;rcSr4U%T&S3_tB??@dJwifn=Yz#b0LKGG_E<+WI5y4sg^VH1}l-`7UOF7P_%hnFCA8UE>~4m(vU>w^0Ef`@3h+E1rcj_J{S{|ekSbGIGG1~NGbC1omoZU&_v6QSNTa|D^ zgo$Mm80}_U=0HnSodzFgIhw9N+=tj^?>@Gy@Plc$E~LTY{!G3}l}wd3s_SSkp@X8* z+tJ=Xm1c`1R8PHWQxOUhQ%+6>V~W3nYA^aCnC*R3B^0HEZnEWmvM#8-iJP93qbX02 zLoD&^{+tpC?;qWNMpt|9pnq%rag+3hLA_3K0< z@gT|)l(DDpti3<|DCxeoza?VJX<9$r6eP8ng+3ow9=bRyu9F2yyNvSj>{V=s5bWL%CO8XRx`0R7E zk+{G8a-T?6yn2{JEivuENdu!OChBF@^zDhI6MXs#3Y+u3&8CyIak#(Sx7iY4w{NrM zjDb-sb0~>acYTK_bIN%V7E>r~O5R&BqR|8F{#J6&7^Gh$8OJKvnR~ImrRHGTblgnt zTWSrl+qcwuO8*#D6VRf$o@_)r%|<)qJe36_kZ?D-y|*tE#3`f8$}1Pjr3)&&r36LcwIS44%N^;5 zv_&GWVAzXLebA~wQmyxo0NRlV+b5DtAn6eyrn~{ zPDhNOyNQ^BFH1#?w6l|lX^LBII$}MU?evZ*cs+vm4@RUda!?pxyhU32pte$kjV9wN zHNMh~v|Gcb4{ECrwqG<7O$8lii8ggiYeC47zGza4ZwXR6xJ0ev3EE2%&!v4pB;=Yu5aX^AgS4B8sRU9zO9shWH{j9Z>yIWKcmTTh|YD{$G~Q54wvMq=20 zLusEyEnDT(2&GUHSJ}Ms%5o~3qE8~|lhAfA$y8{e%0Y)FA%>s8peNBMO(rPqQ|-_8 z(QQ$yxeuqkOP0k6a;KM5X?G{T6i~uG>QYc}krC9oxhJPm?+WF;=~Fl2)CJKun?Q2N4NYON3%mB%M4j+Aq@-!6u5JeSo*3ob*Ke zcx`95_l#5ZpI#?=?i1zm@&)tC7A;&DC=V=Hv|#>RBd8WmpX*oB=V}q$P?TVEZYro2 z$GJm93EvwG%W+>&Bv4cQWsBx7^e5a)SIWyM)veOD1!#J1*~aDV%n` zI1BNJvxGy)?bh(A5ZZ+Z-(NiFJ$8e1XzdblGNQ`zAv^a;2h=Xt&+~_rn8k1V%J`W) z*Xl;%2%VsP2j@?a7y6XILRqd@xTtjg0{xe&I+$ zf6Y>=##zowh0tzAw8M>9vVPy+a+*!Rf%<8Zo>QjFq?WTyp|m@3;nBJAi5T=_GcBig z61czY6AcsO_Nl9nx14SXGQx;3eN1}*w{?K!T)U9gtC)(Hx<{F=l0K$Aw7aWhhos(U zYEx2TqGdd#Z=&TM^8^}Y+_!O5`#)TLhUI+wu+++}Y!$n1W*%?8cPTea*1MECsQnZd z@BCfL3fj+4h5Cf4dSUhD+z=*rP94&Ifva}r&RGE`%=38{P#2qjer4$bzp~J@?I@CS z(Zw*hRSqYqFhcbVDmLjkage@K>5lG}Uf`O|WHVDD@+;iJR7=cxgY`z7nM?Jh7A4C3 zP--7-IbRQ%a*6?ZY@#6dDy}!t5{f+(CZNEK>Y;MFOw|6EkWoJMMQ-x^_25H zqO1U!M}%LszjgkIj4;&n72Z6bN;+~}CF{5M-lS}!dfk5IzWIU5z`})#yo)Lo*-P1$ zDV+8pq91P!lhY@b>NXm&f+BC0y&?Ft-fO0PiWm;C#9$Y4f+eIW8`a;A)Wt@cqewSK ze~zn7x5Qx^bf6RuMX0?)e<-Q=|0bF(Cs|@Kh1GiAM;97xir0uoKQ_~HdMAOYhXJ<% zlcZlvO}~qYmS~KiT0h*xsN8rFi+*T^PivJj_!sPku&9X8eOo_$B+ zMn=$8sO8;yBch>RzuZ{diP=?hk9F!QxqA2rc{l*fSZjJg& z^4(hg8_N?IH%6sslP{a1)aLB|o{Tv4(1Rt>UPHsZOU!7*&x|+|8TmuFwZ>Go}6G?yuLu}Mk8CPO7Bu5EQ-(=?5h=|%tkUyrRPqD)p6>|K=mY58M69xDulKjmp40d?x~%+ za5|PV5KF&gI7BZ5U6p#fPs-^ggT zdO}t>?cCf4pLIABO{dR3>lAGlVk{9}K;1TmBcM=61HCL>l?kbR6K9Sxd0FOA=3Uk! znPG_}-$~l}h;OJblB7Op5mnZcnQDn7C!}^E&Yxh8+9s-lEK%8?q+NnohXjH#>dJ}- zy&-Huo_WsJ6eT;Lb~(;ArzrW3cbcN)J7I80&UZIf=gA7EU4@%5CnI?dcj`HL!Vhn% zr%6Sf>jcLjx}P=&R;~1WqtQL4L;I1n#oi2?8aIwv<*7mbR;_? z&~plFs=J#LCX@yO^D1aw%z{$Cuay2X95j<545_C90LJgy3ozsq%Zd3yjkko#bRFGC zd2#z-aZ>hglP%}u31p2p-3OGpZ9VSv&)TcFYn!;U0}V>VFxD=ohipH~ZJC2oSHXSK7;4>M5PU$?pgYCrv}doHO_Ju z)JlR5DeYOpU)e=VRA&K%AYS`_4X-4tJFxC1d&MQ|I1eEfHfk3GoSWsFy zm-<8Lkd&mcVIR;viybHFvEekieSd545RLIvsMHaSY$>HCl@9G6I19T|(pmb@oSD|M zydeyTL6apFE+u`)koF;-(FAK?qsu(i7XKuM-eBkqObnMh~vdMI3|EapZfGC)-9LLTmH0?jq-vw7-7p zeJsb>cqC0B+1uG8(dPAqq4GYL>~pn+={pj?@A-2v1=kKwKNs=i9zPc&w6-|wF81WP zh?7&#?L@?Iz@-!=HQQLcClgXTHd|xPflf5$gdCuMCqo-Tt!bDMNLz^uBjMC_(4pRiT<3B{l#}N=sr~n(ML2}vy*f{ z?F3vJubnO{`}e%>SiXRxaGvNH#?b2AYP@(5{SqjxVU(~nq0V=OpcN#kx2#7zKYA45}B;uJ4mPbc?l4u;Z^o^t7hl|Hy7 ztBLZ3GOjD~hYoEJ&h6y7=3s{EbeUWmkJCF*ogJ{GHN6-_=1E(#l1v!wTZr5!F612O zBrC}Y*%w1QF{|IUI;IEEF2n_mM`ZrBlSgC@HV_t}7n(X*jO$IZxS=VOcG>?E_a+b8nM^Xym;din{p#MTTXo;-*Db#B zmx#Wv&Q_;Ropb6`-MYe5)&l8}l7MLnLrgxbVc)wGZw57FZ=lpyBkbL#M(kbKg?Rm~ z)YFi?1Erq!*#}K^*axr+OA|w*`W$b1g+p~NQgD2J4F}1BQEdw;QCSh!)X8a%5Rstj_k}JN2*p9Yt(|CF)(j(q+i}qX(&T_`0RSxsc{&j(4GvK`nlj7C5Q4y@#RhM!P~3&LvFk*j!)oaN?3v1 zyCAPmg%)7()PLwcjp8Ou>C=(@r3xHQ=&m$?n!867P?{L+&{-4Q|BYF) zhE)p$Z?1kH28il#JjRC70H|XHT87eeEaC~+rcSVs<>BohEXE!kYiU*|X<$?p3~LYv6j^0RgX}-NBh5vJa!y3+95J>*V5(8^-kA1JxrZ@JDt2wh`>9Nol;g zK>w-t7pn6myz*!Lr~X;rZ6Ggi2f`+l)m6gkc*AP5_Hj7dWCFMp>_+iUK5h@F&X<=) z^_$@+?&i>Q(A9OO?^ob`vCBqEJJE!TAta~xm^4UEF)HV*;oTzI@Uhelf^t&86z)pK zaRXYB%;Cx!!$6+(o5R(k<@`I|d^0ym!H)(cG?MzH&|eZXCL7l+QYu{9*}G=tnpK_s z9erJWD^|2)Lp0r0wC7N+zv&v7N!p@5Eu;$pY8>up?u(;DrxR0BJtIK(;8aO?ypJR! zP3Hvo`LH)qmFUgO+5`azi(u8r`$)by})lsesp9BQx=PgRk#VZV`X_odq>C0HC~@P%G}`~l1zh+K~Q%IojD>-R*1!c5E@E- zUN9DEf#TAi9w55F>K+F_Ds>({CB9$q=Zy`G%N--I7?bdy5-=r%`m(?u(_ zK=T3BgC4e(w;?uVeOR!uW@o?lVzLmlozogf}-7VYLxpTX^-npwFqeFM6bxsUYqJm>N{Qq|wH( zqSD4JEcMzMS87c3^V~v+tKrqRH7>4uG0Q@Y`z`#&lp{pbpz1Y2nLSa$`CouzFLYO0{CtQPD!3mkbUd%tx^auih4Hl(EJ|NRmrM@S`k3l{n>+s0)T3LKpW<|7$6^+$pflC(83Mw0nG>*NLVD`Zr;zFHcH zk-(@w7orP#HWqIwuPv3NGSZ?PD>yYoO+eLO3hqLacy73E`wBs>&Kr<&r(EwT|_=D^@Bw&4=?TlDzoshV7u6!R+}abb zeQkmIGa-0JUPp~B8X((K$8F^H)PXsM{5+=-PQnOn0u(%OY^*gvOT z9lkeZwoWdM!|73YtUOK@M9mRA+Ri$xhFEX+XRz@R6-;9Ih&-brwmQm{B#pC(nu6~- ztz6-Vr4|V(s$sK@xkuwiH|FN)MI)%=91_>t_^V0i`s#NuMlrW%RI3rxi9&+2MEh(R zd?A5bI&$pBfT_g}^UG`i*UTN)ohQFWP)mda$46f0VKCQ3_Gsbr#)Hu6G>5|4G^T3` z@6@G0Xthiz9B)*zxjeqbTx_N1pQd8w-&r}ja4^(aLWxsiL*+&}GLR}W&m1hEI!CaV zu9U*S>W=>M>SAZPf3;j`lAJl_oIDYyHt>Z4*jw7D&J*nShuC?bbNp@n#Q~;nR~HD` zV^fCCuV)4*Q80PWQKm-fQUW}?|KBFej!&t0zn>ML#Q~LkQbh6xxp=oaU%xqqGf9}* zOS7LDY299wJy8^t)C#cHA04rnI=~~1jNu45wMsDL<0R;qutEVj1}pPgtr1wcq!_T0 zIN<)#09F(IkO0cJTXeC1Xk1^J~so6 z$n}tVQzL^rI)S4J>S_^JK1U-A^-Yp%bq}%gl7a6x2-gULe6_}xFc%AnwAtWHwxpDX zRr0+Xh$j!RVd(E4GzS3T+;i&(h zV4Z8Q)Q~(3*Hu;;@nKxd2$RAt2uSAfG#`TnFUdzh&lHQAJBIIk1w@Q4c}j>iGem1_(<71Sbu1BvTKIJ|2;O9>qV% zF(QPSzo{ohln(}!8(|zdHet>zX;mDHE4QGFat~C1cqjEi*;m7*Issw9Q{ND#3w!Xl zQ`Zzq>M4=>X)X0>0j`6fo=r)lrOj!QV0rU-A%QyvSFT!#Ew7HQ-g2?6ztq~VW3SpI zt++ce+iC)=`j|B13dBsa4ovD((l~!~usDw69YZiQ9Kp{*Cavlffz}^z;^BoQ0Wd`B zkw*2Zz%De|HI(AXY}va4Bj;8S?Bs$BBwc}Ax~J-U0(r!l0x8wUlkrKiQrn7-73I}yR^dhDw$|SA zR(wiY{ieWuAc0#Fz*SI(#wnLc_1gk@m4>VyIaJw-yySfW^axhazbk;ZXh8LQ_!~k7 zaQ(#rc&$GW$a^&;5)#zK|&+|7Qa7Zw4fyh>0P*Wdq0m=K#Z`-8P_Wu8UW%S<%0ub4ACR-cr}9ww3Lz zx<&n^KrKazTU_1Ify>|VUAW#-Fyit`hWP-Nr|VdnO19UIXfWDqy6j~iuh41lT$lcTMu z8p-^2MjjUz@uUC<^IL}_9bL>dF$+mun$(Yl-)R9_01{G`BqA9Xp)9(yv~`B@le)B1 zkRv7E#3VJU2|4L>^dE(oC7=G1D|!kdODEs1%+0q6N2_l0v-%g|l&fwR2q)7rl8BV=t9itlLR># zwZ(x1x?L?4@#br3bV9A4LzQL#LTPcq^Gu_yq}RfU-ToS*GO;0Fs)Gx>AVl z*F*}*WTFGZ)rKf3OMT%3na7Y$!rv{X^r;N`L z$&MN;mIjJuZxUbc+lqq+a{6^iXaB0cuJWqYrPV9DI=VW$S}mMv5w7RsAIypK@Shm4 zC8RD89!FM?#vo-nd6i}8{)v5veMkHXX<(g~=Db1=wLyqfj+T=n?v+5GaIYq;r zpo;_cx?Qa{u$}-BSS`Va1a={=yeJOCa`dHyq<&gJ-GNe<8XlhL5guChwE{a=Sad)m zxX=Juji?2QR=~qRsmnEa^j6=pXLJ~n*X`;m4U68?h1KnB-V1|ydOsXoD4)HgDO4bq}c=Vew4V)by@ zGdn#%c41Y&MjtJY4Nc%&sH_Goy4s4S7`_Xvl;9tU>t8gU7>`=7@xoasKx#ON2w8#t>^r(gw|L=IV5ZVB!Ck(XjGb7N( zX@1Q>`(85wZQSNl8hUFH%h!6nGyv)ufj+W4CgV?4hqF|g)pG(l2Y))I7>>7YS1)K8 z#Em+1Lx~N5dRbG3>Kx#ZvTj%3(Xh}FMu)pAxuLLa28&b@2cWcu3saqMJ@v()1wj3tKrgHe4B

zrP2z0h_8Bh5eXIUSu&q|J8fmDR9@ZR*S4k?pX*z>vai(vSAUois7&-40_s2ENA&~w zr!EPDp#C@|F*GsQ90`M<{wyU?8ra?(34@@1C?po?u8AGGG)yN>kL!WJ>aS7}hRa(+ z^c*!BSoOClHf(O%*alYpU5Y(a+~Hz39t4A+{)aVTV-O%k&jez#+ktCr-E;0 zOlib3lg7F>2~;-4)`x6IVzqbwVl} zoKziJdE<~EsgqJt@RrS!N|DqlDJjgwEGa#KWm!Z|kRw`(sZJGo3lf#3NzL^(gj%dAs! z@VHpHQ1Iq!O~SQh+}Qtub3iF9u2TV5%LV-yjV`a-$X9uV2DYkjK?DvQn9EF;#VI5h zsw0&GR+A2A4r_r?s|3dcl%auPIi%qEU@VX0TnVf$cJPZkn!q=}>XKAuEL9rHEHLV$ zDGnAa4RHiUtxIu`dpE=p7pIx!!@+pU};PMytAk(74&7jwEbVH#^Yz zk_fa&@<|6eUlM^9Nq$kFkFmYRamlha5q-`KH!J0-#{jCLgWcINO>7ION)GnQ71PAF zfNCqTjh3c??E)(0U|WIU`SSa1)XRPkIoMX9hS(NRjSBWcvBHs|o(W@#r-iCc+f~KG zFgB2nAy%;6!!UM`k0F+@Q!wUBH?2(J>_}SGXB_A}n>5fO&96Doc{XXFMUvYD8oL9y zL`7dFhAE? z39O&s#Sq2tu_yFx+rU&tsdQmwf!7vkh*Um zy^En9(?k$2Mp7bj>C{lKoJtLmT}bscK|Wenl~U{$^*DZ3Pv9TCsS$AZpw-htVeZ!A zgt@<{dc@EK?m|H%N4&>YMFd+Q)w64g)0{)M=Yy*kgvPOmdh&Y? zkuw7UGVtnUp>o{zk>R0%O1Y9HQ=NMYzB3_RDFl?VIO;n>>X^|Y&e1u8p|y#33j=%~ zP`$3Zb8C5^cVf`fi8C5ucQWv5k5E}!>}~5U_P4KSFZXrzwso|pyYujm=8(W~Teiu? z1#S!X_&<%UXMK(yoel_PvDCX@sP4u;3FVUmBp(0&p2&7IDY(C#5nx1s=BN>!&`?VA z!pPzPQ$wlW5mt*x#rf&<06v77kJ}*eR*8PCnaT+>vvEFh@~RN-a&jEmEHu zNEQVIQu5XaN`>8MA4JAN5AS+JvTs(gQ}XyKEECYhF`&fvU2t4(mIi?>`8SWdV8&D%K4g&~iV~X**zkR{vk!4!A&b^&QO;__ZbKFHIug z1#%fM^}mJiLL;PHy*z1tIW2$>Ku!-pqMyPw-+4WrYJfrDu(*82SN*$iJ}V%S0~q55 zD$!{4dLG7E@z(O~I1^1{-`ie?8|rnmWg=Xd2Va}RLXjR05873Pag z_p*ddpg3WDcq!reHW%#S$^Cj+H9%iHYHp2s!X9r4i z?!^}{n&7O#)j2+A=f^sn9jFBoe75WRQ#|*80<6$P83S8zIqrVLC~7l3>U$ zPp=Z5Iph;;rJ-Wvvmc|j`)iK*Wx?jky~~nRF##~$4HEzZrmhx- zCIN7N3B92OUF?M)9-@?DmEDE+LWjJOAb#LmZul3pM?QXJt+(KmmC%@$U?k4HZYDAM7zI93Kg z4X289e+d<$yYGU`m)`W_eqGppZjTZeRY`l4`7x(Q8K|QMDjE9=ZQg>Y9m4ErEwcaH z8G+6tKwy=z!x$?X)vvm&+~0CpxjGKwwoFE$XkM)L~^n)E8Y=?r*uQTp;OH zrEg%Mz5)%1deCL%{+7$i1p=$g1dfdrXXB$TEBCitRxVKJ8O-a->PvFAd7+*j?k_o> z!39~es;^k;FSo5KuUXyMUs}_amLQ(RYO#8>WX74_&IoWKKuZIluq+{gUOlJFAIFe{ ztxbGW6tyg%5rc|#f%Sz|di6&n_qW_GxIm`_?D?f+^@~Dxk*4eYbb5dh!kiSq=yZC6 zkesi<)8|l$8Gw+XThdVH3DM&Kjdd<<@5fx)9@NtI6`iG({aszFSCl$?SFVuSrk%g9 zit{-BM%j%U7XRV>epY~(0|?*RGd!ZN<+c$cK(!$12Qr?=SxWxTg#axMHxFoLla~BW z2@naP{#4i<>yXifEdA@50a6r9wnuDniR?m^CNSzRgkhr6%XXIb5c_x*HZ&| zQy}%X!uABG1GYk>8_o_;^B_gF$bQp^996AAsQ;c-ZTf3n)uv!#IILUMGaL<~ri7hq zIL^;?4ab2KhBC3!?kx#4V?osalVzwe&ChiiI&i{}RjPVDH07m#$TD<(uFKGYlkt<+ zT$1cJI(`D7{y95->92LiF9lm*9LD&d-fKB^)r!7S*9zQJ-&^d$RoSar(`NN=!fauW z)U>b@s&8(qo)#jc?dspPc>24TJ-DWL`v9(GLAP3}3;PGkgQXsQk1gxuXNHvI=71DW z9riBxAA`?*kETCje`r|*(FIX+1n*e$eM(0PbvS-6RwI1%cP0}^b(G*2x_Vdl^|yBv zyH>C4fD3MG#RtR8#s83oo=noLqU!!KlC6b;bXFV*hp;EgS*#JkI$E&KjAQjq3_xW# zMl6P5IDJWQjuo8u*TWg;?nI6>oU4nJGVC87fVBwv}5nXH}+H-=otPV3A7`hb)I(j^;9|%@KuuhG4 zs$Z_@N@V*70Y6*7Pm6=2fMAX#84G&f1AsqA;LnM}_mARr;bDAir=q_}lrUN;i02C8 z(m3MiHoYb^Y(6f~EdqUd9J+Grz<8g2qs<_EMi4$&4*{Q%(7Pqn?vsLWp&;Z8{?@^f z-lFz$#Q45ov-0YPr7$UnNXYUl-I5 z3u=x}qu|CxrFefWc$WfC{X70bTnIT|x%nC-4xg0I&wMJ)lp(ZPy)2HmtF4qzcP}#ja`k;N7*O2&wNdDOpaH$O!cOvO+9m&WLNRv)C}BorR`*`3+ANg9K$KzY?1dVo9UlOw z8--FhrwMo&Ucl|U3}HQW%Rs4Kp?N``oSSeV=KA6Bv7IsHo=Qn$K&o7~{|-uAwN?uupxP#s zTc#m#MzN=a;!>}-2*uoail&AcRBp~mnYA^UZA#Jt>N%>d+c`Tg~R+?$~$kxr^NNc zoL+p8OFVN$daz*a@bKD-eo@BaD}7#5x6Tm}6T;OaN_jtJbhC9F|M!rTJKSc0uM(^i~%ZhlfYT%~cadxVgA) z{Myl!|D3^cKPqmYgW#sC>Q4Nrc0nR_m;7afz6RTy7Rkt?s%Y(AsP4gkz+c@fkBh+b z2&sT+Ebtn?b}T`w&K<+CYcQjhY_?$mTDG-i<)|JGa4p8eAg}dc_#W%?Jq~>5;3J0k z%*C8_*U3V08b~Ki)ai*dwr#?TwgYmX=4AKb4)ZxabAT4HO}H$6Mt5XYm|=n)gW>RG^6=WiOhaf{BBrh|roC{`Eg-CrDGF6x7YM(;<- z7BDI)sn)O7qYc~EcV}!uM^{jm6O1f))UuoiqE72!fg04eAt|PTSPwoRSJ_s?y}QR3 zyUJ^dt2@hUO1+(Jov@<`b-y#|)I_SMt96UoVaWWl`Ojzce_GV9C2(dsWo`Dc#AZJa zNCWeACNqNo^OeX=Y&l057TY^xwdQ=EJA^&_;{%LOPEnQl* zr3E;a2Qd?xEvZZ#k zHN4dcd(MCyg!gH0nc9{GV~;IefEg#W=n7ObxCr1-h3d_RXrt<1&Z zJm+nP-vqf$)rGg*>M*P>y5&|``xPe!bzK2(pWJHT<~zTlqtJZfnqWj~UYUrqmr4T+bR+!cOWGFK$j+DEz;olaUy`+a7tEbUWFqH0?+ zoYBf5FddtBy|(A1U+@aBSf(%VgobY9E7@#&*ISWSthRIvmorE3$h9}N8f%i{!|}MpS5{3=jpHaZ3U0k zR!kzC#x~|7IS7(kt%W2AHS6)8qPo&N%)@`|k}S0%OJs=|YReVVS(ZDtl~&}mS}U5Z z^WW^78Xk48k4GnD>8H|ObC`1wByS1V(7LkWWe^sf{k8mD4`)GW{SHV`U1xOJpx4a} z{0+Ve@aU@`4e=cK90aJq=q#8TIS8jtQ)d?a3}Yi!z_Y;5WADL9UrZrpO>8y! zi!Sqq>B=YkLByjL;ykU#{6@9W<=ULxe3C4gIpR^Xl+00k+|+L9ZgLQoY8h=K$J$au zqc_&|S3N;N(2mV1#=Pv<$Sl(`25a*igfp#+O7nCJNh5Ov_Koa24UKGCdHScQZAMT$ zYHdr=FIUN;`B~Z6@crlzEPSNt4A- zvtwLx;8AzXczxT*6u@b;X%pTY|?J zw_^z&3xcz%aa+2aO_r`iUTqLTjXMXyDB3n=q?E?C`hGUZo-C z{XlpQ?o1cgEeyvPk9t@HrolEw^>BQ#POqOi!oB_o<582EVa3-{;~cQmk|kvjRdNt? z#n+4VPMyi(Ff+1DFgmG*EDSZ|!ssMy?oHe91#X*$wW#RoGMlRYJ*KR;)aj%0nBd@1 zD-W5jT^|}|8!DUdKB~?68mt#B(WS;>EYUN}deOFKSfVv4{4{d4*>3$T+pQA2#ry@2 zx?8ehxlKg6!s}gT!&n@U}K3hy|=^>OJyBnTQjUB(we%KpOEkRmd>r~>8#AQE0ftNIe6>-~t-hdm)Pf?Xk`h4O%OMz>iu64hs)5 z;872YJ;3{Z*mai2!lOP@ZDsYfZc;#QuTZTzet&O9l0?Pz@z4dbVZz%ZRJq~ zr*oFF5G$%ZBGX>{GogNnAMAM`|7e1=%s5SVpHpQ)MC&4Xo4k3PiYBCpqo|N zX6Z5*Sh|UC2-3D31mn+bV@678#8zCAJz21fcErCl$ez?c$soDu)1AJi@i#6mM%4I>E>%X2f=9CHfE&EYTANP)0XLUG<`}|)4P35<56o`vXq%E`Yb{A!4jOc zrY&7++S1L}bPj^iv~A2tnboufqoys>>1g`=tfuewHH}BD>4h`av?a(sSc0?Gw53Z; zTe|t0&OtDmwv8DnvzoSG)U;(f9ZjbdRwlHc_ce`2-+MHdgjj0qfTbpCju%gJ5KwLP zB9jGUk1bs(%KpgBQ4Y}whbooA#TFj5QtF>@Xxh(OEOmiN<8nVL^BNjw?tT-wM0;P zlI4JH&9IQVRQB9LR@`6{)Y76kT28Xt(!99uH#5W%!Pb{6ZiWR~%lVx_Ypf6>Yo#wy z!(5Z&QEOQ5_L)t6hb#@p0g99<>N@2>WncDf5|5gHQhN-dZw><7U+kPiU{MyGWk}0U z!qd;Ve6%3!tqT$sWt!{lq~BXS`n?U-ggFR^S<>5h4aDLw>{}-8R=fpa7hRCqcJTqf zi+J?A7%awe5ZJ}K`VB_c(qh*w^JITC&6-)Y%0W2WF$W7mU0Ip}(x_(JobV4)bM!=b z)S44#r$b}9xT5em2$J7T-`!XuEL>ZzEL_{xj7(|ax>*Mh4B1!MYdRo2>Ru-Yozh-2 zDa=8@fz_A;2po<@XMZg}>5+8+79=B*sN_94==89!0zCRE2&^^-L7bSjl)#PTARsVJ zOJ^4SY!i~KfKuPIIw;uAADZ(JkNSPZquzb)TuwI=#Bvd%nAK{@(k=LO z<%D5;wUmQ^nTjE^jTtH3X>36_~j+EwyeKu9U~d&C-XfrT&4jyya55czMFN zeLQN(KCF9|-x$Q`Z+$O0U8INR6+El&;GY>SP@bezjE{KKQZ=_gu|&8)u|&8)v8@>v zGg_cnT3kI?PR%V)EDZ(WetX76A3dy7ZEw?X!vgHU&YVsV(I zTPE%T#e%SlF34=V_zk~{c=Wp%Bu_aAGg_cnTI{-Io-9z(Y?nEH4uYISvZ!c-Hqfc=Y{E zI_0@Q$w82ahni28Ul6b?It$*GpB%=r9>apLw=T$C$+4Q5ynFHMeqZtE_cd6c4D=j;-K(USNq|;b`fnrl&E>Ijie}VFuh6|Kng`ww(|F*^R)EIYj@TfH=*}|cD z+v2Iq^$tNnZ$ikoFbeo2XQ49Ci+f_WVuxY)7VI~;?~JB96l?o&E1KSIz~yFmG5+=RCWgmH zCS;o}=2`zpd?qM}SJWAMvCaL(^fBmP?=T(w%R z*fA8xZCj~Rr`788kjDS-_ydARt%4-}r{SC`$U#W<;Dc;42Z52WxdF4Z7#6LxN%o36LavIJ8;kt5i8p^Wjme9O<{opwb;8b|MEsa%`5xr(t!L2rDm^ z>p8~iY->g)w7w@+_g&xW@aS7zpn@C(@icm-202F#f|R@)9UTrlsij5LS!qQ%nt5P# zISA(i!DcKLgjQ#10>oM!e1RPmIzku7@f2a}A$F6m`EC-AzMBmCpM%hxo3upeCM{RG zN!v;{>9oEl2K%~iuz2(hHc&whLgFSWv(hGRGG$H=lY`*8Nee=Q zwKU&5H~EI|Ch^$7P39mp=O!%?&UMR`Zql~WO**abiPgR7TOA&Ks|(y@4npE4gJo(C z0xYF@H)&~|V^-=`+7|031FOqHxX5vn7KB!3X#&J?lXg_-2wfn!N$V-X)Mk@zFN-5Ki>y`-XBbKWaKhSyGN;m1WT7zvWw`ne0+e?LTDTqg{5INYV<7S|c z90Vy9YlL*QO}~|cAcya$L34iV$_B5!Ij{9ulH3fiLel}*)=Zb2JgIKIp*j7%Mg4KB z506@Z5=P_t%RxY?Evr8Uog4%S6nZa7YwyU-6TQhBc9}yuxc$mr$Yg2pZ5%5t0tD>P zHfFlwL=OO2<#Mt+6r9O!Et=EW0h)DT>uu_rr17Zro$QRHL7wW%L8!Y|U~yP5w@lo< z0t=FnLqHm={Tdbp-toJLN56}yk7gHh5bAc(;;@UBiQ7dB!Y;ZXv+d%$ei!lRcQN%k z>|zcA_qXCl(ku=Ob(V>EDx2Y35O&c4sb8+M1vHlH96Y~VclRMF*L{!LVsRCZT3hlS z?4c>wb?{z?cDdBSRL|s|w@RVBLmvhn!EJA2@`VhP)5a&ph6`=ZH4oqS#}bcPx{qp~ zlHb@cus571ze&c7n|RcWn=77KA}pR+A}pTS)(nfB;+c0e(g|0;MM22}k6KW~2sl*R zNQde)Iu6y!K|6JT8mh6maQ552PVt!NREM*44bSMFgV5Y=nf|Y}V-~i>nBXELrz}k(VUuV-<;!U<{(Jwq+MoubB~3j2XqAXJ>Y!}J>ax% z?)iNxk1w?2Q7cc(>?fHMRWrT0$FiWZEQ>^0!G#n#2=0R1g78iOOA{c6=wwq5J-1xP znL2K~(^065miq?qv9Ho0y3OYgI0Cd#Jn9h`(&n4r*w8;Ubn|~m#+?3m)Qp>R^Ogu* zuq8q_Z(B1grsL+*`*{8nGk!8nbMgRx>z#ST!zw~f=Q6qqpmz#lF= zYH4PE9gii*vWg`*>+5(dUCwMvS2km{j|$%F&OtDGwv8DnrLn$75kQ#FnVQGM_NUx zkKnGQElu{;(gcWe(T<%RoZJpjeh!_6*#F|&Js!0R#N~8vw2dU~H2Nv@7t?$(dT;oy z@|TYe+D|M*uSEn_Whj;zGa*mcJ0lLGTs= z7KTG?i3-fDv)sSskTV6vqaO0+vRq4qS*|6*EZ4SXSh!hkc9Sie-~^NTzfx>^4?JqI zrsolz!cX)zPCwDL2t90WHLvmorPrRis4b_8jF z4v-%Q@`sJ-(ce)UTpr+2Ys1tvZ6mojjeb(r+*;M<6g&W8bBg5bOt4nXL6Bn)nYyNh zWO5V}xH(xrNA>U)LOg2q90Ark%XQ(*>rdlKkn{vzzNFX_@fYOcJ z4{gIK8_!vgJ|`pTOC3&+^Yh6qekN9SN5SRj&#Zh4shW)|@X$k$>{|uCB?^wj6TT%X zpES8MjzAn8vXjL1M@eM`m*b{i(A=N=-2A8Yx{omfXtFvy>As2I{7Fhxf3QOjee@!Q zx-<8WC4%Y8LpelbXtts)L%A+LKB7_Z*4d6IskZAlZH4HtLIfik1z)8{G%6pO>=78N zU{j2>tOOvdVC^qw;2ElN`WX4|(DyuO`~>06K~M8WmCDICERnIlMK zX7}XfoTcoJQa=QTMY~V*dU;}|m%$<{3eH~s2SOn~fz{X*1S%k9s(^w>4|Ux9x$Gsl zVKxdbB{jN$FQ(x=x=RyGA`&!Lyh1J7(8Lp@hot9h#HX^Yzw1?B1&jLrF7Uu)@<9^@ z$V8&O?quqLX%vQj?&m#ae=rL0hE|!0b;r08K^ere3(n z`uD(U78@m)ZH4Z|MhVGcFrA~cnkcxeXk&Z((WB4cp%+k$DCB59K4#l|Y2=FK&tN{_ z>Js-bC0+-&@LXMx7SjE6OUHuH5L1wb`(kyojX;kldwM)MqsKH_QIAn@=fxfK;>4BX z>l2rd?61v8F4`pJO11|APer+WaCjUkpSJxYdXY+vc&X^HHjsrXUJ2Gn+^;m3NBeJC*0s~J6o^K znFdL7@=y}F7e@z-z%-)Z7Z}rsN{P0-c}w_v3c)Qp~l7U3KBV~x>WRyvw zvPzth++CjBlILi-gV{=P@#(&2(D?N_x6AHDZC8lQy$D(w3<#BbM1tiNZ=Y zGpmv(sj_NC36j-DP#}wfW3w6|DJq{dwW-kf<7@zW5w$Mb1Rq5unYJr$Ed& z*Qp-f=NFt#^CrV-W-R2CkQi+BsLRV^<^HvmY2cgy9OInBF-fN&$AnzX)_ym+O6@wc zVt}c+L4;_uZK5GTca$3KkFn>xrr>03UBd{H#nU|vo^CXl)E-kOP45#0mkcb49O$&W zcIi&u)aoWK`%hLTe~gkvQ~eb$mxNsLrUd;JuTFUDu6VPHR;9Hh{xtcJefKh>CvN;L zGkU@~lco+k9@^#SnMNco_|7yUCCksCkP`)OZuvL` zbRa26qo7$mdboURPhWAg*f%h~le3=&T=49@V3a0Wm_fEmTC9PRmXtVkf)nh3M8T0n zV#YKTwu3oL!e<%hPC2CPuH^_8BT;Y(DS8g4iIz8wkFa+QbQ7I>SmcJ}5gtEES@Oyx zCJ=%{nj$w`C}v!%I_h_9UPPySmNy&DG6O4v(WtuO6tzji+&0}!8no{yeaF7TvUa}6 zv_+ES6d*f%k5x7oJmt?xlur~c{)i%D_cQTU7=kEG060}0f^ZBR8jW(%rEglDvjb;) zlj&@ubE!1UU^0;wgDPnyYx`g_MZx1szx;8a>5vxFce2K9VA%=LTx2EH3(c$~)izMo zvoctDM8PlC(<&+-n$l@S2o5QE2}FY-tTzrHEf8-Q9iD~^&aOC<)K0G5~R~fUXazA9b2h|F4_rYb=pPjX-^YP`r%wu%5 zmrh5!CPxaActi+J97-z?jZ(F&cpu8fqjS7?bdH%qV&;wFQSw?;H%TyICJA}L29_5k zFZ(4q)qcX$$B`C}zc_J$Ak;+)GV2}N4|v|>14b3e8Y49cMwKWy7HF|O_dxAL=H?oC zNtm_)GD=+l!T{c!;h*dE^4v@>(=3d=jDqK!EC`YvA~O*uFFC4Zdl{t;fcgt6E^@e_ za>)J&*@f9c#tE>i8ooa^ovR5z&&ix`beJpw)0st=83k`{2}lyOJaS};93}6h$nFkgP=w1m z)Zk1KsWS?avs}u-qPmwcC$FY=6YV?`CWwX?1e|hslrrKg+$@`zq7xfUj@u*%-DV2X zDECrnt&c9@gPsTZpc&0$(Zd;})1<|%5z>+>mreqL9g8S9=1OF3I=kvA88Hq~uKb;p zD0o^xtzQKV7Rsd7Vr+rT^LJ9B;3%3prW2KK8apXjYtO#A-%Y~Y4WX!#(PtLv&BZ8E zy~I<%T5A=-nj{L2>L9Ut>oEEjll z=K?c#m^5T9HbYYdu7<>zM39&ic=Jlc=~SktB?Xp-NI_g--SG<6N+d(~Lo)d%z@y+g z>L+FUXxE%iTz3Res6_lx#X4CjzS zc1V9an~swJb7``~QA=koM|mK=!`j(Ir4U<({^ubv4%eLV8|Y$Ih`_FxL7Z!*A2SH? zW;(@4F5$A73-hp)onP4gD>=ngx3E2}Jgn6W2J^7ibTAH89!3UCtjHig4~v3B*GV2m z0Onz&Cjc3N5xaEYY&a|=$kTr$ctOa~Tua-X0vyuJFDqsc5|*2RV!eNPI#9De&O*|3 zcqE-{yQaH9^lnjbxFuPbMx_*&m9sDX1_frT$J*FVdXR7T+RixBzR5im)m9&_t zl2(4E8U=qZGF38S8bi7AGu0^gj5AeIYcY|6%=0tVD7c@gM&&ycnJNi0Q>Cc0&QwX2 znJTHSg&Wc9mmpJ(f}34-If}*Wpc>4l`vIfs&3< zUrY)tN*{}_>$!q7k+gYkhqPrnin1~#^(d^ktyz`SNtNjpB}f8DP*RVAn{y6P`3}Xo z9TMhQ9EvDuL%x!H*mN?7XGDSp0J(7jlbaObXEd@rh(j`%*k&5!>D34K&+SCj;GNqc z1Z|!?XLW8z1uK9~Z#HzA*|5O&>xbC|Llj(MMBaidoqkMNNP$Ts88$w%Lp0ho(GZ25 zGdoe)j4kIi)vv-b9cA`Up0Yjlqr^#|3j4E$FLGq_;n=a3E;9~H{=3XLUEI zK>;}mF5{M2-4TxCn~Lg>@836E-A!kFR~rTM*wSjF;1io0->@iCSB=3Sukq&k8Y4rp z{gVzd17#E(HW8ePNNc=AVYP)E^i-D^Wh9;|*n^LPOFqQ4`mg`4^Xf^w^CZDj3gjpi zD|ovod9>L@_ViEKHfIu-8ZB_GcB#>VjIs8Jffl0Ra(qLB>xtu*1*71y;xbXbe(Dss z9a7_qqm(td@FCb6i-P<6L{a(7K2ctiQ^nwzG1O8XU`LAH%?-*&%%G6)N6erk?|Y>k zrGJfrbK^N~iNxSEBmMZFx)I~ov35(@)WqfvM%r?4w)byT&KWciPA6=s0 z^`i?>7+uK0jV@7|0x;XYt@Zl0Hq*D@NI?`lGP2HzN1||O$w6kQ9oi^O0Mt)m8O<0u zQ?d!xw@umnyKY9S%jIw27b$1WGhJsqoM*a@C9QZrwjE~jvXpvw*;)1Yj@4bo)g2wh zV#mtf{@zk?a-up%K2V)=@!8Mdmvb&Y^L(m1QEvX);fEb|Rk=8N5w6`B!Pl*EC2eWv zaB*m$&wLBJZ)A8JAFIaauX~Gq@`Y?%Wos@SYTZ~K+E^SeZbjSZ$l%VQk+IQjKqH}% zu~zc|?Heipxp-lL{~H|{8N4_`;u7b#%O*;toh|Yu?c#;`~gvjv3P~~DR z;3o%$$3IoLB>lTZ82FH_#nI97aH(ZQNBaAYi}5}0aUcq*)~)67mbUYayjP4!f6$12 z$%b8}&{A&Q+FDq&?Si!f52FpWQv`bbO#zzXp?IQ!F!bq>e z{d9%O;6NX~ES~m!urf}WT~dkg-jBK$7Zz3hoI;~+N{}=wybC)^^7R2oEDo^(T7x7a;60NyOU9HRH!kd zqw-0Udp{L{IBsMIpoW99pr@x#?vl=qj{p7$FEN8)**-7!ERwJE&+y1LX|d0wmEY$mc(%_``KHrn%s}y4+5Ymydm0Vj z;g|HF`572oDMs4tKWU@pVA9**lDH_i?5xjf5|V0*35FCx(n_6U2Nl97IO>v^gi-mV z$(@7*^7Sco%|9d2x>jOxXHx@{FPY+VvY&a;|kQN7pwDOHI3Z6B}sC?5g z%42(a1`q>#28K)J9ob&Tn+}>5d{%23NAZq8G%(N}Y^wI>zJ?Af!r&MYXPkTT1+d}UZ% zgw|UW!FjkPpwo>gEVJ>IUUV21&L(n5o02u9oWTlexEymj*%ZrnVu$Eb(`80_UTVsh zgvASI=h&fgVr0k-Y%)x0T!9mdf=lq8l@lXXz7R?wIzTm^fkeSq=^>8Fho;2J2*B+) zvJ!x-f@kW)$l!A0BFJF9?MvXqqTttr0E>N?;+DMrg?%FjSs>fKMQIAaZ2NYW*SE9M!h@cZOS658f}_e8^lg3;G>F2!k%QZ}C`|!q z_SL%Jun*sM<;E1>c6D}|ypQC0F)z&pNP~q>($GEb?vB!zqNqs{W<5B3>5v6`zI2!r z?Ax=069vb%NYm*>a2}bIdG?ZmBsuWB>?w>Wxa7c0FOoy%QNZN@w00lu5&-OW$*fh( zxBRGLz6O}D;wU&(oXuGRb0jjgNM3l2Kk03hx_-|;u{F9{2YI$0Ao>Pi;@u9<8d(&a zK74jLEGg4b@TJ1U$buX;3XXj^Yh+(cwhX3mQZ9&Wq<+4Mo)kt*IO7+2YA6am>$8od z%Cn6WB01Zb&VOGB9~{dTAJp=w94<_$ zoTR`SWaCkAIpL|pPWpNc;W)nRba24#Qw_&=T7|9XTScPb?2@HN`02V!HsS2Y( z4c`xPSK|cW$+Z-q@v;MgnJni}AE3F&cmpPF7a4DG9N1~k8(3NtTyn74zwAQNTr^V> zdk|QqxiM`%3XVmy>_kVUlm)fbVS}o;I$Z``7eKg{;^9vwE_~HU%w+}@InrXukF?}m zf>wDjeWKte&Z^1(l*ZIeyDd}wk~xu{OA2eZU{3E>-^Ks3ANPR*I>~Ue?wUJ2 z%}ElBS|ovFOdP3cd*Fn_aFhoB!^cwYktvx1*|oR(7P9l&8?BJ={_BI}OQobBv$%(J zUS)g?=TiK4l=-d@`S6vc6Rj=Wahmn?)Myl3BAl`C@Ewz2Oh|zj&Xb|6teUf7k~zny zoMdFhrDtZkQuO8a!P^0zosu(>qSKQ?O1oN$AU~kcKDex*W;LBj^>R;$tE>>gbdG}G zsHbyOJ~TNmju6DRmz!MdplQ}?GQQhG!hE+Usf(mz%^(&9*HyCc<2iwOM&C3NyVB`6 zCViB;0L*sf*=cf3_OjFDnn^Fy43E8xg3HncnNP#GLS()wMqcu&nC)ehIslx@_?bp> z3GUEnkabk&>mwDxWf&{GmG_FY|2p@`&eLocgXIRv@!ctslbm!`+eW0yq=r=UlbR^F zBsJaLQTe8k?_@h3tUpPZN60Cn9JALxDagB`;F1yLP`M8PlhlAEY}9|1*eWcU9DqNo0_Q`UNCBsVV&q}*3n zxq~P}p?q+ujm;{`km_a=Whew3zZtn8%0$7-uI2mkc}@O!qshr9N!T~!KBB{H29IYa*pwncgBu2CPAnL4FM~3ZB#;p;H1dn35g&j_OOO(P@7rggzZN+isvNl~w~-ZCvPHs`WQ^=cET6dKCN@ zwA+o!=Qa65j3y_l6Wce@PeG0(suO}yostTKTU=4UgDA~AU&Cck>R=csFE)Odb(@RL zl0&ljKa^nag`RZ(jz~O&K_n@GxFI-784eh}luhgi@zLbPr(g*etZ(R&sZ_dTnKwGf zr~5{PV_-|!`GM`+L$hzh7bbb4o9{l$Sjc?V`1o)Qp%mW+AF|awWdCzL8ORCHwNi~0|8wHo>mAv@v%O_1uo-__tljKRS zk-lx7v($}(zh{As+&DogTz+7Sg3maxks1RVndb+#D7YWkqVgSzz(&FhY!r3YfsIrd z*hn=$utmX5^oq*oHTgq~CMU2F+c!}!uo1#{2D1!omwJKi(&+^@A~CQLDI3_Lluck` z6FWlu<^vmDa;r&6=#p{FE*sbg$H11d^8?!V;B5_|8Be!pd)R3&qPkFLPPCH&t(;NF)||iIgq$Mk&V&y_n%}OzyIv#! z*Ndbl05c7%B-mlH9TMzxMv(v)WC7mWu)5we`1Ps5&#d%Hatx~^H|wxUs+<9&njco9 z;1WB#yQA_+(`>^k3Daj$#Qd-t1%J=ND!I|;Qn>uE8U>$mSS2-vRWi>Ht5I-2tVZQK z6k(Nw8CEIktivj)GOUtneproyo7fqZ&uj9B7)?%CCAM#(URWgr!zv{`6k+uW&&ynq zdYO7*l}HS$M9PNMDCKE|RbtYqkh~jKqof;#Rl0G8Rfnt>R` z@wE<~$H)Yl*!{Ry8MX2x(N&3Bn|M8=WtLmP8@!R-U_{8@3XXy&TfsN}CN2ce-3lfy zLo!)mJmA)&WMwRy-io~1>(AARN@utgNpg&bBsc4LNUAhlQq7NtQE&-*-Q7|7q-nPC zkc8=MC}Ms*jDo*s@sQl;EGb-mJdA?RI3AK3;~|;n$HOSN9}lDQO(PyQw}VJ7433mL z|8Pbg%xLVkczY2 z8;#NgfcJ7_aCZ%r$ANOldWp`58`cl9E9zLHbDdEVQ^D(uk`^~LP_fICnj5K)c_a0) z%t!@q3`fC{lhhe0qVSDjayZi&sVGeW@SIAv#2>t8e!b}l{mAvEC&)^W5U`1}J#F$2 zEqpOeTJ;BE>K57bt+j4Ji=)Xzj-$B@z0htfD}As*L3H|FqDyMgkcVuG%xbHgtj{qu z8nTu&C4L4h3XZE4py#L#l4}{#QyqlkEKA43cZZi9l3BLJn`K*OHp?2l%hlYRyTORW z_i}GAA|>zTrgM(xe4^lDS+jpHm!!`&Lr+Q0wL_ntdG#gn!I3k{>ts@{YdA>}jFuF`LInMmOLR$Kv?F$guy$*NsMZTzlMTbO&cqo!eKO z0BLzajWAq6rZD!ZlT=!IgcPLV+UjR=_oAMYJmz_m5r~v-G6LZyx|zImN?N>uo3xI# z!x3zwM!^w4u+C}DAW4YX6!~JoWIRA%kWp~iOihlv5yDrBK!jTv%}IK*r|p}Kwv&~4 zDk%pi3eIqqb@y2posKlEpTro*$UE`A>FW~S$-Bdo+nb0^H%oN5Sy*F~vUp&d%tZSk z08N(yKJF>-<3@qUgVM}O<0QxFNOH3-1&}IB0i>E=3W$Q6Qb1I`Ls1GKVa98Um|qHr zg3AEDC+{hd8`pXiF258I1sB&%;hLMGq{dPJndg@RqTqfhAS&N9N&yXLGzoLLOi|aP zC_sFLb6pc-G!N5Ma#{X$eeugM=`G&#$8V*4igNyw47X+qFVQ&NHOGVi*1 zaBwR56UMlmB)+n-Hqz;UA?RO`rA8-U8`4i^sZddhF`14x3!nnl)F~dwyI&c6PxRqcIUz2?W2tNK^Bw|BL-ukKpWw|cetadlT`v9Huy>hD|A z+p((8{McJ8cb1AB9qpZ^uJ-a8{Mdr)@%3wE_=;Ufa8;w)?LAci(m3 z^_Obz-2T(Ic2~wrg9E*-L;6!3h1%{r58iRlPv5E@c=>btC!amA>y87jK6&8PZxs5+ z%H^NFb+`HK#b9}RdGOMU%EVZ?r!+7ILXQfs7w+Hx=!>=|m+*lk%20m6U)V}t7?T$Mj z6eYJZTOwAxLhY$%YA@fn?~Of$jcaf2*|2HdH8)(oeshoLrSQQ*`zj3X)Jtf8POGZW zzOwehSN4DFn->gE3=Yar%12fXygONY^ogmv->L0>S@e)7MN@&i2k*KM{kf>UaNujt z?tf~}!O4dYy!6s!^|+pa3Y4CzySi-Z8@r~SG}Bkfz#9u=0Q>iTdFqMBI2?w@P;s<%e8)KYv~SOz{jcn;-S^Ugm-Zfb z=gYOb_CUb>&win{=RS<`!OuNwbeQa%Ez0ymkFBuH-0J#K_**W5(A=VP?0s-v4pumxe}46NBX* ze4VF^(Gbd3%Bg3+R(t#_wfpZmxa*Mv@7`7Dxenf8%g9EJunF)j)(Do5l?S!&IKOb< z#jovu@hg^u(Jc(S5ceLtGp4JBz31Q~_Z5bE<#RoSgLi#?YVsY7iKPhDt<@ji*)rlz zhRN#12i|?V_W7@xF2YFbXbiS--L_(-+);pJpgmbV;mY#3kkb=uoqQT)vU;8|d6!P2 z^JGL}`0!NMjEvkeF)9Qu+X?lEZYHa%;ZqV7!r(D?^!S1M{%^mt|7$PSs&B%D7A`2% zs&_!km|h2W?b6~bjS$>C(ceF?W3qZi?f!fBzqQLC8?uHA{aj*Mb^={q9);g*@n?^9 zj{Dwu{J?h~lz!duv>B|)>WPMX246g+_Koa{9sAVL8d|`2mAQ6o44*cdtgbNHqy<0l z^8UTIPgU=0v?dn2w4ho`ZWaBJHBpR1F2$8Aaw%S49<&s% zG8Fee`bO=gH%-v1M^rrN_3N+cxo+*2t9q_kzsY5BoGUcwPgeivz`d{6?t3s}?Jj*Y zi$^99?Ifxc$Htb+17>IPw@fnpE9)^7^+CSxt9E8zqBVnA-gy{uXS+rK)5B>qdr#%ERN=PK=ZOhT+R5 z`X{SbAqW**y7xb}|JAQ2gn$i8)id?^LO-O#7rM5>MA0cx?;WpAedk$mR`KUOQU+rHS$ud}@rm|1`>5e~e6%?-?C~o^}*q{k1)lqQenQqEP$B%To{C zt3{HoX4x9Um2aAPWTw9QR_(3(E-sw+fwRS+Th|TZ(`Mor&pr=&l$_`O=L_dua$ceK zrK)(ey)TG&dGSqj&&f9m?U&RrvRbtl7TQuPp%pHb?4mN!i)kW3Y^1+uU}$t?3?H0J zZAGRKqnqR!uon#KXvNwO=+|C)OWa>o=Ta}+Z``R2<5fi%;^3fYQJdg^u6R~IQr`+g zokE+n7pqebylRFQF0$tuB%^DGOD2|WM$S4}U4`&<;O)1K8%4mJ=q=RVe9eS4=}S$DfdgRtsRQWwN@s=dy`` z!IBMH5{r>2PgZ}Fo7q2gPi^;W`B@M;oqAavU1;gd@RyI5dIrnGh1&o9L|^Rb3Vcy1 zlYso@OcM|emXo9y*N;`4c6W~-cO};c${cOR^Nsc0> z8Agqxnqa1DE0bQN>E1CtYfHLkNcgZ?tDXm2Gg$&wNyZN=U}y?D|jzQy$|RtE2woUCA}>}Epr=sQ!@yAM9LYyZ1@54`k6F*EIP@Xf~_ zaUK^JFmVgAIJ1e={zqS(y7y^=omf4LcK@&M5m$)S@*|TVBl`R1ZCJCwlF?M#{jizV zvO0eK75E90`cJ*^^ugzzqLVvLcLQ;&SAyV%>oKK~>tMAs_1L#+kG*U>#RUb&Z&Z*} zvQehIosZy%-(T)qwW6cFtm_WPt)1Aqwt_%9d{uF{G>D{m zQ|;?d)ZW^2;JaU_?Rv{N3ar8lEf-vJVc{bD{|E8^K@VV-Nmp)s#Q5stK&$Hd07+e2KS!q+Y^vU+Y@H4D?Qn zqt^4v6H~jMNxWR)nrm*{SlDnqe>e4-eQ$hQlIN}EaZTK$WBp?zLp{SIC1~--!b&~} zi^Uae(r__^vHUa+&UkF|dD)8!>rm@!5os?;Bxz}FZ9V_|i?Q604zv~rZ!PYW0?#0P zQ_J~5k*qfO4LZ7h2su{A0@@Y2(UB%SyoD-R~oWOcnrqKj-8v^2?*CC$`h&(~f?#bdXr znv5aGxBxhPqdN=mrc+;dQl>h-sjNNs(LF=O;jJv+OjbWCroMOY)b017gZrO(dFu7O z@ZpS>ci)4u0q9EZ{n&&5NarPZncDN+Sd4tpEOX$_Fh_?gQfy7gfj$<9w=iHB zN%cA{nU7NszKk#c*HF`|IK5=vjn#1NjW@)R=;EM*CqsZZhx|oH$$f7>CUNA+Ck?jl z+Zm}C!w3P`Fc6K2=ti24P@3;nYfpcL+M`U5$jrXyE-*HoHm!&Orn?8f@&a-&c)`B0 zvfIna>RASW6T-;*=4)m|OqweWuVdA!HSOh6dw*O1%2KJVU;8$cz))Nt9UGCaRHJY| z+&{2&vN~xph}!Ez!^bZ!dR-~d*+&Ovkr%-v7%<}5Z*Xmjh zd_1Nmt0iA}3%MQWy2+djww=L7B8=g_J@?|H;lsC-$67UYS=}NX9U2`NOnx#nZGtPa z{MKz~#`vJ#P7j@lWZU$YcOh; zVV%7BL8EWCKD6(RdkfZrWM^nfs~xiM-}`t{lQV)}RA^l;8TbW-EtniSzm-4aH^!S* zy%iGx$o`ClXkBg>odH;D+6Gg-c5~stGvAnc;(nRS7DtR$`gKvk6%QLeSnH5s-HvBf()m1x$c}Jl!}1Dfy8v z%;e2$Fj|R3h92ZHN-4BzD^HkWVS*T1d+L#WZ$E6-J(x?T)BE1}!o?Ul$!V8gCiQ*W zul%lQC5oOyJTU-SM+O9~6}SU~VO*}Ofxl3&bu`qSp5OoILy)ep?qUq5J9btX9Jd~B zN0?ntck2K2tw)o^F{_*RK4~;$X<+3rR<4W;ZZ|_)nY{TkTAgB1l5NQ4$A4l5${v$Dm(X1)AGR(}dV6S=~H)Kf=MQq8tv)rp^T9F`-&#Rb#*sjt3i_JPp>w}(@A z??V03HZfexA_SZwS+bqVJy=*5$9BrT?PT>yQ>stqd8=tG7~aX~SX}-N4`Kn${!B7f z89;bX%ui=Xk%T-PFcU}PK#{bb3zOBOM{(7D8e~tLy8Fwud$`~>(GoCvLtjdxx>Ie? zD>jsw38LbvxAu_`!9mk%?FPK*p$_!@E8EMxrD9iSUuUVebCs+|kM@`A-R7}iR?f+K zeR_*?=&W|fEBp35KlR|7Q{Q<&mZhCtEBn^0=V)HX?8#z9EJqT0^ofMYYTtnu-$8~^xc1tOx&koynwhRrgm?>^(~q=Y(%xG* z_|R)+VLbKV%Vx_-La?EPL4zry%#13=oz((vyBbU6vRvMDVlMk3TP14$V?(1lEVo>Oau^*s+DJ;isfDW@F2$p-gmQ0%CqMOO;MYY|J*Pi(T zVrWWK4=he7I1~{TBw>^#qc{c9z!uTi&dKUB;|=zI>sy5ZxY_4YN_uY$hjcWOuF3Qe z=RD%b*#yy!cxQ``Gz`{f><)p}7_lzv$Sw(1aK?sHHt>5`vFb89oV1?6j_j8h*|j!I z7y?nJ7l!D?8G*!^<`b11pb14x3q-&JpPfXmVt^?(>aW@tvGT8zKFbYb?P!)YW_w6L zuj9;C6+DM9wWALYi+#Px>LP4HmS|m*)gPb;YveNZ?gTv1WMQ+OAaaTWD}N^6%pG-E z-5ACH-`tx9*;Srtg6^5}*ai$@5u5F*<1D)oAmzTwmW_}ER<{spNl@9tFqgZfNFilr z=K^S^W?Fy+DY!zyT(Jo(v14NiFc^e{r0D3FiJ5=h{ilCSOmxJQa#75Wo|qpU(GeZd z{XFmUe&0Fg-kU;p_2#G&dG9^v{kC`Cz6-A&0@3;UAY0mgvAx}#ps--aC)+T2Fg~Mb z;Nba_dtqH@V+wBM4P|MEEsw%2}%ycw`nz?G}t znZ@$V>I$Vjj9VihS0DZ}XgU!t7=AW19CqkZmTd3Qpfhb6+=L<~6QD@wO1Pcq4rno! z>`a62U`=Efo@3#*)#4W)Xcy-WK^Z)N05sB;!gJX)`w4}`vZ(M7jY9pz+uls2@uHqNA<wiT z9awzo3}x6u#-Q4_?@30d++mDqJY=yKd?V=p&)z!zZ~K<}lZCHdLhOUjV!zK*-G|%r z1zS$)oS<=wAicRojqK)5>_2Vu}t+s=4)GgFql90ql#YM|8u(0yxpZp!{ zMkELV?J-jv8)WwUr$<20h#r!ce{x#l8R)q9)`y9SW0&{jkQAjc3t~Sw08DBue(tm1 z%%6HHsN{&6b3>3baUUWc{k_|hg;NMsHEc5yrw&8_@T;9ab67#@00#QdE=&D!2046( zA7?;qXD(2$6s1F{4SQ>fS-i+^zRpb`vlfW zh3@s=oj-SC?j6Q}UzB6Ot@M7)hZ6(iH!P3@4^KVH7Pq5-1Q0?vb(S z(XpAR%s|D;ZYpWTSbV)!i*T7V@U=Ut#o?HZlEV~QZE6jHII=YI4i|jH`8b>(O9Mq` z1+7tY?UwjPgTy6bnwwd>jDRggiL?f+50asZ)UMm&>v4UOq=J@38YG=zUl|TUA{#w| z6spid|6WTi3jR+=-;?h}DT+A>B32!>E5?tgT45WIR*;c*TwuY136R_~(5_Z6nqWSr zl=kPJ|6u;5<58A{#eR2paq^J@<~cJ4|0VK-=8rwIc;e%h;t~v3av6$KZepgS=b__#dm;W$H&Kfm}6!UWp#HJf)OmJ3kn)~#7;>j(@!E>~uA zV6*$DLnby-6|dLs)D+{3^Uu9YoUubG#*-TX8KFUYdH?fY`SIYro+>6uRKoMKQ1+$iS5_o=g%%2MsBHXx@5Xf zpsQiiC2uu{6i9wK-}BlSCr^lWY*DnQz5@jl+8G`D!FGupmI6JKWe9(1HVFq?3HujX zFD;?7M-p?I6%*A!P|1@9Zn=5qPrkG8{()Tsm1r6 z$PSwa?+)|doVxHbGgobl?)C&J;VZ;0Xg5*qZh#0i9(F<%S-a1CI`{DlWbe6jRF{fB zfX~G$iL~uxkXCKt=4b8BU}&&fNJGpYLpoPYdl*;3LZTqyFjjUwIbDr7LVE`BWgTsD z7qf9Tn2{b8Do{gux+1C9e=DNNLF04Ko+uP`GK^{ZPFyHWevgDYt5izp2w-Uuyz8A#o7J&L%@}>Ohy(no zrVh`FdsTr-_A@d%nTZWNR?@uUU4i z`^n)FOUz3pyvH!3gSSQc^U32YUltyhmQ9Q@4=UIYs4gjuPM3>_eL`l85%r+^C^Z3f{RV@5?~^O=aM&Z>qR%wrYLBazKa(Jd8NB1Jhc%e zV1CLC*^W?5bU+Ziq{tJmExx_)!n+@{`u5NP2+U})Sk4&K#v*cW!L-uHW?zOO;rWdF zo`QabSSJda=AZw~!ZC#40^*okBYi7838QGTx&w)qsPuHDRD=9bjz-t}!s8SSUp~2T z9GnK>z-!!Bm3#3Qau_wd*m_1#WGyJAnLD8+pO z_IdVwom4PdhPoK#8!9g@ZB#=O;pRHOw&>GquP2o#kGOJt6s?%uWun6?=Sxeu80>_Nk#c-Ce?_Q?H=1ZIQV7U%z(#9xSCkY{QO zhVEXkC6d)zC>N1WGo>bbr3IYLbeKZ6n3>}&xz75Ru{kg`u`pHs6ZH;#2rcHqnM270 z;<=+^I}GivN?`$~cfd94@l5R>z(8Cs{PJ_XN-$|o8s1LA#iRFKQ!UKSC;zC|pG3fYxi;Y2k+J{MTwL6|l~Yx+L=ddCSGn zL*XoU2yO>S@f09=m%?7Q))ct!8kevN$q(OaJODR4ca0Wt2JN{s@ZAqVpt;!(c@km! zZR3AXn3<@M^tBzpaJUk+gJvM#J&&3#ByQWQcmvbq?q~K`Dlg_s>K+H*#CwU}BEz8{ z*C5@L-<9mNhc9DD&{ppo(lB!lIZ@n0!^{(av}4h$>rp0Ko}6JJKqItE7W9v$1=4*MHg%2*jL;p zq&;OAv^I+Q+V#&>i3^>exEm2rm5-Jyc+pd<%awNdVDy9vHWp8uyYTV}X*WlXrEWG! z8;fw|m^qb}Xb++kH!_j1Nah@~o}ga4+xJdt0i+=cI^H;kb#a-8*a{-@g^{q z0p#gFP&=;&(?mK+^AP=h6pcd!9k^kDz&%KOEg^dK#~m%f0(V`#K*p1c7e7`+;0CM(07Wps}-ahDzrB#B0W0{VUs^j_6MeAHaX;eKz(gElPDyxc{<$v}KYK$Mh=YR;0w#fqQA;MQ%^x|38s{v2 zCfggGF<6DBIz3^07!kPkD8vFeH7c_55wLM6QA5M z!?p%=&uiWZiUagjs*`KZ3BV_*_{F4+?`>!Cn6|-A26D3ipMj~o_2Cs{W40lUI4W;T zR@K#-SAkQ8EjnbqbErJqKG;g}`^kMwSI>|jNx@J69wM+0kad>g!)uyG8C4S%u=X(j zwPRzRjY@%>FZ4-g67s^rq617*d+9~9I$qBiF+ZIs5i@hwmrWO4hA{54$jL<7q`WlA z_N*~t#8gJ*F)DYs?s~0TBt+heva;i*!TMV1E{+im*AdB9kTq5?7!KkNe^XRKhxO~2 zmvUE=`7b`v0m*Gi_J|OHrJX7#$5cL;0KtT*M)qOnT_64lg9`>bv+K?{vXrUwML;0S z6vWGHJK^BZk~67*%1IAiun4+VVc+%QyOvmmbuE2pVWa!n(Qn9dewz=4sAPUXS<*P# zaO94c0Z2c9m}50bHAk@~P=G7sarHLo0lZ5{r33HcAQrSXCv-s#~)HhJo zJM^B%YQ8#b#jC6jfTskSwdx@t324qC*U#`|Ica})(Ti1Wd!Y_M3!^F&h>Oia7C(7Y zhwV;O6O(|d0xEV~32oeR;WjX;^=jD$1JIAi(xHgAI#WwOYL`iSkAjaK*-z`#r->Q3 z&?czp1+)2P%_z~+$TGLiZswP!=uA(E84&W^U_QTB?Y$Jhq%@B9Q$iW{<9zwK4iYnT z_=Q5LifyV|%0rX+L+4HRRxgf)G(T;4amvbTwKDT14sTxdVq|)RMa@?`)P=8u$~ z*2_wCvRM%H?DqF{B2B-ye*k?4dwS)}zJlq1s8@EaVY{rdhz-nxO74S1ii*y27%zG#-?^$J%Uvz?;aW%8mM#* z_NnT-w>W^B`f7iv0@r_kpL!hpd8!bWRc@;^DmpXGH2noDRm}yMtlMDqxEkB?Hyw%COBsZ>rmY=W62^>KAB@<;!S|-vXo2 ztq0Ox#hONK=7ghz2MQq+ zbXU5DO68&IKwnXfUi+%OJ)OmBUuk5ZIMP!j*R3txr)u@6t}=R+IEM#f>lPLH;4PV>9w&h5MK=4mLa62>%ejTU)KO^3lR zLstYGVuU<7nZVAkhd4id1g$n=Hq=UYkJL7i0iESaPUjX8$#_ zQ*SvZ#qb)!#WnmuKLvu9B2)5$xKQkEZX%G(Q0H8Ul|R5VtLR6=Hq~q2w2m}%@EIK? z!Zv2f0-aD7i?T2UHIP4pVqr)swXLy=jkI@7ERUOezdpbJ70G@CgbaE+H3T20FR~Ty zg#)gn5;qFIPfn*fmk^D@FG>qgNPlmov)EVc8XD^9?CGwmvJU=j<?r+G-Xs`1>s^Ur`JC#d1bPI18R)D(RFnn@=BlycZj`Hc z@yBHT{WA!gp>}*?X6j+8I%T}@i@E2YLr6j>EUA>*VkeQzKC74oT>}UcnAnOv7T~x_ z_n`Kj321;0wrB3EFX0lHKQ_z02?hrZIq}U!AzWUDG6FfIsrAFAMd({20224c1g!K4 z7olk6hq|;(6(9>X5ta+xgX^{XM0OG)N%%fOyYME2 zPK3UotdmMDR?#&Q{$TrF^Yk6at^KCxGNVR>iL-$OqBiWp`mcg&v|e2tHP}32bds{O z=%~ytSn#5V1;7i+e#-}*$m)`4;pTCJwGni> zKTOQejT$ovK=kv!dlQLH?7kbH3Ap2FAKDfy9k!BTwWF9V0Gaf{=Oi~m#`HRSBzl0| ze`CTrrcHuY!~g<-FgzqhkC;Ic4o@fxOeGzQCT5?36EV+{u1=|88qyilt=Im~Km`;> z_y(F}Bi`p#_H04%{3plk9Eomn?yrkrOqx1Uv%e3|O=nyphoZ8dc!%^8NR2 zT)$=e);6nEY-22%xp{xhWE5hw&$IIp<6|J%iRm=+LEC@p7c^O!BseyN86Es|hH z$OigL6RYwUxsA1{C&(no;*EM>2l^$kiT@YrCVw z*Wnc$F<}lSOj&u2!Yj1td4}$$u=%X+qR(mHyJ!nSLbcHQoTb?CtSvi@lmEkWL=?l6 zCWR20HkL9kKt%VKkLgYE6+~W^C`Ra zsn5G!dqEQr(tx_SOw;Aao`JKzt6E>4wo)*GD)fFP{=dYwC{UF`2WndNk+1$nc5e?O zt2?nJETCh^28sf^^T0+?W2fMmu8BLiy19AnJsVbMmXNGTxESx_tC`_kldR)N?Q_lA zq|fVb_C6v06z$CDqhK9yD!g4lSVDRZgP@~h3@1q?Z=k-(^3O>Zw&47(F2%9rNYHfT zPdN7FMV$%S49LNBLa_Z|k^3&A0tS*_Dh6B$(?~CyfL-)Md6L{?Wy*#0fXIGWa|g93 zhObb!DCdJjNHziz)ls0n>!L9r7b6X(m*#o@a*=uS5DJwnH3YgELc5Ai`{*W=vXvhK z%GQ+iq6veLDR`E^r{3F%Qi41vLPTP5h`~B*hUXW8oZ3bv`PdwEN0fE#tX81R$);16 zQ$B90Jgf+v$=mPJWIGzeG9LsDoeStH$SyxPsoa-AO2Ht*kwB>p%aD65B~oOmgLz~L zUFf5HL49u%pY?XNv`af;zrv0?N5}4+z-Y`wL?{`Fb2gOxL-pa)piJ=32qy{vF;23R zG%rY7pngjpHM-@mQCyGCS1huhd*Oq*BcEYYAxO~o!#AUC3rDSxTypX>RA#J72m`9- z-2UG~p_=>RJy?ItQ-12q+{yRQOc3`eM1Waf6v|*ha|b`oy?}OjAAOa+&?vzXw*&a6 zY35*#REaIHYUVuC0WfCza%Sofh)=X7(>`b{x9AXQ%d~eD%L*bfGo#o9agV(VrxAX` zr3Wu1NR97+e~9yjBC7)_a%1>^3f~|v#J78e; zWR0BEypccIT1lXSX8zfC(JdgO2wn|OFPh*@jn7QNZl(cNul-%ht_NfRSaRX*=h*|sMuXQ@CMiX#b%B6C0j4Up zRu`^>#XUiRjs9Urtm?-0kv$H99d;27PzNI!B6lD>!xXv6Y5NN;GqKEdH&`1 zr6eVpIj&$&(Ur;WsU5c_=TD>E8FTqEo2o~RQhZJQm$0VoAmR<&f@EPo+Z!9%U4~$5 zK?Gi}jZjyC1RZ|-aikuW^+zPWd{a+CbBgm`2zYTFu3w5|1lh<^i#6LF0~;@c;U z;kfpsgH+8Gu4J&PSj2puPquGaXT2FVPHn%(B(%p*Lpq*U{jYKg#eQIYRJ(y4k$=Tm zNvU6zX!OK9j~z*PK0jT#C4D)1QLiDMhJ##^)@Pbwnk+qDTx-S?m{bk~S0$gqoQ76CyXm z0miq(RUcj)i;O9HrR^>c=@dYx47D`2;*W5wtA&6820z8FWq#9^Co^D1ZA9+Xiq0AC z_}_4Q*m-B?2bVDV)23llB})*`LT4-BF#AwhUmZVrLxcbY>AWm|PYY%O`x$DsUP(vB z+mx3N9)wI26EppYdaAUsz-gxNxwhLPMNIM932}$ypo2Q=_vKu z{c0@|%?5zUCcF#vpbQpw+Y9JOW5=;N(SdPNEA8m)FZ3{veZn==q;(Va!3Je%$1QOi zMbE^g*L+IK1hQxl9O{ZwXJ#VK{?l;f1UoKjxzH;qC<8lRdZyMo7xIBY+%a^|zj$^K z!#brwT>XffAS?aVk-k2=NMKn%Dr>un-MyvWff4+lZi5^^86vKZEcceWJNt)*6k{A1 zL<`1BXQfmg94dAX@rKIUvVn46rLS7<8$wjF)LB%*!(eB*XK=9GHCROwM1L1cA5pYR zYs^ZuxZyC*!1cA2S-VT$fI@*l)v0n3HmKo{n^m=+KorKkiLFa@=InbPwhezM0-u!I zaIF7BXJ;Gs%i8Pw$HmEOxhw-Yf?REsP_@8wyX(PEw*k*HKc#qnIZ4sGV@0nv@*#u& z5BepyYZ<>0->yWH*jqNv~nEM7T8s)-}5`q?=YVXv!hSX*u=9ShbaxcCQpS#zf z16=%!ZA8mjOwC$jJ57We5^|GU%ih^vGrgP4Ixo+lpmsNDfjx`LyU;viH*zV+#&8uR zfg&J`|B$Xj>AyG;|IL&spddvVbkTsM(h_M9<#4gp$<<(-xYMdII%1oQEyCuwhhx07 zlV5V9tr-EfSvMO1nx*1H;3)~zBV=gJiEgR3f2hGJk5_5qL2o0^tJnSwtrB>Z&}|nn zpU+c#gh^;{&lGOB(7!Fuq{8UYdgPQ`Jl{4KYj5FQ>UnO;=({) z^d;1>_26wS395u}EKU(elbdB=>o|1!dB!K!JOI8#1wKqVt{3y*okIuT*7W@i-SF8y zffj=3=fPX`*p)maU=f-3eSZG*OL~W{2~b#da?EI$4Fkh4xf>z4EO>VCpp{I@zv}xM zW}G}wT$z+sCglgsZ^>64*#6)OqROqv>5vppcnR(7%TRSvw6}P4tN}#CGHN?P%T_0d z+)JY)(2~&iO;b6463rK%iti;WEQ@t?1Q`T4kLoUz*CSmO|G5<#;L>E`;nBpH>FWXf z)#;qPy(4o&<*v34lyQI*%4nAZLAWb@eTIFt*|6-^Fu%Ro%aK++zB0KT|Bp7V3I6lH zK5jIKz5FIjEUX3ZaI*#3_gT9o$u>g;5dM}72k#R@LWD+} zD@l-^pL>}ORL71Fkl$HrFia59 zy4(aiT1_xK)HFdBTQhQRQ$i#Csq*CL1QeC6uCzAxJc#P5%@QoXNinwB%L^b)GN=fc zaEdUQp*jQCe2&I@rua;(TPb&xoTkE9j*A*GyFgAGht;euS2-tQaE5~yUOWr1bRFa~ zE1d~?#RMAqJ%VB(T}2Cx8Vy@=`dtQ{lNCB0N-XQg!@kN02J`bBJjh!aI8s6i1g2OFnhdX-TLtv^nFj%nM0gYcN^#4LPo>6 zLkPTp2_YvC^UAI@xx?VyL4X8=2E&0&g9ne%2b<3U{HWLvaN28YUJrN5L-VoBd<4Vn z8aYe-M&C4?mGQV#yGRf7h&^F?! za35#qGqk%NlU)zP*#y>kH37y637|Iz%q~67;-b*t3>oa|g6pDM>h3Rgk94CDk3Nd; z+=V#b2DSLV(Y-ym?k$#mcys^Dn2@oxI)&c4Fi`ZIR3+UPiZ9*%fd^xZ2Wd|ZiaN5- z<7Q*y*fk_l$Pb$E2JyQ#ZrZR7xc%FZ=X#~O?IYdNs-KucW^MMp9L46v+%HQ7(NyB` z;Ib=a-Cz?#9S-A}p1E06_)(A)cI53dC#-pdS|sm3(A6)`3Mp&rrn_K^Y`Tll8a;-g z=mX!PYrg2-6e-BZjl;Xq_5sB;AnI}4sDl5_OitMyj<@An@f|racZSVhRRYF4MLSac z3f>2U6RxJt?0D^+C7WS-#I~xe_LB0XUkz=rwbx|;cVlB8ts*G^0cL^hhV%R20r(xn z(VM`N+^r75CeY)T5ysbhU}IXTq12G(*SQCSg9CjdJ!oErB<#K+EqA#OA0~vGHLb|x zmh5bBOid7dy_i>kU_CR@QLa+OPAwP0X*KRQJp8d8MR90gps%+&RP8Bum)tu!SSk1S zReH+5E8eRXYCYEKmbJfCceQIW5MzI}o5V5w7Pl;XPIsugyLY6& zI0Rp6Z?V6u+w!hZ!d#fzPxY}y9m*x?ch_d2#c5sV)5^iN8I{TdBSY1GY*|mw$dG2V ze0%6dL(X`2b=p4HhxfpS5g?I7q_|wkg2`jB3GU$h$+c2j@=FQNk*s5V&Jj zoLSPyqH|5zE>woW$(H`M_5c+ofR|!`kJM}bGSoUAnLB+dT!qEf5$C`9D%t%Ao=H|Q zQOU@S{FUJ_v`J(RCojR3aM0d2MCt6N#fBTMJR2(BnucqMUaP|@;_PhE!mQj4jG_2v z76&)~-0uW2PD69!Zgj#o^vU99?;0G4D@9H0&MGun;RS){rEiwEZmQB&vS!gz4IQqn z4Y7&GCZXm7&*+b}1fJo)1GJ?}7LkJ3@Bzje5GHBgh3g?~n_KM!fZ!6=)qD{TAp<48 zZd0Wtj7M-MYvz#)htJKOdN2O2E6>RK!Bo$_$odhNcC&^YRQmNyIA=n2<&UZ_>L8`4 zn}Vx)*{|PnzwR=>uT%r50qokvy@9e_A0DMwLiO&uc9j$E61PN}EY`yxroXdJV<0wHRJClHXR4L*PR9Z)D;g>6_C z>k8|} zA@j@A_m*~&wN7nBGnjhqP*xkV?r}sIP;O9&(#1ROqXz)6hS(W-uxuCxotbBa z>3+Ag?%8$*BXsokbo|eBeElyxX6#aGh(Kqwi4skWjF5KxPk}7CnFa+cb7fwti)rpb z7rV#`zJ97L#%VcqJCZyzYw;>7O2^8(W}sPwOZu|BE+UHWZzS7r`*V~(WYYDs%5J0< z4}J(=6?f7RHL&~?`3RGltW7}GnoT>=gj3>GvT>mOz_TRr!}vRIC5NwdcK-NV;>N&- zP;1E~Ac;?0#ae%L@uQDyaV)yPt+aNs-~-jiar4m0ln)?nXKcsqsCIqvEczyCJ;n*} zU@J}_?$wgRc~ij5mSidMYv@1SHO>|Z07m7SRTGu_q;r(+uQ|1+FB-MSWA>-Cif}I4 zHu)5ci%?x|#|GpE2xyc+|BK@mj!n~myWzsC2yq;P0Vuv@`^??3i8Y}>Fy?T&EhOgh zz}bCE19#twQ+4o+l7nf8&dsW@l<|ST6r3O21SSI)CyrELwyX_kJnVi4R;d ziYy@nBA_L?{-3np%L4ttbL9l|8F`~^Det<)HE9{7zbN%E^bA4D)F4ZtZplg1g5G(5 z2%yHrkwqH}sUq=X(x8j{7o#J)hoC_{_^*a|u0Y_tFyTeA_2F;-H>|CBpUK!ZZPCvH z93!XBwPJrkNBpmoR3eW2=>$T3l>fU3_QX;AnZFgwjlljhVu%$=%eCiSjBFM(kc;Tk z-q%+e8tN{W2M79f6~Q&`xAs+B?|WTP}6= z_I4vLOrDV|woR6)jJgN(s#u{AE+)OEuni8)^`n#M2)|{I>8| zL;p%vx5Q}WNQQ`Us8U+zCGx6I>evj!v11*)dmZ;N=I#|sH)T2+vf^zT&Nn<&Y|XlUZ1{^D|r`Qu)~55qk#ze}UmU9DZhKHYLmqlkS@pTzHnXrGO#1 zCwx>j1>^U2w{Pnl6Lo@Db!tonj9DHE?J(o=^e?dhoRpd|C|>4vCL8nI4u204BcLa* z4P69-bMEKyn?Kb*cSD3AnC)98t0XUAI?F1(sxyp>c`~kvA}mYP3HS5_irSNuV4Xga zz|V!$9|Y4Hfroi}%0v=>U!h#IHN=#anf{M!kXN&k$!jy!HO#oZl{^sK4{4$!{XLbT zk%4Me_cmP1;6y_X01kjx`N`R2F@Cz;Q~yPt_#0lHO7l2FYTY$JBG&=K!}Z!`#~uUg z7#dQ&pv?H^zYg&QE@Oux#)EXa}Y<L zu?x9h5K}ruu5LT#u~X}7AM>LZ1@PYvHdU zYhFu0oZAaTt&3)MTu(d-Wh;6fZn2p8g1B1qsP)?a+iEcHU=Z*uU|tBV`=MB^9Ecp5 zE(}$CFl2ye$J2IOn$~Y2H*A(2==qcNI7vq~8$X~HSWMk0_Ax7|D~y04 zm*Cz`ez+#-1d#N4qRdp7^cpE92BvijgFi5#YnHoL82ZKN8eSj^k08< zL@SOfGv~u+Yy@tlv$1X#Dhn^OR=Y0{rMymvIcrf}wsTak;5tt}lrNQn>xomYOxE3mt12w%H=0V6sIdGV*_v}Kf z$lM@_8(Kwz&{F_#+v6q@a2St*;&ZEQ&b%T05`9(t4SkL;y(TRuWYKu{MJr!PM;-I4 z-s-ha9ZLA72~PYWLYh1HEK-t{t0V%{-?}ASST075%WGmgGf+}c5tVfVa*|xn+*l_K zn0bj(H9^QQ9)o8s#{9Ez60;M$%YDSVCx;7>mQA1^uBC54 z_92b}tQn4Ku3nWsl4_>pN6jj)_CO@jeA=?sYuClmrpn`}A!4)_BmOLonA~k?YaLKF zO#AXSC~-(}!ML5mVhG9fP)n%leMD;ng!tCbPj|g`v`9 z;misAp@)U~VVvt5#(AtbIcEKf8b?|@{@&aR&uVoT=>pomo;rNt^b0LV(!=?YzBPi4 zMx?E7fn=`$vb4#}nqHiH`uAw@h5@=dyL)NLU>h}8Ctp-3e|mUzv;-`$3{OF02ZH;3 zT|VfFTjLu@+{a7F=#*v11BI(8G>X+n;lrHVHCk$)8WSz9z~d(Bk|ZTGEPw_)41-23+Ew~;(NJqq6+jDCN1-PVoUH?CW| zDfci5@R`pL&lUlI0JC%wDB+vPXPiOfuJ1dj^&9TI@9rEN4oWi~`D%luN_THhX#h=Q zz7W;{A8ZFgp|1^3};QuWp(6%8l% zFRE!6*U?WdI8bLVzY!|?*?iE`i;PnqxbVyYh*UQ3Ef+gS1}l{Tqz#r!{XNP$b>DA~ z>dWAZ12(KwC4+pw?A7zs2lD;#=o^y+S$Wuy!1q0*_qgNOZU@Mw@eu>cxOua)g1+Q~ zBjur}FzQ$0I$t74M%&=BQo_`TjrHapR;@;>`nP4+ymcedy9_Q=s)Gz?rFztkg3fiL63cODFIzB zIi@?ayg2vX7GuUW!LrkpCKytSl1W1nbM3cz*lRLN^?bW}t;)R#@hLG0&}N#;6eSF1 zhtvdA5?kbpmBCZfGo=+Q^?w`pggt-j%A|V@+nn($wRTD6hWpXnGb^3s2Xdl;I!HRM zL`NML2n_#T?uEYQq<^5aQUQe#RB;`U(ypODB4>;)yr4z9LiEpbgNGlH8Os7qs79?= z5vRSn@segfOR32J>1tu-*AfaRV;d`d3yAQ?Y1^Tvm0%R~ywgZj|NUOBr8{85pu%Crp>@6kmvmg=r6hA;R+Aro06VBu zAFtOowO$D@z|0r-Tz-bWO2`(U?Oer+O3~hkIgVHl6^+=rn>WZ^UAAV-vIRI{*aBPB zD6=(2b%Y7A?Ir3|G+#<#yY-TGhnllzyGDbpR=RqMUB#|}5)9e?PEVq}Hq-+;&6{tg z_MD8i==O?^(Qp+;<3cvG1-YHRn8m{BSCeg^%6qD)C7*2HWbV6d(BSUe13$oKtddyx z`?JW6lphlMvz%n1s4tV{b#se3qJCp!Wc2a+aEWdtv}Qs_>Drgj)3P%Uv!$;F>+^Tk zv=s~|r`j+iUt#*)qq|umi*9|)sheukTAWPGQ_&tP6U|kTPw0IOUXhV@ZK2iYx3v$$ z4K&MMc4|%cyDm9grsV`Fb?qSIWsK+iyfhkP}9c^!ktdf~k%fGJr|eOj6-6oOO& zrblw>h>-OYAT%DrKptF`DLyX+W)sP_^v=za^Q52NT7 zhcQ#~V#W)v9zuT$14dL#f1quB;tycRi=TgrAc#J?Pr_PJrUs2}ShMF<;zD=qTOVF{ z<5gDg!k=>PnLM?G3kk}o#VnbMUSzCx6$l-<2)0YbEJ=M+vxPhqd~E?)aODNZHnLji|Sr_HKE z<9#eL_-Zc(>+bC=4i$U5`UZyjhKfTY?GbLQQ1_(pY!kBpl6yxFfGi;dAC0I0!rCp> zYxC|AP&*1c19rL81EZD4S>dK;e%Lnj?w^1CNKl_t79tA{^bNf63w549n%!9l&E&5} z$Iz&M?Us${5y;w%oozIRd(lVxdqEN|l>#n+!fl`L+jQ^dyF0dR{O>muwkIs)wChk) zO9C&O6aA@ub5H*vhy-p!bvMiyYXb!PwLGy0IK_*CrbfZO{}r`veeF)sv>)Xie5c)i zR2{M~#HFJVg>Ef%v(t*SAw!h?>){}Gr&z_9cvdXI*G){p8H^3%&1|pz(w1w_izZP^ zkG69xY*qh@7Z1SsIseI<^G8w5f@XTWB-0JbmyR#K9XwhTiO{bywu-vz)N7sP_Vw(u zvjVvvYSn8Ebihaxe8XLg9es47xzf|Jz|c+na|g6`il8hdLGUa$!`kaij}s=S!P~}= zTY^0ybpxoH3jmZ0un%C!{-oT#7JsaO7B67Jj#QbKm)ft;1!S-=_?(JVG8+J@Djxth z;pY`>@*#+~6_Yi|Z6&;`g6ss$5{zBfe!~y;k43#@L>Lv zXJA{;>mUw)9CEOh6^c{4y-=@Eh6F(q4k8#BUC0N$$Q^;#*xTM&i`RIvf~W_sYBWOe z0hQrvRl?C$jG!YS;?Og3Ufqw4ZRJeZBk`WX`VHIGZMANkT(#8=gTY12N6UoyH;$%o zSu}i2gvcc#Ex*jkDIdur$MzQ3LcDL)xosXARTY9DbAtO{+uAK|ly0cy|In1+4KvP- z)bt13D717kIMkkS<0kKDvP>`ZreaQ&r}ruIgbHNY)*HgUuIi*~k1eSD3}LCp*=_KG z-f-OXnS}%;tr12CBHj3s7-eNrj!}PYWmch_C zFsg_(`OZbxlV9%I6Z*^{y|Re(QcUHC%tfk0p~aoKXh4bkcd4#oPh+EN_N7Rr8`!Ni zs)J~$4}TY`VSE$sU)Xz0vKv+a?FECS)?N}uF0~~BG6ZKM@BK;k_#fX z{~`y%tzDVRInf3`idX;D9IEy;viZ;e9R?lvj%1~@hJ>&vwG0X7Up)csA+94o;{Q~g z9EZgkHq72!8WfW~)4jqaQOsp#J}Ng&`=xElUwLmKqIh!Pys(agzJjC3y8hEn!mAwy zbq6bmGy{uB!HgVO`7-w)-$!v_RLC+p_zDj>eSYJZ^}w}_m@e*6wypW}@EpcY@MU7> zh3>5OuH9Zip#i#c|C2^4bF=v>6*F@{EB(}9Bds(1gkRw=v~MY!^`X_|>15IB@kk4=vy!^p3~ zDFQDIHtdMH_FbF1cozM@&{Aj?p+}+x)5zg=5@k>cv)wl<74B=K=|?++>)nfb53(`s z1KbZR5ANkNKq@?d=p_&o$yhYn!weK(SwNe|cRn%b4GKDp>vDpOqvRo=iQT^r%Mr=7 zI5B8pGKr9xGKuau6V-i}{y=j(8Oq5TvtQz8Db z_nn&CJ^iV5rpmbbu5)|W&&Lhj+TG6A4S%SqnU(8Y%G%gs0NXQ9r9#^-)Nw(#vld~> zB9St?4SfPo?~XbFT*{}YZOa09=7fblG+DfrJs`hI<|2h_3R`&N1!){1!0mgs5r=*fabzyYz$TbQF2CtLc9FD!y$eZ6+aZuQZ9-xO#ITa=Qa={M z9;|hyV7Bg!%~NL*WXcF9CaL93?{NZOEfFTQumkQ51kSRw(30kYOuZqh$Sm$k*&%XU zTm+ke7d2#@Pvns3g=ehKkT|12noh?qThnOG5+@6_4)|y-cj~pT=01J{jr^1FYocEh zEux_xkO)U?DX5Z1SghzTWtfvlJfy>B)&p*tUkKl)Pn#hTs&{teLKI&(3hKjR)lD)` z4MK(ar6H>TOT$g$jjPfR$)dF$O3wjTawDzWyH+Bwa}@fL7HRmtJP%ztW&ppT5xoBb zR}QbGzGV2{&)^axrK7M#cCk~p1jhd;e9|!sojUO05>W~XlGxg&*V0>0^9qnN4UO!H zc$YX5?EAtaNWa)&!dOZ-12Ol>6Fs-@Q@G(lwc=o8?~go&Uc)=wAuW$h`lGx^^iF~= z$vv3-IFV<|j)nM)Rz%i1Hlw#;4scGSVlSt+frI8|k-2WUx!exs(GoxS#DtI`hW0gJl+X zPjwh)vuYr-1d#Sj7h-X@-R;}4eNTs6L5Q!B#hU~ZaZ&1Ke7Hc`Z2Ey*v}*dYWzRZX zjGQ`aQ}WAd(B9xp&3*550zSj5ET}ch(JB#UG6!Z0O3GjZ>d6ax_s>7~8(3ky9uap& zesz#Hb4Tk5vXdAy<&8Xdjq+O9*U2toSH5=ZCX&dc5>SYHoCy%l6*gNvoANyXC*Fg+ zKR`NV zORBSQWwn|KVqA5QU6~BZ=~O6;RUd=VdwZjuVBbgsLbN>{GDpe6u86G8sQHL@aSdYV z`V4^F71n<)?e)UT#}R6jN}1JRk(`*msoXSQXP+B(x#Uq$_QL)z=TAH<=IdE@!5B9x zzaBa}&)nP)m?%<9O}QQJ2Ss`m8BeIkVhq*m!Is`V5uku};6JR$nC2f$;Z#3A$QgQj zBG}+lRo6;Px&b@|t|1k4OUkkEB9$k*lodKIZ8ht1WwA{~Z)?ym*l+aU7nJ9g)aiB+ zxVE&+L+>$DACa+iTdicv6Gg}xO~H=Mm((doTCLWhQ^IDZ1j}j#H6O%OIWcOb_2Hj# zORd)umw@j(@c-1OosNudsb~fLN_(l^Bk{4Qn*?r^FgUdlofYk(BK*b2K8Uy`^qj0YKMFR zO2e3aG~`xN5A^L=QJg?h(8-euNUE=1K5OHK46*yxPR;BnLRolG9|2;e*#NgO% z_K!Eip{(zcpYrajJwM}rf3`CDDbMF;+HEgiH2ugQ#tB;=9P8nV?~E8UJv3ufP7Xca zXjo)Nm_>vXuZRae*|Ye21;=bLF^8|&+1u?TQI1K%Y?!SCT|*Mah1U*&vva9@3pm^i z2Iv}yYT*RZ5?)Gf!<gk12%y{g*6bH@X-)*iFxzq{H&P}bBOm9*tTQJm>JvApzIpK(=R`r zJBWU*&yw?vjjtM?!2X{<^R#w$?!;60esTXtbMLYdD1s4d@7xG0_SpPWAEmplXrToO zkylb>OD~2Bz3SWVhH(vtb|osqUK2*juE$m=td&TsVP_g}6O#jp*FPbGLK|lHI9h+1 z^9S;iZ5ebhd9|Yi%rxAi!;=+WAi&272D( zW!&0;Zd0Ee! z@M|Eff?j%77pYOQ4Ix3S&U+Y322Smz=m5yUS?e-U+?ihmHfVQ)v_87o zC66w{^lzS-sPHzF-1%VJxNF1hBpT!lAV1Mo8YzZMIikpHBv>ILo<%B)6B{yq5e-6X zU(*|j7DfR22(+4i9jNqL(`pmn=|j&WWji|B_?RJo;$wtdDL zXg`2-XEOpD4}SiOPv)QdV)3&#FgxtB%@4lB#PQoP2V#{t#WaqjtHc}ns%WQ+JU|nx zVFK{Mr#wx2O3w{AT7ConB))ci3Yu+C_V}UU-m*Vx0A*ntwHh-A36N#P^W2}|q$KI} z&fuK$FLzF5Ob56h_&*b$QbG@m%lR*5!5ee$KL^!HJJA4y{=!C@3n1#l%ZP_6BsS8^ zzMLn+ARF?GT<;RwEcB`N9FgHBp~;CQROt4gb0043L#@xp&V;Z<_R!x)Lh)3G{RzXu z{{mA)|Cxw7(FYxI{QOt1%|SrT9~5Go9V7P=OZqsp)(zyhp~t=$jg*TFlLTAY;XesfWi|t_e3t zb~%jGS4JTmejE2yac!&+{_94}MXIEW`#U1{xVX4)#M;b6uSBBb z#MnJ7f8a2XL(bi$z=Gg3FS_BDn0tW%lX~qgy5YDmmM)5;J8@?smX|VXq!p-Bh3}HK zh)pmo8l(AO!tRzf)w2n%bvoF87V~%AR2206==hjI2`M^KaSR%|Qc8Z}p$6L-mrcxW zO+6mq4bUAKf&GX#BIkhL9D(O%F3_9Yt?KR-oN~)^%#TIo(Ie_~HU?_|8EQ8~rzrEn z#S7FuXj>2=aXY~s`qS@B}wFbow!(0PHY^r+y#3-2SII0e2XhjUU zk0>(;wgquIXLD9TL=JD2f!^KQ8niHOHaccke^7K=4swVe*9N$DvcG`qErZ4=J&d3g zvtt0mfi{GsYikH{9b+k^9q87=nM(%z!&C&8i6!9b+G>%~abU zD?(xq^8b~m%Y+Ok^6xcfYYB+oaIq|X9=WL{2Fre=7c>}{Pnzcib@7E)f>Lo6RX&?% zcyS2Pa-X8^tgz>S5su*YG2~Lr#*Q?`p}u2ch~VnAE(l7&A>{>G8Q~-w@RVsh89@{J z1?496vj#wjF;L}w;guzT-eWtEfyzrT4WfnNko73Xf=?^@6GC4VO*)-u!!_bo0A=7< z#bn$DiAfD})aK6}JvH~t(_%bAmA>BI{&G)ecX6nSl3r_ES1I?D`ucnOy3xqLZ*Yj$ zysoG%x6XZr>Kn%%uA=I=IL6>eSK1LFbXoMC#h9-eH)A;6H-O;Q!l$R1_<0w!sz5fZ zIKqVy&V21;=rKWF6kMlwoV0o8b$#KXHVvCnSbuZ z`TZ}-3Isa|x4j45QJ8FYrG>e;g;iWzfsTNsN^t}? zF?6c*w_5B$8FW8Bmxg+}dpd0kzkPpk(lzR<=+t@UU`Chz<~H`30HMW}5n{&m+U48! z>@JP(+Aa^vjdOpf&At0_d@8#4u`1KX;j_Y~G&y48c^dG_kDl zE(-ca7-)2zNuXzv0T8M8+J9Rn5zCr~i4Y{)`8V^r0`G&P4K)4iQMl3JgR^W01fatR za72fGgegOsVbly5Oi5l1M0HpSxcB|Vb8jrZ|I5_Mv74G0zeIx+Ibjjx6cWHrm2B0v_|WLF z6dtw;O{Qg9sZO>ZL`1DXS63UkOc`+n(`2amy+~k~xK%%X=$SmY4dmFD5h~~uXM%he zpFw9V^o)WJfs(~y3LhW^^H)p!_;AIGZ-alwa)X8(p z6O?Cj88*d<#7=JD$^O3TBU3P*Iv42j>%d%=Qa8Ff{V8N%LHi-HVt+kL1O3M7CaIH_NWYkNe|<=ze)u)|4`Xeaq@7& z;FdYK9&sZaW8`TDk9qDnYqRe2Ya`WLj6AobY#S$TT)lRi^aEAR#+zh$tN61YxR|j} zkDtOwcYkG|yT8BOJAziw-RgsS`DE3?PBdNMjM-|R%m-;fkIFc!bzoMugW2du)1hFj z`J<*zB8r_pcT?uM_DO-45d%}n-_qyoYe18c-g2c>#?^L%gPmx1qE1iW-Z&B*E_aTO zbX0fQKe+r?Z6y9^zspqtUc6oEW_O9SfKKEc=^rW%^bZd8^^X9Ld%gWhp^B6R$6!l| zt=AruMja4X5gK(XM4g)5O$Q>8l$tyEIog6qEbuyPJZ3II3Y(yUgHwkqTg|SxDmy0P zuJziFz064W-Z|mexOf*q3x+^hqlBUnc^}Hoaalw)v1b&0u)!|Xt1%3fP(hUTBPS(m zzd~aOvyLV0fxDcb59+Ir=`y5_5UW92}?g%WxXFGsYWkML`3J=f6Nw5yVEY5AIsG1F<$Hw^@>OxV*ps zwuEpwA-MAzoKPFDoycl*8Q)bf6*JSgf9cWvSBDw?E0ui@wjGq2?x^{dRpXUiGc7EL#IF=~gK9tGG4q0|o^-a9hTIZ~`t z2WaEZ)UGi4FDQypKM1SszlB$)zVpLB`^GnF|6TB|d<*927Q_PUhj2$;_JZm3y`69U zvu}LEUfcOL|9S`i9IAa+;KeScC^zhp2Qkhvz`Un8hTGOA+f9JOkjZ>C0)Hd)*UUHO z?}lW{e8nuWaqzusGT%W1)R)&~zAR8Vg{D=2KA!)Y`V+p*K5Xw>&$X(pinIMTcBP&D z?w~mGPxH?)5wxzK*zN{+%Aa_{A}{CFhlvR!J=CkVDFk%6_S9i5^G_LY;Q@nK-TD9F zAo$*QF>M|}*sCkTXKhsc*>~y6@N?KA?ybEa_lFy4-()t2`yIaXor#ZSx8+CQOlP%i zSFx0xm3>ZUWgj)G>dyZ?^PaWZLg0219Su2%KHHN}Ds-sX?=XJ$L0qI&n3$Qu^=zE9 z9<=W$TECzB%4|_4X;7LyiX$Vw_!}iQ{3?v&BHO~K^Hb@u zXL6v*<3)HE=;63N1!b8TD7jGe3y;MI2I6AjnYqufD={PrRH5sT9MeN4Io!H!XZqu~Y?V+?1Qr=IUc{b3qTe-|PpT!CG;r+V%OL8E>Mj z#F>r$rJdQ;nKQee?fLDz`hQ|SF3bG52?nM8_H(^>g?@V=e7~Z0ZT6e?qR-%(+_#>c zbye<5>`}FLy}mN!xwD8?2X~TaY{YN=sA;OUQ2X)!(saJ-5aSOkYS-nyiW3Uc)RXN# zBVVfU_CYi|!IZ+(^V3;TyU77(zK_svZ1I~9;pFi^?lq3%6SbuWCB)WtzZQP8VA}6@ zTc=sL(nje5w5R^^@7nhGtn4Xf{8o6-{A3TUw}*EA`}KTw=hhAO$_*L7TONiUhVH5` zDeQ$O^+@(uwxLL&{O~&XmFNJaa+Hp(7)FJUB5f{>P&5UPWK-h z&uIUY6FaZ^=lF+AW9OgoFH-)_8~E41qeVdRzwKkgM$^6WU3Evy&2O=fCFK;%;>HE|TkQ595Ip>~x?z!ju=N;W|baid%qJQp`kCletDU zFqz4ussih|p`?oRll4$3B|%5CRcs zQb{D^9Xa!N5mBefx*(>wJ)y=^N={7}Vj<7l9ybg~|APKA11m%naw1IW?b2-5|f$_y%20OhRQ)btC+&(hy#NRE7O2YI7|GbB&GLVvA} zm%QFXzk4gLX6Zkb3E({ajJ@P*g`7f^MD;l^$L;t%d}*8AoMVC zKE{$oPw>eK6#)?UnTXvz;5t}Mm&5_D3x#>%t-2{xV<>dLEGvb~N-{1N)O8eNpNEACBX#ZfVjdT2!qG1vQK3}3K|_=35Hd_j~bZYdnTu@X)eRQ*js zUCAyf%E;Jwd|Vw@l+hDoXU3ph#EyzZ#Z#(6wpBNUH)u-e!_Aq|QzQVnL<1WuVnYst ziV%b9YA}>&Qf*(}&<3@KnEEeyXzHvj!sby>PE``}vYL*QxQ4?Fst!f>Al7!__M6aG zSRSNf6}}H#;WPjyA+fLUW?WAkL49rFr7H5LMFb7>>ZV?A_B5-jrG!G4Pn=8zF#K9y+8=P2xhB@R4 zbE`O*M4NPd0vqjiSD4-6U@inN%7KL_Fw7mUFnhd*d6;HqhAY9AX9*hHsT%!wHOTsj zCXc%`V@a|UAcxAmwW9Devw*%(mBE)dWB_%rUTY2>ovzXUtR`arHwS#EW9Az8UY#}Z zA#%r9kpRAryyFl8)Y0pK+I8UR`3pa90g-5U6GLT@xVuX&ofI35fq z)1=@el1cDoefd*BBx%s%&FCrhta4^lJ)4M)o)}dUH8-Oq8=WSF9PU~}PnG%t3r5vR z<%;n_sYVuVH;xhg!g0&GwM!h4XUjL(tF@IMjD%#VJDXE)xJw0p^`5RS^ZKnbgwYd6 zNm5PbdZ*cW(ikKaPzBi+iLFkmmlRy8q|(#35LyaX+NK+aS^erN6XIEW1GLaHTBmk{ z76ZNHLG6aK7zm%)O3wXY^*}|Q61@f;^}s@y)K<1(Uw#mU@fXQXVAYtAQeWmqTI(e3 zA9-_bpLu}_A3WDCjX$wQ@I&+dE5It6w7(e{&T zbWGyo^Q5ZF{ZrJa8NY*C!{*d;sXMA9Q=Kk^o`BxY;=ba~6792U^8Ah5R%_2XaSfb{ zl9H-6Y~-VBmwbbMeRD7PxyH`Fn_37xfdpEob2qa=;9q8j zz5XW1YB*~!=-p466G@txwhIooGvjPK+2Y@&hg^;xy9ObX*5(T2cAe~M&+_;ZHE?l= z?MmJthgp1EEM(F{UQzM}IM?C#i-l{q>5UQA;y)9Mc(AHq_hX{46Fa#PvU#g!+kufr<4;RG(CQ`N^4Y|Rk8%e@zAj|Ly zglI}FbyIo@cWjNc({0S_%r%YdtiyG8o{~!VnTzIF0ve29`iNVYqdXw4@)hRzo+6I# zKXsEx#pFRaR_e_xFEiWOaYqE_r9qUuhUA+HC023OM`y@E_l1-abC<6$dmnMw z`(RA(#_M$7R@!FB!C+hJV52V$7W0HO$CtwZ?M^mHhurQbH+{S_prnXvkXMwfyOYu@ z+ZIFV!kP67Fbp29yE^#WQ4t2=?CR_=u+&@3>(qI!UUJhfi){w_jyD65(NRB%jwXu< zLMrEKW5U9t7uSYI_-E+hz|H*&`wT5t=Qenp9avFrSu}=j0Ev6=4iN8Nr?_sF6xSW~ zptx?;!L)_H(L>}8R$NyatZepqcatO1=nv4%ZhUOL-OeaCysLM+e*H{9C?DO0fxk(# z!z$EpH;PqP;>~sxuQ#?l@Q+XfbX^w>&_>A2{IWp zXoNmhXGN<=h1MBMm?OR*vli_m z@lscMJ;qC4=?vyvLOTJa^nG$Q;ZAsz>z%+FR{XkDr@rDDiYN3MP>LU#3C^5foRlZR zp>q+gmCj%Ku#*9k(8qhug14LCTnJB0$}^#eJQfKvKJ8?yxou3NMLu+?0 zAY5wAhH}pbCkR$~A@p((*qRA9n7evKxT+O(1r=k%B-`A!k~AAw{7IT@7FRR7qYAg} zr8f864>Fg{?0r%;T;fhY*{IchXs;*HAX_X^S@g*z4b$i&C3v{OP-4jd0{h za<7;AD(ws`rj22m0i@)PK3R5~n24Y2ClQ?_krYB}bbzN%swb4u<>h#6RE;gKp#yAA zhHGXiuIjTCSuH62M26&MI>%rMTPI;`T^HHO+}E3!(?GF<%Y0Q*Ez`50&poYB9=_Ec+4Nm-w&0b;`o}#;(%Vg@3 zAKN}|8YrntheEk1Y88}*Dmf(D_T;wW@pl_|$vi(OynPg}FcaQkhs-kNA2dMI{R>LT zw2n&5qTOCWOcRCfTK;ziU|L891h|g^7N+IKlA}Lopr++yK&ZPflaeYiYBrknPL7ie z(`{e-oPm|rk^y1unGy|lbc6x+YX(?aNd^V>qA;-dA837vn@<0`0h30YP%xu`^Am!C zi=F`6KmD_TbUz%@ehM@k5;Qos)O#b7Ot7|}9fNudN*gnP^xA!CHYCO`p)b3d?t=!z zd*LAVES#U67jv4RQ&~`k-ch-&(x(lmv_1$(oBcXeVVi5eftF>xFBy0b!Qt&)6sX&3 zz*tAe7Y)p`^a)7E0|sVcO5Rn88ghi4<_=wC5m)IcDdNnfLX-B)wo z0DK=D;DJT4h<8^sT_5>(8OZO4L*6Y;%{{uB-BtXC0hF+(LM`SVUBzMyx_bO$8}&yF z#FWq)$bI!(78Xe2-=o2z+fMvR1LjdUnEg6TVNQBbCukvOK9+m_tbzC;IK+KaufhQL z>1PBM+OHaD9|lA_O&f+}68VWpQvW5(kpId6`Uo7*p77)ZILyB{U_J^5vyYyGgjsLh zL*KwQ{m}Oq9N3=e@a%-J6VY@kqcBcHhYhHY!$Iwxnq8a>3reu|1*S5^7$q}s+jO2X zz|t{*KznPiuGcd{d=lXV(-lh?FkR6;XP`X>hqg~gdvaV1+yMhFGp#yf;5`nFmk=O` z*m6oHUS?+XH3KglcnD<8hJFdthe*7X~NqLF;$WH0Tl53Vw%y z_)Tz#yUBf@Ahi00H4Etv7)aj?hqQ+v73Hb==-oWiPyOEp)?rwzqP&!jmFc5CVPJh4 z7ON-^rDJ9Kr(ZL$o&dy3ujj=qSA2(c)Aa`i%#(01dnrsoYn7d$__~3U4lMxMZgiZ2 z)+uHlVE?CqlMYdZ#3^WvvTta6hV(<-7#z+%x;llOVEgGNbB392+Hb%;1qZiZU!}tE z4w#!NE93OI0eBo1@aTwGz+`7-0X}U2J`D?ad`v80vc0kZpEm%X0R*gXumS-a6D(MO zuNr{Q!T}yIwpw9`*Uge+1M)M#kOeMd19F{p{B{HKv%ruAE@T68ot0cNAU_8Oxrg3` zhzXTT#!U$8X!`*J>+^6}dnr~y@iIv|($X;I;r1sDv@Zao6%;j_Xqm^`Uoz0r$sItk zvtA1)E~p&Pwabnwzi0q{2@ddpVax(|B-5T*oA93*kSBm43*C_@n^GE(50ohqG@%AW(9zK3B+1C6|{O_ss7#@P^^=4v^?} zDl|PU3sUX-DI&KZ=tBn7891oDNs_b{RlUXx_I}#H8G*yuM{u4T7X_3V@co(rbQTuq z=!htw%%Jc04WM(dK*z^K0c8e$e`x@{2ne(&a*Z;hzrQnp&cgxir$EImQf3I)y+c2G zE&wAHw@R6D;64Ls6d0+vWy%Z&A2pCJ!XfRYqrgSEBW5r-X5hR8hqEs)5-2k?nlgZ1 zh66f~E#wj;EET0wCe)|_^$Hx+e&TouT0uxj);^RjkRYEC;3o{cSK;su(49sg-~qk) zh>f^tAbuGRao^22$uWyka9`juO<^HarV2+g8EGZssasFT+Dxy1@(U!P-AdV2Mq%r5w=)YSy=ma>SxwC9M&Fr zGLuOO$#tVQxo)TT8WGrR~~BOA;V+CM6-KR!&h1GxLAT z0`7RaBmoj=T4EQ*qlrJx0$%%QiA-Gv^J|vOMUrXaUts}vJYA9ixil@Yiz8lSCDSXO z&3Lpy^$)a@4Vi0P9Jwa5Ypb;8*^&fEuxUNJ4Lq9_+~%_-36OEq!Yz(?6ZcS>6_->` z1-JQZNdn~Gq$4fpUPdc%h0$>011#vy$4e3*AE)KpfN41^j?H+kBmwesT81u;$`PMt zX?xAHB?*wM)3P+7oSpbQ3%c|1k_1TIX`PJ(GI-*vEbMC^E=hm{p1Z7IU993U3%two zB?*wn(=t4v1QQ~HJ>d>fb^f1lM%`Siod{8x%2Uo1V{yHr3YvT zFDxDPpIP7?PnRS>Vo>YpZQ%#irxDV_Q|0NB1jrR?t@buhhE`U)`D{r7BoDQ8E|NnO z?`B+JZiDir%Mtb6KM^0 zQJsIR!jD?)^y!iW$VzI3l7`g@A}7VHN|2KC@sb3{P--0+$-Sze{$y4cStTQDJX(?f z*-EW_l{{Kh$1Fs|}+ zNdlxxwc;p!#S6>H4YR;IA1_IO+^M$5i(|UNFE)VQe7qz95~M!s-B(#l-T8P)0;F!WJe^^5!r=cE3%<+qB?*wn)&6{e zJKaAtg1@rU0g}27m}Pa)+^!}2gCz-&;??S^17~`z^z-RYmLx#N*9vA)uAP~nt$DH} z0TRGgo-8U|!%WWBJXw+e`CzR@1x*WES} zYdu_&0GV(e37KP`1@Jt9Z#1eK<-`Z>20Clt$4l4 z(PcGTmVbmO77Z;a%pSw%#-EU%L;n*)iQeA zbyy<)W=~hw@pqQ*l#ihk5p?o68X-u>G;~Tsl2MF+cHFQuzhct9pLr2K3 zyC28;+5a+vPDjW;d_Y4FlAqNdA3@J*=s68NPkz}8*&nzwG)m(lls^(Ub5%pFvzci)huNN}erD#q`=jUz*$oKMvrEvJhN;p|i^*04| zCA&0o=2UE4QAW-xqhqH}jU|R}WRqnNp{_FQs&Bak!#cLcvh=qn%lPd6uCCY1s&8kg z?xN#Z1AX}QGK5v2r%HW+;H_*XS17-?%yM9jyP>*^ow)rC>V^oJ zb!%>Dd0dH|IeX^p^606tQ|g&fC^yufPkU=^WV0hxE2i;{2zE(jvLZXy<|x7PhhSV% zceYr_w-N%GJCh#)q4jnqx7e(%Q>3iwKs!^Uq3``+2n_)rdfHxuuj2IX`IvIIR{mKkm#`qX{J2`j`j%>h40Ln5w30u*w+AS5&FMFIf7 zg`j1e^sve&3BaSSDG4tQyp~t6HV{7*(olYrW2MkhT|hoUze>*xdvZoyV<6-$+&Q(Q zQ?zu@7m&T^?JHzY@$|Hc|3vqrO-EIL2Q!_6knSkFz^yR6_IQT39xbvcHD=o}FexgI@+ zE|5zKeU58uR|4bl@l$8w@zWz`5+`D@ZapPI${>cCc2k%s@lr#L+zo}ooBPx#58RH zd*BS9H-9@%%4kHIfL|F!%FsBDU33mDlp9cQB@374bW6> zDj6GY{X~N2NkCKC7VshsZ<>#chTx%l5I5u7I(94X@NN1#Git`)!6ym87?I{{sS$V_ zD&h~-$l;@WasZ5rXda5n!Nc$ff1VFDU@&0008e8A{4GA*fZLy?ZEtr$eBdCL;{){h zwD_NxIoHnLT7HdxQ)?=}wo}Q+lSw(1xvA#jN}lhi!-W)ooN8Z^Mq4f{T~?M)pBNoK zJwARWHZpSByDU=u84{-GirFl<=zhfz9UU9-^Yo<`eGB!$Za3{jEfh!_0^EAQUoxQ5 zDG@+WdlSiPNzP&~zLoIj21Ysy0tn*(Qg4C7{2vBPI`jbwW+qOqM}W0?&mrBf(diCA zFt=rk>3E^26q1=V;L_Y<0HuQ*fPfC(M5MJTpHJ}fTqbMX!>qZ_Z=fjZ6uH!8-S*Wjp^Y@sWmxwz1FXHL>5S^2ms&US z{j9z~UF!;8HqF;MyOEbOh2+^z-XFsaR*JPJ>pQi zUL&<}BR-lw2Gcp+`$eqwX7+x6@w=NSO{W7HLhp*Y(yATU3alzG8;t&Z3vjo9gMb!5 zkNn6>?@!`>GB{-&P8dJ#uMJ7`z3DKV+Ue=f*Si=-sivd7`{49W&wJp(o`1?;a{$p- z`vbsQ&+?t}`7?YFyZc=i(=JWJ@y@?Q?w~MEvlRgi_SxCQO zA)IsWEYHvu8`;d6fJfmhKtBMsc;jc&f8}Lk2SDFHaNH3+4rd*G#6PTLZtz`tySN7! z^VrO;;TW9qyOlzQ@X`*MiQ1iLkJW9uKjO{{Yze-Jiy?>@@ou~TcoI&}Jw(r`lwd^@ zt~5F!uRd2A^A^xDtOlz2T$HVk=F=IxH|TB8o8Xj97j;X_;tkyP5?znh)ivSfW#9NV zp=;;iPk-=+zS$dw({)cio8oMev-WP+VlL|d*iAU*Dam}@0uKlW@3eyre${sZ&Ik^W zY+o{cZMbc11tsPu&|3|>yXmT5FJJp9+R!7gMh>=5AW49I1N&<20lIyl#CX0W0X7tn zt}%U0Kv$yEq3<;hmL$Ly12V2he|Q@@4d|$-wa=C$z`g_P`E6)Fs9?7}Tao~q5%!p} zZ%a=?$@S@y1lXfMrZnlc*N#>NIwH#Pa7hB}T(B&^4Gjzx%eOsSk^tKoEO$$EAf(XQ z>XMJpMvdnA0su?=?UE2!>5ub#lAz29Kow7fFF;?A0jvbK znTV$a;rJK%paa%E+n~2v4Ci`aw*17``6K~Y3|v_qf@^~D;9)M830Nar5ryDVS^P8+ zMb%M^@CgR6X4G0O!b(T+mk;FUrBmr1fXj?R1i{gVd zqWB1(C;%(%Y(_!sg6n#vZWh+sR6fTi3Bc+zyCeh_q2a&flLTNzmL&;q3$yUvBXkEb z)AIO${?0OwL*yOD*#xi%i41YqBXX~6k?;#OVwtEB%M_nj04sBBw$ke1wNiF*vRrvd z<|HO-B$DEj2w*jewYi8ZO2O}~5y}6>ClbIK4Z;JauN`koHSo{!0S7EvAOi+0;9k}) z;IHu^2fV?zsocYheB5;(*FFJwoo%UH?5#F_oCu_q!q~`|dgkou@nz)%6dT?) zd09!Oz{OTJ#6~A}eLsCEo(XT8T*wrZlx`((s{nt<07^5oz(A>90fGLs0hG?v0s`6- zQ?DiYx|RIWQw^mxl(|!;oyA-%?sSNlXNq2rgGh~YbL9D|ZduiIP8yJ^@5x-}@>#x? zTh=n2`v#=tZtlIw*K^Byrc>^K^xP9iYMgIDTS@JjcG8p9NM+p&NN%bD+DM4XVwY}$ z4bL5Q2+j<;lj&u?S%>~|Z+W>Nfz$I=HJ#wvy^W){YY!R!kfkO%MDE7*dq13B`|`z= z6(z?<`0MMo`I5f}0d*UglNY1YXIfad5sr()Z487nfA!C3fwbjBBWO`Wmm=tL1YOb4 z)mO{t74qdJ^8eRR48=8+h#*ySOp;$kDGjaEI?d94!aZKlLy_UOBng=xK+hX`7mU?! zZLv$C9XY=mDcC=NBmt%Y?NVq*La;^(_75OQfH^{^6u3`hTxoL`DHtC>k^mEkJF9-d z<5VL49hwbo-thw_)pl3G=eDx_J(uCr zeAodK61ElJdTIh+A$ZM#s`{A;Eb~bQ@QiM=3U5#A_&fQq1D;#AS64)9Cs_PJKCFOe zIlJ3$`BaC0jSny2`NoE~15P>v6-x#_&k?@#7S1tE6?$x)Eb>(}aYd>+MFeTVE6pXI zSz64KA$m(uHMf$CsJDvwr71Oky^zT+MRQ6zKX*GozLzg7g~K;i!ero;{)P-8&o0H! zE|103v6FG-WIR3+8>^}AAgS(zQc&DA)&ZobrC!oWcCCOI0^lAB(nJDKa}aFfGh`MC z97Rm2KdzARXvqR2$%Z>a3O$*dX_b*f-t4m=ifB$l7q#ZdrdJ&qFwHFkw(UleOgl|x zhTGyh@qasNm3ZO*PG5=x+GhfF_a*BP((!K)bo;A<*E7c%InQeR-9K*n9h%WQ@>!uk~<1xXKR=s}X~eU$utoF~CdG(xs+FUksy z+9VBKcUxH;IUbtq{Lp@DK{RVCu8D8f$iDs?d7V^&FJ7{Yq|yvhIpm75k0$o(4RB$% zik{QZ^HLXjf!NuL8hR;$Ch886q`5sHz3-Ft?1r4rs_`VLd0kFrIO!bBL{F(Vktx!# zrmvS3V@-PO8}2UMH$A$6ruTq!KX4GlkK+<0|yc`1;g(Ino7a!2!}7t%w!V9lp4t7_{LuFXEu(vdKob~ zniwBb)!5myqvL0lGpA}UBTC(KnGBi8? z`->#e2ocB}wpGl*)A@RO#;&df9Djs(zq@;%=2+;oqz+uOL>aF6@^$Vb-IuzrSx2#k zzGi8`AdqHvnmhV(G0jg*;G*5i{ytJ=U~3@7UgOLArz;=Icju-%r}dRUrZJ!-5~Rr} zr>uCj9&UGv*|t04kJCJvxSGww zPV@qEr1WB4rR#nGi zG>B^6gaETj_tz1TcX=ipsu4?=Pb`2bnR;UJE=hw|YQ&P|6ANHI;~^JoG43qDGaUGR ze9{6u;=8yX_(MPbG@qOR556u@O`DFw_^~;u{D`&}H%0g>)__J`$)a>AcR2xIb-&wv> zK8ALpJ>*q{zTA(^V{Vs-dKEI0ueHYEu@mtVqcQS#Z1kkMeCA|Lt>+?eG_PC_%crnAzv5J?h{#-8NcRL00K^cB<8-7@}C7iqBDs5ie2ieNC5 z570B8!YZTa4C2UAUpSe*u3TdjA$9_LK;J?=`l?Qlz_!J7noMF%Oe7KvchDJ&L1YL0 z_6U`5^mbN_WD<u;ONCEaht_~r!88j~3>ln2Ce%?5#x`pkO z7GtAE?F}|Rn4+j-_b)$AcDB15hCT4>@LuyjDKVsMJkyM>k8 znIdB{VJ93?ssVJPj_~U=$lauluqur@zVN3ufiK)qIX88@I}~|59Zah?RP*K?;f+d7r`uM`X9A5j z8E%5WjYH8RfQmMjw@hmdM3iOJUF(gdm0G()+W@3)O%r>K!RdduP5;Jv2lMp4_T5{~ z#^JS}C+wdE{Z!>^pLa-<+np+h?>_^l{r%?Jr`o4n;i)=@Nxp5~_x>Cf@C=*v?(+K38x}5iYL({_(gl!a)aCULO85yeSd@-k55dyUkf5T{U41+7RzIV~X6r54) zHS>Y=xS-PuF{>ok2^U?`!d54-e_-G^FigYQz#f|or0Ug(Hg5v!63#&c3wL9-@I0LQ z@3pDFXq1Q2%rT=rw0Rrw-N2nPJs6OhoaURPF2LD=-3_!d=htN?@ZA8X`onPQ-&rka zoy&RH4`&gG*s=)vOM|UUf2p&KkY4k3*lGQ}!acvR0B0oIWqn|bd5i4TL9)Jy_~9eR zzOe{r6MJfGf~1^_G2bvY>`b}KaE37?E7>d=lP$-|HH1Ku@Ert)gLt&ne&g{N={6o4 zA6-tI7#lk^Ry!L&U=>r}xl8SsKJ_$X-AFI-j~5~tqgA&VtotGpGr=i2dUY-+M`ovj z?ZA72g?E?tc(=_iM&}lz^7LXj%;hKe`{ia?FuTOTT!=1C0>hkR!Q3JaW;A#u3Jmii z3+6rE!?bhO7@76qb8F}_IZ7+}EtwEV*a}H;oR-9kW8!M+YO3$)8cAzYIi{{w45A&i{fcMZ3b9X{g~4j!0W8>!6&%H1Xz>oA|~@b zQgD?rewI%*fc3g|dMeYI+GJy-=egWU{ZuS|3!h{FYgyTn5nA1f-_0i(z&g(-oNmXo z8R3&YQGpiJ;X}u`_Hn@K zvJn>%wYA<1zr-gqz{;zqoia0hbvtUY@HIYx0ahis1dFyJ1+VLr@b?gbRPG+}_wk7b zuwds=r#;!kBd&x8{}i8S0E=0U*AExwLjM`_dJ8{E-f^Tt0ILIBl7cmN!(N?X@k|}z zS>lTFi3{-J++`uwh|ANfbbPY`nSDE-%mD9{?E_ED73$wI6LRdDRIY( zGJ6)g#Uba;zxi*9?Xv*P<I~D*h{G zI)s6rtEibF45a~m3~d{3l6SXU7d4tVp^}2AGqEvJ9(8)8W)1_Jj(M}w@QdVP?x%+| zO1KTY9_XOI@SDh~%p}`h@8bPfX={iKAt-H~BlVD_ZpwLEF7-_0a?0&;sdvHPYAE$g zr!orpsqRaeWP*G@ti;q*xzs6{R(lu{uz2mVR8&x|DrvA>lavG*PJwEo$ge1YM4xD;l~=fVlv4jZs(8idF-# zG-TPrFctM?hKk?HsmuDe!mc7~a4NvvJSv4FwL-6Zn_2%2m^JHkQ#EVqJ6v_NPG=tf zwts*P(^|n>yj#II=dD@m$+Vgjn}-dF9cJ+K1|P`aw^#hQzD>ef{6RKO%i{0x(Bkt# zEZ#SB-lkhxaR6lIJ1S;wgn_VjejgjCW#?NxwDW>cJJ%h((N*d}M^J}(c3MFKWb%5W zF+HsfneGD z0^_aZ`vRF9^tHyTYgCJW>S4yE0j?SB@|hm;W1DlZi^$un0h#s-a&vI{2L{n{+(<=rx@*gx zIn+$K5`ombOII^p-|{s&l=L>2mi=A3gMg!H{6_WNnah{vp?~{ec}UcxCc_cZ8cNnbFXG!{gsximbY%&RS%^80a~c(Df5Xx z>|XE~)NBE9MRG2_puSb;p@2UnsM^QL5%1rEGm=3%cifo$A<#bj z$brKO-Uep{)?6TB3uFep9Lpp;3mkoKVRn7HHbr}p0{k{OJK3*?7e+706rEb0EF?2& zfsRApO+0H9>O%Kw=%9uUY3Q(qj*#Z{`y=Q94LwL+JxcyQ9;vrX@5b4r-wtORJ88bi zbRcPEg)cwcXd>a%fv&FO?=0UbA9E&ySJ7#ypG@%FsA)oBj^G_|%HC~L_Ht59CHN-Q zH>&Q=%o}}YoAepa6gl}g8r7$tEOJj4eHWa@ho)3D8^~mD(?gn{6h!C9AtgdjDHll3q$IruPV0kn?HWfq!vHA>7)QF74qly`4@IK# z%)}LWDmWKC&t>8boc|;4G20Cm+=TaoEcZ+WgL8q|xvOnM``s+G0%q$Tw$Vh>p1b_8 zzFW12Y1DR$hi7OJnz+f0c6w|Bx7AS#Y}!qeX6l@kI@zI44TmXP7N%4}m~yLN%1MD~ zGe4$H&@FIdmi9SJW3y98mh4>0wN|m|=`&r_%}cH5a-V5CwBnBtyR4T3X6ylg?2>iN zfLA8`dmk*_WNE)+)pHXLGVH)S#8%EQqhsM zp0RYmVIllnef3QQ?|rk~E)I})9F7B!zR*7LXN_I(%ZT4FVEGJ7_c{#2xW(j(sMfKJ z3%X_KuB7Jb63_A(2_WI$QHPkU(6bX50A1V%KU19ZE(E`mPyc`vd3Brwza;pb1T1Hs zOMJo2t>&WrPw;6UkW;Qs=)f%qe&xfG%(<+6elju_?SGw5`+zKLb=E$=B>2@2OUqVr zCS5v%z3gH3j^7yqU>~U4&gX{D3=2&(Iuop3^PAx-6v49^dQL;nli@KhkZX_^HS|&h zO=xH`f&z?$3Lx2+GpXPq`xkyYAAUe8ELZ$qb@JmM;lmF|6y;1Ac*z`vKg}lqKpG`i z0eHr%g#VIH0DvSzt^)9kbqM#-p7rKkARq;g(*=0Q$%CKd!w*PM<4g{D%2XUh=u%ES~@X$xWPxAK`2#_zga(0Fr(<4+lD7fDFb0f`6V*Mu3bN4>=A{wWJE3 zQE1>l=92{=pTr~U$b!2i-6f&Yb%JYK1teprXBooS8So=~aslKisAnYti3{*~KFI*K z@H-FWQLlUY@pU4FO0~A_qT5~uk>isTU~{|kqDoM=JAR{%ymYrTR>uEE{~5E(8UHAs z^Z>iQk2w6a_if<#SJn#7lFw)PusgH9FuZKn#P8-424Lf&^S;JvX```{m-RfByZsoSOaR;ZoY{*?&yT1+ zKl}wEm18yS$=Q*IG8nAY)b(vhdD}M=47o*uM(okpJDoR9<+E~|qX&^!O=y|$3Zn+(Xy;05?(F(%7wbW;Az}Itho8g*QemjV4qxF>~cJl zE)XI#J}Og}4Zv1W;lBI(9^VmL>NHtzhBJWeaxyQ+k&@F5fy)c%`}>J<>7L}7^6O>A zNEG-AZ>HVnX*h-NmdTK-oI+Uc6Y4U*(s`Eq=1<{qIQx@us^3A^dO^*tB-2WPGtM^` zJ9X{;O6O4bD4e?csJgQ#*@{#5^~@Q=or2TzUb26y@#}Iiujb`snlvY*8TqnxW=%7E zx_^GxTAF5b8qO4U8R7hjQXnRgmleLN9v3^XSglQ4sCiq%@#DvR&BT3Y;Y?#Et#Foo z%h1V)@i%%PGx!{F!n1&uVW$6=i|M$R_U@ny9ql@C7fz8NtA%;CyKMsyr)kof`OyM0PPSl1tVFk`s$Y(4vMeMbPC4x}u@0 zWLViNO5PFNwu&uRu4ki!0f|zfQnZds=>jLTmo|60mT^-uGikM?@(L{%c(@&P*8o zTRs^9)^xb69@!XpEyqbpfNNiH$q?ZmBSqXbef3uR*hgq}ck^cSD8se35R$X%pX@{x zmKjm{o9f*-mz11$C3x>?E?EE;hPcWCuv7#;!zUuZq6vF*cg0+)A`)0efn`4702UOu zxn!?O4DdS${K~~6eixrG0599^{Zp2u09?Q0ALo+{;9a!6)!&kgh}&uWIX+PU-qYHd zmu;f(?&cQ%4WA4E?=T;;b=p}nfWFnl`_FJ~&VcuOb|M5zOnQ*w{k;x8L!?oO=kT-D zcQyBY_$5A}0p5JMMKogW!f?DQrI9jTuD+|4*>ygd0p1C@$jq=e8RnJ<|7$)G0p6Fm z1UjaOAZ}3b&+-Wf@Gik6U)2e>3r{+?vJSj&s4s<1xq+xJg-*GXs4s<1xuvkv%9ycR zXWU!tb~r??Y#RUFGNsXQyMJpelh_oEMt7LE_>vzUxkfI{C7xMY%&WQlQk2$rN7P%z z{L++~zh1~>m!df(ou9iMAm7Uumcrp1E8%28)!!7u{cS0BX*07p(H&?&;oLPs_*u5U!@(9bY{^eov zodcxy<6aFN)X*Uf9oEnhQtWYm1U;ak2g$2P$=}B#9QO+Qi8t8#EcyMGfp;$BOsR*u zD@MQHX7A4}4TbW$vn0(hDx?4PuBRPo=z?7!!36#+bB+Hx{f?kDet7K~$Hm83zNWDz z)GZ=h5fFh$Cp)-_LLtX+a2*i7h+NqpV6N=<3tZU`u3g!kY~1r|A$4i*dG z{wn+ddYJ!45gm6!;34M4ft{WtT+osnTU(3@u zckYg*`Bw5q_y9Nirp=MAqLZNQ=_-L*-$_?{OvxwXa*W0nUTJ<^9;g}?NIfg)FM4y) z(~>+O^$%1getM~RXU)9(MqOhAde+Fd0n-NPBxE2P7@{@+Q{vNr8R#hn-waGMpygjc zX0XRH0ZI)i>+@W_^a*t%z>YYva0CLhw5=`bhm8e%^*c_}IwvG8+yheo;mYb?$=pzl zSWqrxWHrsWCTspMux?1`n}NF-Ou(7JZhhffy@H@w0AKs=+7G~Kf1ja!eNMMY8Ochu zHoyEW{xClf;0OeQ;6^}4k6OH;oJQd6g>{er{gv;&^3TC3z1Hs+NWY?&v45la0N)VY z4Iu<)2#*+B0AYkz$!rj62y#qa&g95&h}KAiUFZXRvbfgC;v_iJs3r(#fS|C8Y?_Y^ z{G$OU zGX%mH;q*R4>Esj1YsmuP8|R7$O?~@=LdrC>;~EXL0IBa4B`edTUy_V*b6u9rZ|?rV z{|>+M7on9;_jduxH;;h6Ewo?@m*H$-znqUNX+j-;OU~yNI$^@goPciyEm*--I4jsE zFDKK9iWQ`bD>0RiJkSgS=sC|HA;gjYeFaYGdu1h`PhLwKV?lM5GYZa|4+U%)AIk^m zmN8nk-ukx#9MUxflwfb5@`J1-*VihO>)p z^QvJC3kwro9UT0uAm@oufz$i;X>)?iTrQdR?9zzr2IFI7u&8-zusH+YCOB;(4rdd) zE44&4lR&u&xjaInF{AJLU0nY)ICbx>QFo50yufHsT_<2{RN;+X6W`5kt{gF7vRw+- zuZ8$Rzy=lWcL+HmyX$b;zPDz18<&7cRrtz68`L=d<>z#wkd3*98>2enSi>uDT3xe8 z^A`Lxs?TqBq&_on`rKDprS!(GZkIghE_|1FnR6`Sx56oXhvAL=D7)zyftt&VKn`8! z;dDJz)wLg9Gg%1N^tx;4x<{HW!fD#RszvY1of&7{gj41~m<*t7$CScj42;r2?}srC zPKIX#Qae!6xjt?ka?()&DCZ{TCuZ7#atsjV!1Q7y&<>DvI*6+(&v>uOgEo3t=0rukvl(v;%2iG_Wi zo1sseS2n=NYiS(uFSG%%*tS=nB8`Dc8GVAN`oB4zT$Vf8m7P?d{2ZE&p&+`ch zkgvl&L(`JYu+hS6&ifX`;el`R$p(aDjiA$fO$ge1K0vfK(54BqW6X z0sk_eNC1ft)?ZLwHbPVi+eot&DUG+B^Edg#1V|Hbn!UE#NF9K8yuh{P12)mu-||H^ zSL0DW;Q+RnyPm_0doQ7qxxyzIzy@qrPc6178^4`TDuC_DuE#I0T9)y@A^0opO87_l zqygBx>n;re4ZZkRbjet|)vxnO2C%c0Eg6ryUGaa>C8JkGkzwF}T_dNz;gb_!*XMD! zU0rA=DBk^|J!IZT-f`qm0b3&79kIAJNqm}5B!CTrPq{D_N3(UM(JYV2zb$7YnaA{}r`RusO za?Jx-8CIPk$HTrh{D1h?3Sg6$>n2|#4^JDv@Ix}A$*NbDuA6f4R{jos(kS(pF99NRa}GKij{cZy@LN8pGW}vI39Le zIL2D>xVHm;o=+HnjSj9+SydRGH9z40mroRcodE0Eg@=A)&jiP(Tr>0WGd<+THs`QE zoO=^X1n+-@eCL34H;}0vGxKA=k_j@@?;m6V~!iYXj&7SEuf^fVkHe{Tzg?}y$*hp$<3{)O`vN)Cy{Ms=B4|QGlMxh% zxDU&I3QoU+hJI5SPBv_YQf+nBb<2c1bN#*{pJf~{<)W4xlslCp}6}Jr>u`q z=WWx4C;0g8{T0r!LsNb$SoP+Mv39KQ&UE0T;Obo|GOl*{g6c-ycW0{i6r6g^_$!}C z-td?2(yL|k8j7K~(dQ&=NXcn%{T6-wlCuw#ekl(#(C%xk-<-8gp4@YVLa0KR_DFY{vdixFaW*7yqe(;QthLRe>jPiaC=S-R0jg3m7_60$m~ceWR;u zOBem4p%o3KHI%tirdJ!qSjk+-%Zh))0JjfQ!e1eZX6x6#VgOvol(QIEzy2KqpnfUy zGO&LA95kSQDTg$$e*GLJpnfSUHn4uvDqoK=A%- zz6m%IwBHS90%iahBfN=9UX=2E6+2X{!Kv7E_j%qS1dNLn+v4{1>(KA_!s*v+elO(6 z1UW(bxvyY{g1-+=!R7*fo4__Fir)vP;>sEx$&)cTZi8|BZc6XF zDSrrD!TIFKvS-)YH0kZ{!u59H_k$~VIXhDHS1?#8{Q+$?!s=J#(s+2XhF#qc-?4I8B@72G>+kTd{5ker-6z z20sX=>7B+^Bhj?1`C9>kq@JepglXWEx6Q^c8a@7$5Vi z4A|t`9|hDuopzQ*Nm63a!U)M0Zy{@@+3ur*>-_0wW;@u&;Y`8Y?};&Rg>~!Ofa(9O z!Xw}DI~@Nf;IzGyF8sVcl2aztC2e75uUYp~{<^odf&K!VC75GV3|kPp^qbxO{d!dQ zdemQnw+=NWy#A0{hrcN}Hib{aDSNkZ8Yrf7suD*^EXB7i=o|e8$?&W?RuKM14~Z}( zY2zk&eicsRJIFvKGCDpkXR>}_Z8I{xA&)T zwqPFjZYU(zFUl1B)$UmBe+H*vGpCixjNebH+3e3#O!Hd8UUuHq< z5(O~=t;JVZ5Vv>_v0vBX!nr808kblY?-7R)T92=?Fm4rwF$}H8*H{?4#bJcjqs+qC zBMRdp_>iSQz_+VFX`~F&4&taTuZX7-wM|@E+sfG>vkmC&CNRC=)D{ z0s@_W9px-|FsHIGiimU!jNqPinT1hAq+?=)w$*Daj3Oc(10%R+MJ$XWA{`SWv>uZz zj3Oc(10(q93bQbZh;$5$^Had5tLrR`A|f3f<6>kM7-NcsQADI;UNAI(`9q5W!xg>joOjNtoYmW6Rh97bq8zLkY>yD*I4`(uuUafkO92Xwz0 zonM4jWS#|br}rSY&7BX0B7t_?2mA*X%!2}8E?f>wECkyD^HY#8C!(`6p@4iPaQ+-{ z#Pb;zOaU2zK@;Z06m;zRSr$qGIROjh!r~;bE`NiCQb1O~LOBtE*5z-qPzuNkY%?u3 z0uS@ISTF^o1_n%+v-7|f`#Ba!0l5LoVy}Rs{5%V#fb4*Ua%SQRur7a_g;GF%pn@_K z0Y>>dER+H=1eW(%gjePlSTF@7392x`wfRLBOaXa<0~IGr3wa{5QR6+Z{r)Zsv4D85 z7BR`@%@gE7=y>5vEW`q0zgomIvqa0Ykx&3w$G^uyEFcctS7X%^fs2cwdFX@p@3Zg< zhzM)(&IiLmay|vt?;o)63J48r@e=*Y1T!$+FSGCph!Sh@E(9;ifd%OLr?0T^3Wyi) zOQmkCq>=@7ST<(Is=49N{A4kiBF#j=dfr=u8~^qcY3iHP&_xZ+N1DhjH8vft^neTU zIg|{w!kWQfW&0Dg*dL^=^Ww1I?}B|nXATJP5(n@@|70!nS+UUF)J};L^gdZmlV=cR zm^~BtJ1C-OHT0Z@o+mx3FOaI~7d7-!1Wjo5NF0yU$mLF%#~w7atf6a~MIpM1u4`^} z*AKhcLpGC77Lu7XX)l!3bb`wltRt8Y@d@Vs_6kNO^LsLJIiFYLw6dad2}W%q=SW=E%NUJALZAOk4b8?Khk?WLv(|h4u<`d2naKd?z zB^<-ODk2upxA95kIGj|Dts@m$;T~#G328pL|f0Ub6lJE$&DbL zd@<&wJ9b%Hr}(5Zx)G$aQWQ1U)$%+q^GW9voOIZZIiE=05Ntf(!6%;68$mop@#6Uq zpLou01o7l^swl1lYjOQ1pLm|#2;wP<7ti1DiRXDZ@zmMXy-i!W>|1-!bM5Lc!b#@{ z^F)#1%kMWH5T4-^&IFur*rsz!xO86SlTKhGNGFd(hdkfOC!HXibl4$JDvv}jt&j4F z=iEjRk0M??pXU=#Xd{ScS^Qb_TYTb?HiUS@A4U&^xHk2f4Iv)!r_pEm#521g#3TN= z^%g$yT-*@i5r3X|H=lSGHiUT6s;B&l))Dl_`DC&PClj~Z8lz-FjwRC>xOrmu3w*M= z3@59HTuxkaGQN_PvpF@veOGQ?f#Sa*0(iY_&e_A?;uA-)&Ei=0OdNYI*u}A*yyGaf zxd|r@_OXGQh*z0Xd`1_GEn}g-tQpORU*r?k?TsKTYCxU|>n#lk>l&Z1-VP@$cBUuh z>2cKBwZ4Z>B6r{$`VKf@v2$TLRY*D0SNTNpPB@Xc z?c|325Ru3?GD*HmV{<2`!*Q%_{2%#b@h&)7u=lMvsfYB+6<5Yd8KoEIriCAt=q9hf z8>@~bI90|^=-;qB(v##J$L{}bI4M5P_DDpEWMpF^nG-&h3D2$-rzOBBp8&rbPJnEe z9!nO;)H_c-mCdDF61vSNAq`GK?1h?FZ;2MqkMN1-d*Q^xu8|_ca?^1^j?6NjU*(g} z_rb}BZ9Z=kZ$AHpPdx8|6AwEi$QE*iOfoHcg>4UW?QuV_5ky3!Q^*iG30`C)d?I=; zoQT*?XgMo>m0jkO&l_;^Vej(G#C*iN>2Kqc(EH#dRL_D&@}lNFTie)=@yX|hHiCTe z$&qExQb%jfE0%md!zZ8jZv^=)XGe;n?dPxgyQYfrGiF}IHeMOO%qOT1!U@W)$=JxI5kZmBbveb; zt|r^z-6k&mrIACjob|i-B==!B$+@*vRwb7w5m8*!vBN1k{4pZ0%2;pw@A;(n(e_G@ zcKl~ik|f;XWL9$8(_4L;;aMj3B|ag298O4VFGj?~<;>Tw6EaY3ve=Wiw_K!Wk^Y^Nmat~u`<3uWL0%nGklW!r41oD zH6{FRz#dZE;FHy-;biqF^E#!N&Z$ZqDX|paTGV~h3H`3gx}$p^pE!OMP8@E@$;x#2 zY|E8LKclZCOB|o#6UQIIiNno0D&oiyeyf%x^0gX?{3)MA{s>MYZabIZl|7#&kMEhS z+}YM#=GuMpfc`U9lr%)%aa`a2F`WF^c}Y@^1UiTvk5nF1-y0^6 zn<0P6$MJwoPIG6I<8a|$Z?9=|$aM9?F46MlAGpp$4L$|w6^4~d0+^`Xih(;|EPEZ; zK`y7?fWwVA94_&&lJqJ|+X7gr*|5P!wm}YWuLB!e+cHbr0ywIfu;B+SLXLQ^0~=b~ z3QOApW}UEMgRgDKLGX28Lu)(E(zbwMC~oDK`ar|YJ}%x(-#YNkJwcugds7dUuLB!; zbzftxZlE~LFmiBT4mozS}O_ZWLN>`gt{ zo(&s(--aA^Uk5g{C(p1v`L-rz1+AHnLNeN`Zu3#tu)+83EDQD!C~RnLzm)}hJ0xuI zeLKg3y~BIhZY6+vxDuUTgjRQ+g?p#>xZPT5=FW#gkw81<&i@A%@`EtQ7cK|LM8kF< z|5Tfio0BZB1kRrWzAE?(3%P)ytZoS=6Zyo{6fp45vVaS?5vv1yVQ~@|_;0X)3mDN_ z2RQs#``=^%7m#gnbL^(6N8pkF77Mw6sjY5Xd1X*9u&IBJg;m47kp}$U;8o zz0Qxj6mV7C`c!aUCiCWv_rR|1cUeLZ5Wuc01d?x^C&CCq2eV&d2|++GyRHysW{EA# zMnVB#OZYvO5CjCaPpr2b$hi8&&^&bR;`do15D?<7D}wo8I7rU(z*g`FED^9`-8Z&$ zZRw(a&?}^PZiy5*zlLHcuAxK(sSPG+*Odh^2bstNSQcMq$wEN>N>V74u6|YW_Om_gaePlyrXXc7S{@Uswu)rq1yz4jP*<``u~=exl>BEbJ{pUU zoQV(L$dVRwQ(DJLTdueRLQmn-gI!(kE!XRy*yTY7g|na+KTRI&X$QqBN@@r*Iw(q8 zuDXi=f9;j}4J4Zaevzj)Wfd)J=$eL*R#&ov3o{epFxdtI&`yw!N&W+(zN(>jht*{U zZ%1b+y0kUQ8XeIg0_d4fUPGO21HF?O!V1Zl^4S??AkyI-4$MXtX2ax0FEAerM&!xG z>1mQF2t}r6-S?PC%N>Z${ZnsnXX6*S>USk>28y|SCO4PKCkx3;nz6=`OT+|Q?Kozv zcd~r&Tj}q&B75E7ah`lhS3UkN@=Bx-w%wd46mrQ}v7qMN@slIP?+w&DQfQ zIr3n@BSn8ccbSYA$lP?7M6I{&qG|*7wlqGjHJ2g!DLU9cKG5O#Pjoo`$v>0~^UPy`rU;Wo?v#6GW*141RU7xpfMc)R zNlwI>VqWd!gz@&o&B-FUj7)dD_2a)IYur8e+7YY2G?cg*yrHHG(<$W|y%!aGpWeXiO~@n$6YMX`z|BPifZe(Qym8+Q;zWKE>V6A-UyS6g+Tl2IC}T7_>9 z8+9r)mQ&?G$w^0cT~lf3I8Q z(%DuJg|mXgRV!GC=TtR4SzKOLbD{KdhAVEcCh_94`zs^)PU@pA#SE+JY(u#OXeiYX z!fq(+V#aj>Om{=Uk8HP1&~@Ej_-n>G+g7f?*~-DHtu)dZ;#l z_#2NtzVX5aKf5jgn#fvb;+x1_VIp)mo1KF|V0z=;s)a~)ndQNq;Y{t0yyD|T0 z)CiRdhf&e_aqTy%%U&9l>4J2_87cc#bwxv0342>ZEN*U;RvcE9fU~N@4p${|U-OL$ zU5cQ~5!42wT81;K?U!?e9?jeUz1;Ea`96nlLLWBA){m9VpYy{g@53n6CNuJKkMqrF z6h$LwQEQ(!qT~C30;i#QRY~~HsP5eNyR^6=)gCMIeUW=mdzV@f9XAN%i*{5q(KF0; zO|F{?8vXe3j`#5nolXd49MuG)$Hrlu;(Y`0-azO;Lm&g$ZHr_=X;OCS<=Luod~!Wl z`Ih6oED#E0@`I4>Q~x7@b}C`;PY62%qDq*ofshd?R6xr}HQl{Z2R|8Jb9?GI28&3`ca=`-@x??F8*W2760`d^1r z|Gw&h!{9^rxSrd}sOy`?h+khRsJ?O)&SDOehO#&=k?;tPARiP58Ivl;!R zU#z>%a9od~kMDsqrUSvq#3UI}Ha9;T2reuHr^t9RLKfCS91`L1x7!(jB?0rhcbkaA zp-8YTV0W;<3YgPvfei-E&$b2ZP8L|!IO@jgmse3rLn|6eYbbN4TztJ8E5=HDP0gCr zhV3xqT`ai$EoInU;qEcv8jQB>K)aiTc9%G`p~ymTJ}S@5P6dIT)E*Yvqu!&n-15c6 zP(YG{Q=zsX-pfM#lJ|)Bo7Nn>5)DSC$UZb3o;bGvtm1tv!0+%L@VzGB>drg67=_<@ z_p=}i*m@6H4tjoKPM(O$!P&6f7SIP+papEf51XJbh32D+6Ja?ToSz9r$O}{Pp~yL4 zE5Db8UcjDwWGb|v2bhuIWj*4WSd7jRrs3$~d;}QwK^ANQd$VQf;Y*Y9x%tqPe0g?0 zJast)zG)p|ffleu@0^~U51yN!U5rf0li@|^{rNBpssK;6%Lerv9qtTl%STvP1vs!B zHmvi(DPW}cv5*RIR{Ly7LlF{(EQF$0f$`qY!t1@4DjqBCoSXeAr>b3cqBJvXBZmHte$@ZP${0h=o_csbQcp=?&N~J4*dK!puZCOo!({ z-4JpoyxghG+&S>UC8qE--bv4VJ%DTs|SZX2JZ!y3ey z!eOTbHpJLvtcu0`kOOxm8f(w+EIOvA+R}%ANG$wE9Pn*%T6+XgJ4_Mpe@&>}Kj{#F zO9a=J0nD{i)G!t+hx;9J*f0~uuqGC|a}8AMw_4(j*9&Y&7tv9|5nmZFf*&F8IO-_? zXK6TXp(+s0VG5QgrfWnI;u8hn7zw8+syzanqA*H(af%N+;P?dRx~O7rXMlA*kP-30^*Rz zJ#XRKdjRRuA9F~ly5vOjr{g#Ai3gA>+$o;5MkLS|E%1p4kS6<>!+NUX5yhL0ZxOLn z_>b`0`Gf?>5d9{HkQ_X$0TGnZ_}}V+GAq#W2dnSu6rtmf@yQdA9Jv{Jw$?6KTh5Qa zP?g|F8GotzuAV&qkWZd~w7|}Q!eO5xc!Kf&sS1#YbBj`$?o>~l{p80uPIJpOS)Myy zOh;i&Mts1r++i4U@zZt*R(N{W66E4>J_!PH!Pb|cr%T#4Q;gW)tBpx8!6!jL8dT>o z+Qug4Ws8&DLlOagZ({=d*L(s5WB{!zK!FzcvyBPxm-z$;NPhXC!wXi=6&@2F+K=zw z8X(i%u*1@bdxECE!{5&*CqR}r=K)_h?Hm3CpHu)D&YYLn zRUh60laY04^JRTqnJjqt5BbCaNba?+IQSfpC60fp5y!vqi35<<$|;U&=+lCAR5%76 zj#o~~C(HOT{hi5jg^!VU9D6(0g}nYd3Z8K&=J%oO!OVWb>b{SwtDMBk*V3sZQ*)>BtLQ18=3e! zgAIiVzcc7jn9jd*_);Ec?SCCZpyEvLI3j?ykc&VvsyHjst!K8ALpJ>*q{zTA(G)9)N0!))%=&_N9y($HZI9eK5k?vJ1c zH1r^O^(guKI1dp&N#U2~63;9x=G9z&DXQjHk`eV*F~2mW=C2nr*`;VsN$2No2gvvG zg{5%##!5I@Q1v$jbtSvBd{!MDS4ZNB@nvQF)Y;|X8`)$T&5*G>^wZbVU7x28bak0}J`q7DkCUGpMPnK|rJ?avbXw{s6O0a!NeBYe z4TQYZ7s}HKM+NugiW}2?YX-kchXkM?I%h4U3-}v7#26*AkU-R5>J6m}my{Gk2LJg; zeJglLw*t>)@cC_^GU%U9Wt2Kn=)R9Fg$P*-UPvM0w1iPmDHM5pOoQ}f18Mc9d_zeU zRd+jEXX3S4wn%Gg>JBpg>OB=bT`;yPhwCEhifmxd)tEdv$`L8!_6R1*9?6kbHm2R$n0X>B1YGr8}{cE@`V zu{z?I%wZ6e*&E0phV-MAd`&ILh1*;{z0ng^W6HjpvqBu2egaO@JF1#atGD=0SdHqs zGXt^XaLP27ZJvMGGIr{^@pWTM*z=SgY+93J6;s}NAb)MHVybxVRqU%?L)Sf;Z2ji; zs9ss&ONaWZ_fGXs!>N9^v3Ju|pUlVE7f;Qn%t-V;IzqCdzTfBY`zPTnV4JLDvuZja z=Lc&cnlwl0Z z#?@bbSkGH<8GcK(BR0tRCcO|6H-qMg6SUV?pZHHGgl9GMoQ9q!Wdbjd7OdMSb? zG&C7O0q0G!o_++p0X*!Kg1|dLy!Cp8y`|<#5ciXBa7YU9`pm^%fG*VVoB4zTc=^N< zj-cx(JjW*yz^j}47z+#LG6xs=1k~Ea#~WQ;Te|2U&8<+8RfOQ;f?)1M@DK9|3Gn{F z#ftQu+0z>Z{3#*_vrvO|p@4sdPga1b^#`0Qu9|}NEZL5~&L;@K%=6KDg5b_#Idjpt zKgG3a1Lkd+HX$sNi=W~X3Sdr?X&(Z!oOq5;EP(mG`eG520mMZj`69$|SC0ogJ9 zgG3yasF_xy(%yw2nOq!-UX>@J(fQEiVl=n_jF$9=x7c?SKYQkc5?AA+qlxje z%IVs^qf%cwtfsFOkUK0qP6p?)T5vSdc5u{#<_l-C2!CXd1Ylk^psb>#hA`vKrnE1W zT~Oo2T(WSRv~$IC$!sCR$d040u*5;TFuH`)_2YqUpyJpO3#E}tq;XzJCsK?HLXh4h z7t^>o04WQR9VvsemxA-*iMhGpl>6#i=N67XAx*o`&!>qTt@guGKk1cFb7@u+7J3So z$dY_-nPvRc7YJ%W`Yu>sFl0&MeDWI0E51QwxA`T}JG;D0VqtgN?2w&d(2zkLTj-1( zvKIw!sH|GwcI=6z-t!ZYsW7>{1Pc>H?gjnRp>Qx7nt{HJJ?7X6wkK|eGdHIc(z~8y z6$g>+;4jHGTz@+d6dHaFbpJ2yNZh20zrH;1mQ4K(VN=LLr2P*rTwRC;XWFm=XnwLb z7V5cqRaF?_KmN(3`kLM)=0Nm0SgY^7Ig?2<4~3l}gF)g1Z_h4YR@Li_5U4Zc&`ssg z(Guvnc|KF@Y=_Wyb0(QC7FfA}&R7Y3H%XQ#lTLK>V%SbBA(cwzbxGtqSrj7Uq3&~w zA?U2om@^V0VXs2SFI?HSIwIyR^-vLzyD3)@bcWm0ML?<=J6!~0?jj(E;g7F-7#2fS zhJOz9SRm5jZ4Xb(p9_-dJkj8};Jmw}h2_J~uJL@O{)F_*gIy^71P<_W@J9Yl-8lB@Ov*bd=)yH*2x?iBC@i*vQlbdK;T+w(py%=@rHZYzj zNkeOt%wx?J4$Jy?$i3mYz(Q1v=PLCD0!YaneX{Hd_N~-%C5cYhvuCmdg6$(f6hHnrYk;HWS z4B~Q22GN~7IZj=KZxQv%d^s%QJe)-gg)>SboQ&m^+-=`Ict;V=sQKnFh70X62H!PU zWy&ojG>ns-ch(SwvxaTcIaM`XLo54)f6}Pr^1QZ&2%I%+C$Z$h?K~MO#4gZW=b&K* zlIsn#Xe5aAGZ59eIXcJ99GoTS>Bvl6N%@9AL{G+OZKw@m9?lTi^fV>MZFTvTzy%&pW?)IFT zTh8QGlyqDTWQw#Okjq3G3@-efc8s(NG|!=T1;Sq(X)_J)od%?!M^}q*3dN#A+HajOK?`ur&~er7MC4ZfrMoU)yuB+X{5PZZaX{R zd=1Vt=*cvij9=H|2rm0D$PN5L85U;=N96DpIQ`Sx@QVJ)v`kk$t`jcQvjFaj%+B@z zF*pm@Nh~0cSs|wha;cS8`EIo8nE>~2@Xj`Y1e^)%3q=Uad}vBGm>OiAa=ryu5aIB7 zI~i~<{0sTh5MdbWl)s8n8d}j%T0@yTWjZ;#7%O#07QDPq0$;3jQjDv5d%TBx$bcJ)EG$k>hXSEsBq~pmm*5S%_pv~~&3n)f-5ebm zzL`vqj>MF_I=mq$fo&ScA=+FiZk*J?TKF4;vlPEaEb0Tbs5b;VAO1(NnAd1}gD|q; z6NFn&pndPD)pXl=SMV3b;yqG}x1BBcwX_TPIPK>Z=g97>1-^mE2XI&{@_n_)E#g$j zhWrxaGk~_}ulWoD8}{*Ss!mBtpA-Q5veqmL8dZASrG@wBxOPs!o}`CscTTJ8L~w@^evVHt zfXz5-1XEogLR)iioKG--T_}&$TFlz!18;j$@G74?0NXE~s4ow%n=$ae=aUFv-@)Em ziL~5>fWJr}SC6Z|$0q>5lKVAD6E6zz@&BjGz^uQ=f3Lr@#<2bqpF{vF&HsP)&ICS+ z^8Wwag!_hYgP@`)h9p41GbBMm4gyIK5FBTBC(I6;-DQse-nMFq#;Si~>usymTDA4) zAzsybwAQ2AR$J>)kJjT?Z);nRw*J4LXLfgHcXmRYWWPgY?W=DlJI_2bpLxFXoZshp ztYvM=@7Pg=Lw7mVW=0*AuZ%9%)+T#Oc#j;ewdKyFGx`=!PtOLZe$`8!#+u?xJEK!= zM(ttWbFs}BultHS+-9i#io4%tl0m)A9B>q=pNZu+;%hSX#0v2 zZ$=GmpK2d90(sw`@~$ zREb14H7Su+f4#CJ9^F)_M7PF5;Z02uIT&r&SwZKbu}!tLZLPKRxZ)35CNaEeafz=; zDP2@r<|*}-E?!c+pe^k0?Cz?f^R)0GefntIfCvx;Vn7^d1GWP@2uilumAllIUD;Oq z*p)tebZqKH)7DdRYkkPa{iZS3Qrb>kUy1d1wfO$@M>a>n?yL=&WySe=wHq6ewC@EQ zk>qeYq>c%xbWVOy6`=@sQg6;o>O1zcNowu6eyQzcR%yQ+NWqHg)rAMC#Wat&v|U}) zt}agOGBdGe?@V+00K2i=PA=1YL@LdzgE5;eHTRH#TF1h(ewpdX<)u97E1FymJjWJf z7`+pB^Ndo{Zm*!U1TS+`JIE(^`tk}661<2n!AGWj;fwPr-sOT5-OG_3q31q@&GC@u0N+!9F}00w>>X>nKz4U zbLxayEOWyw)`k2&M`n>P1A1Hr9Ko01MyX#OiO9|tzwSCC$bbE&RrDNG`Z05osR}qM zRUv4MMdIF=qwl|a){rO~P)c;U0Y|=Auq_ram6XXajM~CVInd(BEb_%dkBbFNnq^9G zqgYrG2+7Vef_#eiIK?p=m?_1LyuUIO_XL~`+2oVF$4QP!&rC^f`p6p=7U%o%yIw{( zXMKE_+RdKgwX#PEU?2SweNlfzC1r-YwGS> z&1VKvQf8o=K)@f3Npd)>1f6yA*jR!n|MkAVyiqvY>S_(2QA|!Z3S=Jv-RIX9tFNHeBEvBL1MWG9XLx)9?>DlO)E1 z(}soj*!Q2$AS}6;7!Qu}8ODrMEkPKCJ}gwJwD^Pmm_HPB)PayU5{@mlPvbL^!jzGq z^$-<9hf+{(&21mD<4y9uMD?LQ`vH?j zHrkja!u7bzo~JaYvb<@SyCAXU8k1=l8G8=^W zMkNyJ&5RXhM3a)kfu(z0LI2Y| zfL}f{IFK*N4WC9M$sLba=erYn?6q_dU(#oO?Rl4#?k$Sf{v{U0b5IkQ&u0OdAAjCm zMP0jB*ubGK+kn&YW}EgwmpumEs{!nLu4{+!*?{5Eu2%w(5BQ^AbTao=$5FRtuIEi5 zyN|>|K2tDeC)fIe+>QvetZ2_15z3a7dSvgy(uLloOFXi&G{X_$)me5U()+-0{KUiU z#4qh{KOEcMOT)447R%Pk=(c>$!?_%eHF{K*%Td2~c_8H7>L}xM?!z;IvWT6h8pDwD zXw}th>+$XjjwdVaEd8s#7_qj|PI)&yt^UVrS-Jei4HrGJ=r;4`Jtgz=&O6oVvt351 zV`<)tmAu0LO@w|}{w_ip-08>Kq@qytWSw48Kn zr};g7vW&iO%f#%j#AYZCMz{{nsOmUzl+T!bW9Kq$Os9hZc+fi|c^r4o^w*AxhL)bR_iXIplD>WV z_Q8LS4CAW2VVDf#a6ZE@mhea#g(UlY`buxTnO)?^!yVKbj&$7)cqW<)6|S2>%<1ZGHkF3%))n#=k=-Jy`79z!MFBojax4~! z<|_(K^=fmwx~{(KHJ~$E@OJBGe0lHrIzBrvx)=1NVDm=sCHwJmW&~Idn5j8w)Dlvy z2CUtbU$jYG->z<;MJA7@0(%qv%du3~7QS?!mYQUnmhKTs`y8+O+r1jV|MDoPgLZ-6 z^^_N7fV1+yn=_}r>O;T|l6@;*vd_x?!Rtl8s>sfkfA40}r*GGu?>jaxw9?9F19pYI z)3%_a)X#Sin^Ql;m-^GKIeF%Rp0D2XH|*kkNuKpPXD#6K)jM+mznw4XC#DMc6$!V1{PH-Alk^;v z|6V@hFsAv{)~>6o3;E&>xAt^COJGJ%XULWod5cOs^#9V5g-T1=!t@!k`|zZ}IS1Ie zV5fOA`jafR zEB0maKeQE}mjAuJ|5rEvyFdR5p0a%f`$Ybi%X!vD-^#IpkVg)zlOulF!`_Y>ORdIl zok<^YV%LU!dAXE0GPA5}#iZqV-mmU{0sQf*bTGLa|JP}Ht92+pDyF_beU2sJFV#NQUmR3Yx+*49TvTfP0h=h^)}e)?aQFI zscL-_v)(m!di(Xh-UCwhoaj?ig3)+HkwRg4TU?P^LXmvm+Nqtr(5cyb>r_?Rm`4wG zAhjEqGnPNDUb{T*5BL;k)nw;+-MF4kT#}b8DJ@f4iWVL{Lm=dEHAkBa!I8siK5sCu0(2;!H5g3>-5R2?P^4D}nY(Ka`C4Q4@#e$$Y{BR{ zOOzA7UTrjV*AnuT2DPF-yD?xJIi_}GrZGh0p5Ck|)zwhrqBZ2ltM<0M0h^V(l{e%EtoAl* zz>Gk*tRX){vA0*{=o zpY|+E{5YsGoXMB`#=c*AzCg(@wT1l7I;TYrP$X)Lvc4pV&AJz~+Q&g>cAnZf&pPXV zm%5~87FDz+(rQbS+SS5#b#l8prCpu6xl^59ug+*!XVTGJ`u_p-UA@{}mM=?t1B;B* zP`o{?4P@-P(0gtSU*}8r%mE26O}6c=b_7}r*1{mIbx|seL$!8AEGKcf|%po&#I4Pew>}|tc7w}m_X4^Cz zi^M|y-rHg#qn(n^ADrb67rAEF=CqD``NBtP4+K4#J@1EHsGr8YI zGf@IL_sc?IlP_JIl`g;FGmR-3b&+^5qR3uV_5_@*pf7TUyst03j2%r2dx$UTGutb2 zEY#}vMq0P`R{4>vNC=xKHe7r47VVcQL-J0WwoaQb@fl3!C>l*8+~HMwb*gc3Sm>^~|`gn7O+%{ zqddeW$JC=olcjoK*1frc^mwFce$(T`rpLEueD+QpWHRQ3+HHDlIJq~9Uc3r9>Z}Rw zJd?XKL+w1R!S)N!XL4FTlj~}|_70#LZx9&e|$ zZ|`e077-HZ+IVaev)D~`V*4?Otxzc5v>+vVXH4JFx`}V!2b+YbSO{?~66sh$~QkT2Wrx$Sv1rCpQOG zD5F{-Cjc4Bi{htkEe=f|p@*qqj(5@NYi z)^8^^r*$Y@EPEqQvlE-sI+QMUZ6$LfZ>ycyoYtX)*yj4x%whv}Vsl!D(#5iuv#oYw zb5MuMs8sN`dxCaihxUGj(IS>RHxAi}9hQ5s?B#6OPV8_7vD_)U%}(ry+>2!|XCroE zNA|v0W5S2Xjhogsb0=-oPVK1PS8F(TlsB!etFDmNSFAjixvc%Ao!%U@X^kd)LT`B` zcRlJ?c5-vjs-`sQ}; zaV=R@Gk@|vWv4d>&D<<{+0*xFJH0t*>CQ~KmZY-g%Br|Cov5g6I~sh;HZ@0;NOV(^ z5^43G4PuslMZbr>Mu_2rm+Q;>uxsU6=*jE3diCyoERv>mp>)WH9 z(QIlmOxvPq*V~F;+TUJ$J8cVhOfPH;*KXYwu8eNWw=G;QXPX(lR`qhLQWcCvoGnS` z-0yx86_rn3MDH`X*=}+69RR=jb{=&yyP|vh44Wq0w24ZB)Iw{V$NZt7qk2LQC*154 zMYe-wjE~Ix6dKyqHSOx!dgnuHb~6f%^*R#v&>Hf^9j@z>w+3}fyQ;Q#HRH{JH5|=n z4Mr)ju4--diVf208b|qp^HN~6jo4hwzM7rt6iKM9T8qv=si|shU3EQm333nIjIk4+ zgI=+$;wzgQYO5>Co2sPBsuj#BKh{os4!Xm#if^tb(be@;l~OZ%&(JtK@j2)c%PPKM zWi|T2r4`j{**i(b+lkLXx7gIwH!oqvaiY+RIPWUSQs~i|W{XQZzs%BxYtXRCFQ|~1 zY&^@x9&%9q85N^mC@HoxtVrRA)BWMZLQ?tl3>~j$NI8Gc`V1F&%DgQLi{(XSi;F#r zON-L_44pKlGNy0aRh~x+>uHk%@x1w{>+03x>ecn_>W0mo>hUyFeiQwBg6dJd?W(U{ zRWjZwO^I*MG9}(Y{TRi^{EJN;2f1r4jT8y4FWoQue2!{J`P`ysOA=1xOYX6z5!oS&|p>CHWYUUij+@qcRJbT@g?{WQGmD5 z&LR2C+=a~iV7`+XVC2uH5gRW8XILoKG8)?3PFU<=? znmgT#G~a37vrh9OzJwko61oQ)i{{h1XK7u`p4QHH2hFE-&(gY-FRk^iv@L;k#e9jK7zc~RB7RStGW2}o%Z0{Q8DDzqg|@z-Yd)=ANb6;MX+2d`(2N~5rTiAo z^=fmwdp>JN@TI-pW1etyCSOH=-fhi|lKd#X6rU`<_C$&YLsAU0@Pm}oNAmf+3;Fyp zE~UIL9uD}ua!iqYN=rWFT}b)md?`P{{LROMl;To6@2%>JKYAr!s_PEQiJZO%Gk5cS zGCk{)S;3d&16pOjv&s6-C*{)m9zF2h+Vv%-e{>9KSiQPdYOLPKy(k%Jq&X|ewI>o& zNLKafQ;>tj_{Jj*7l<6Y*QcIolQ0$L@OJfxcJ)Y_HGLGRI=Wpwrd};?SC`kT6*g+fABb*;#mc1Cw?ljZlm&$ia+Oh2RdvMJ}!feW+N=IjM9I`f(gp!Yp`wac98 zXY_3yX?*;>=-{f|>r6PKtLG>~cyIc9YA-ue&gl7AXee*Vh5Mt{j}|0%(BNZq1RP}@H72X?RmU3b8E4WNT});fd0kHZOtgPFdlifx7p7W%4%{xZDc^Eb z-ZMHN%rI;rhh7NUk)n-0t~8~b*_G<5+=3u&QzS*BGNV23a8>bON?>NeyId9A zpPXYDQ}Z;)WZ4zh3{G8ijJ&a%O zTW*Wx%%(nZRct{_Rf3Wyu$3`+3oduF)mwly?wJ)Ax~h0k8WsGv4b5(8u ziq>Z;)33BlYh96MZ9tv3!a zYnaipceyHA@2+&ZfSI%I%1d2UOk-y|7?bx#SH&XZQsn@rTj6e31*2>dQ@XnvR2Mr6Zbh9Z; z11t^~k9GF>7P_jI5_boy+<9)xjjEhA$})H5QhDU(?AclAuG}_B*%4#RnAf{1m)tpm z@c^eatFG#$yeeGGS?=y|Tdu#@*}jm@N}^q^%B8koPi9Jf*%?Tex-FKoTlPk`#d3bN zyWJMcI{53V*nzD|WD9Fs*HyWcMR8W9-f~+k=Q!CXu8JMt4|+M1w%{sPo4BNwGi?i9 zRXdOt;ZuqjTLtsnm&<9(Wv1c7w`Z*QR6uJp(q5UYgCzx5yV>R) z81M%b&Qht+eYu=%{CV!mg-0l7>Xx}Lmos%&x+=GzrC8!#MPB$Kx$PuCxfc4 zDjopEj8%>uuBshZr?l3|L3xW3Ss>AbGJi~x7{%|(f%tY++of)8R|D;8Yr7gWZ8F+1 z+N4$v1VWsvs$9w|b(BeJOGM!u8@rKLsX0-p!Ju$fo_F&~9b-yVFSh|d%Byv(Noz#m z7W*8p*zqQ@5~>(Vgf$<2i&t)XsiW**E_FWPRclUMVaF2ln$FksetUNhg=_=Wq1>oX z6!Jckf+bTWUTJ9uTLl9T%j-NmaD75(LLpKqrdpXjB$T9Kx@)>b*fx$5VQygH3E6~-&Y zLW~_PyLq*u@usJ#u9b3MMzN3biZv3JW*JN2cvNN7`W&xTR2>o-6SRgnhu`1gl{zg= zYKuSU!}L=rqO^wEIJ?t6;gxNCy3|ai5=aVhE)-Dk9oDvLp^?U+h>tp5T0#*i>OYAy zeG6Ta91RDk=Oq@RdB&ujG1HpIE7@ey-jEznqF&DQE#nnC(J*O$RH7vU{62}-Cu}9J z;E{%48qwjbK(6N%YASoi2T z)|ejanOx786p8^ly_tt>iQOmlc~{kXcE%LWwEde~YU5GGCvmI&%q_LPcx#weW##>D zhklo}J!^coG^43S@~R4Jg?I|D+R>5}+Zk4(3u`d-O+7$@{LHVLx2qdSViu_xWwI`Hm&K>gklMhylQL3~q|Vuc)V{qa zbwnyvSMY9J31cO#2kt>@zh2ZjGNrXV5|KGqmBvR&Vh`Pe*#5mJc2r7iV=NN)a(XZ# z_aU{Vdr&)|7u6a`yCM*hImIHEC9%u)Aa-CciZ#C3b-Wv&qc9<@N9{rDpkCB!By6qh zVVzNpLX*TU--Fn}y(o4}>YJ@oVzN(;ac;hf`T^-(u?M{cy{R`@*`iHYwu^cfV{Pj( z-iqb$q*kguaZcuX-aVO|%O?MgSLO(FYA$B9+Rxn6S;9FfZ|JomH|k@P8&NB!sop_O zWH*b)oSutI8PjtLug+mfyX9@z9L%dSmDe)2X_mPplerqWidSap+vIMwZRFKCGWl(? zH`p{@p{dVvCGU%e6kGkNooYk7x~5%STQgd1bXrBG zPVrsYCb~~d-Vbf{upE(FrC`X%IX?12j?CkdzJ2=k!GAVW{3j=s>#76(XiSpBVTE<$ zn74Bz-bQm_nr0-lv_&DuPR?HQ&v_+J$u2p_yOPwf>sTAUS<;!7JK#;{sl1Z2q%$Nl zr}KPX(G!woT}3FOxG@9la9+LBlOMC&x@&lKr-l$jIy3h*AJ3~bRW7HcF|+2ayqYcP z%h}0(GOt$K^ySoi9kK%C60HG3}2 ztob}%&FSgO>?&{tuh#78%dGikUd`#HFt?AyJ-lMGm%`klALkXFUJA2&hrGb6HhU?| zuKI0W)frzgvt!KXykc#>VrJ39u4ioxr>8KtOVCtavDs6YTl9Qh(Ua4UIVrRjKH*>kfdxqI@r^2(o>p6U^QFvh&T z!O6UWXJk)r7lfb3D|}2+IMTNPdilIswJUhFrt-1{O&c1j8rD|VH%WEn>!r%7hNhK# zvf<2I*WQ*uDV55VN;t;3PVhavNj)~DIErm+nf-4c=M|f( zh)Q96z_iE^7IBa~As?p)?hCx4Q%-v#)6zSzD-~KM*&p+Vf_z`I_BOBX)VB;5>qJTi zXVkLmr=d3>_0s#KJ4MJT+JxvG6QZ!)Lm21!Z1+;x!}Ucsr(-jra`j;v5+KW900 zJg@4MRi{)_8O>NMZ{?LcdYv4ID+|_@*EYK{IdB$D4qWbdav&|!9;bB-v&{}H>irCl zD(8tCVtSxBWHgKpUc;aUc0z1LC>V{=i~~lkSMq8#5>{xfkF##ObBn8DH!2a%4VCWY z6+157in#})pWsz%e6x*>XVEG zQ!TG(YCtALCl=5^ZzrSNO}uhP*7}3Wg4*hOSDKHF)O@UT+H2sv!~J)mh6$Eey`+V-d*j7ZlrHR`P%Y2H`4cH#`L8^EG>P*@Rnoza-ZZ) zS-lWj(Oh5QM#7$Jm#}5M|KU=#J1t?8e=w%)yS!;j1MW$Y3z7$t?4#X1nQi(%dx>uD zTzbTftPSb?v!yrop4N*e?Ayz`s@-&6{nJePMN%i5AM`E+3^()2rlswY1=#}q3- z5NF>*EANZQTD0S{mt(OArV;FHwt;+z@>}uV`}yF9iY;oCm2}LGeYUZShcy zvm@myUghRGJN2JRKK~Yfj5eucEYg1HqT*ILEXKS1tm|pr=dxnaSI(;VNnXXXOr@9< z^~yo1Ro)>*qq5`=ijs`cykFv#o|cu7>$fi@Js5BGD4ZqsyS&P2zEY~{BFWLHe@jqw z4ePo&i|qgK3QtS&h!PISUPTx?zw!}3U~P|^hXK|qx?FNkVf?zM^9rWbg^70OQ9?7fN-1JPQwy32r&uOXSm2J+y(_}}e)y2AT!sfk1xM+WI z7F?~o!uK=fW@#y|H#}8E=ImNKl~=s|SI*nPbUv?ab7du!=4f~--hdoo?MuCiS2@jJ zOA20~8#ww>ne+4?@@h60-iBt@%=|uH#WtzT`%OQ|tC@U{T0_2gKv@8P4gHX@4*n9a zTCt#0ov!!Tb#4smZ|u>;rbJR@o7j|tnVd5*gEjHC>dWh@DkUs5A-T0-+-CBJ_yqQn z>By9W9p9*gPrPe<7Fz-#j~pQX&4^$21US2tN8ZHRC^uy5>V-o@vgBjT7H06urh$`0 zYMW&1iOwi`fy<)Bz_=Wtnhm4qqj*JALp436A=)R$i7y{-gZUGmoxKE3avpG9(G zQ}c3W$<4Ns`?5%Gs#@Q~EP0)+MbLX@aRa7WeSkwssV+>WS5Bm&g49pAuQHyt%rzvTCgx{jUd8|7(TgnZcfffNUMG zIhamKi$5gqC}vaYcV{#aiPuDE04Aw79EysSPswMSd0tM)HO-P7pqa9|`xoy55U2BM zra`A1}Q2EQe%4rFJbmf5% ztE<=hymC!dFd>^N=`@Xw(XhYZ)oUu6b-mPk#;A7GEv!vXi`pn_3v8y#YFpz0#AY%bo$2%{ z73<{u3wXs^l6D8H+G|`^8&x@r+*^6oT8i92ROK9cz29ZIGOygHT$bCy+ctRFZMnRS zgZJH*%iB8m!fm;{)#Xt?WNqkLa^@D^`r}NuKNHU~~WV>8mW@mOw$ zpA&86=D^{{DwjKTWm~!Zd*8pwBDa=1bv?Fn2XM&cPF=69+=025+syv$`fTM6;*iUo zx{9sb!3=WQzugvFxdj|@xl?zGt=u8KFL%6A?yf+cYDIZ%Be!79R&WlgRi>gy2wu%z zi`;4}H@EdFT`qgx9I%y}+j><(F1Ina+RDvsy-JtMo;L?=<>t0tm5|Gwx*=P+xvf{} za@m`JVOzPmtyk%C*H$vOc(>Wg&27C($Zf7)%`7)!D>t|GDqSvnxf`{Wn}d2)W;KJq zO%$`0JGA$!kyg3fIdj}r?l12Y)zuUJ}>GnrxO-ubkkiBDoxd^E3Oi@PALD9vch zt9jL$a%Vk#v3_=2$j|BgD)CCTWLI9A1jUb&W%DIAN$ zLVnhz)Shx#GO3M)NH?QVzsxJy@)5U$d9C_=UcHu5sfCi4H{1GxS8>oH>1u=GAL<^`^x|D7)fb$8|NYU`q$U7KQWk zm3Y;fR>0Cb07$JQM7K zUX^+Cqc3<>n{u!6rqy-T71H{OmB;d#wU}7A)i(Fafd{2R`st z!Hw)IsJGe*&Vd)aRd9JdcM1n>1?RvI-ue;O^D7S7D$ao`yvb=R@e!|H%baP2ZT05B z7v5^p>)8cwvlW~JZ+NTVy7KkRDIBpCoCAOOEP|`+nFU8}1?Rvc-kNDO^Cxl4R&frT z;`kx6^-1Bot$PXJqHz4laCNBgik&DUfOPw zc{;^mcd)t_n0m@mk|VUm5wq%}c~zTwz4aboJ+&jP+xfn1Z8fiEi>naLs@UOGImfOf zUd5Jv{x+G0qB#YJcm;2WjV2MUtbOOKqRdD|+HOCE{<{xmJnB1F;3`s@7Jo z*dVR0;ro!$?OijGwq;xHcw4qMAz?wbUD?E2rkvDNwYILho*Hz_U2rv% zXwdU=SWf18ggI!?*uH?u=7!qpit?r^sj_MXvjr8}y?`7vYHVLXb3F;KuCJ<;nz<|Z zHIwaLKn|KVwl9EuSU3Un0|yFz&A()0XncMEML~dxg2I zFjPmBa414sGe#n;%lCi4E0|g|=48fx;!=!x6ui%mSz9!PX{B3zRejUi4KBFx)NHl; znn(A(YnnNkQ%NlGu5LezH<@W3V#=}&$uylfCi{a?#w@IeS2s0klDf%#np|2U6259i z!N>3lrbbOtFiqu&$ljRbQ(Cx1H}Hz4#(Gk;X$MZ$lIlcW#iP>{^Lm+vd8JM>qcVOK7Y!e#mF=%BD`Yq)m%@NUKb)rX*bEtZ-h)tJzdA(}V!Y70KUmOR}EY zQVY#TjQK;s99#A!ll%1Tga6cH4?456{?yKS>MHFvUhPKVoY3AH^2Gz3-}D2#f+yA1 zuB)pPA}eTH*##11WB!;VJNBzPs^&iQt<|4)*Y1l{Diduo%v0d`+N;@MCKeq7|pAAW=29MO}kNvmB(Tc&er5C zUgeo4E)v=W*+smvr(`6!o}(=fguGiBv+-kiMNiHUO(oazxIaLH{fwF$cr|A!t&a_a zJTm73T_^HNo}H1*x^3&K8)FgP*{We)?K8U2Ud_7H&l$YJXJrUaB)1Z)2nC}tnN|9Q zywWoZ@09dfe{ie3g|qSX9bV;g>=L~>hz=GXRopnU_S<;X+opRXO>ND6cZ0cI@&K>$ z%nG{r#(A^1r+F1;R$Y>cONtq*F0bqznirQcYW`p^(7YlLV(lXC^HW!w+l`Io>*PS3 zv)mfZt2nb#F23gaIP0ppvv?(EW?&6e507yta}lp*OWy)CC%aY{^RQ!hWoPy+h@@uk zB5vRno!RiBzJ+xrw_L{5K9N^=X5YB3+65~Q^Xi_O(e}`Fvzz%Dtg7Q3!-U^SG%S0S zXeWjk&j*I6Bh-`CQ{viB`}OIAAFfibRv%G+slKber;VXeNo_2!2v`gp4{QR?1il7b z1pGhXyTG-;?Z6$tFMtPu-vYk_UIktQ{sH_G7(!2=4F#qG(||*P1wc8l9B2mC0SeFp z#DO;8Y~UQ=65w0F^}r2;xOT+=Ayaz zfr7z=AwVH88JGtg1e5_wft5ftupZa|YyniD4cHEx4V(jX0+#?c0zUxm2JQi#0G;S$2>;f(YE(3l5+yvYW+ygug zJOR82yac=pya)UT_%ASWC}9*Z6PN`Y1{49u0Oi0MU@hPQyg(F)0cQbc1D62b0&W1l z58Mgt27U!R3Oon=3HU$YZ@{O(XTXqQgrUF`U@9;lI0QHXI1;D>>VXpg2?zmU;0)kQ z;3DAv0oMZ80Y3(Q0z3>n0z3=+0eBsF1NaBa20Sh@FU<>;C|o%;A!Buz^lM(z(>H}f&L>11AuYBcwi1N7bpQr zfeN4!Xat%7FW>{BKn(aga29Ye&%;920W!0W)rz(0TiBMAe6 z@xTONF0emP3M>LDfhwR0Xa;ptf;2hu^z_)=*f$sx10(SztfnNcS0)GUa1KtGQ z0{#Vj0t_BSC;%n_g}{NpJfI9%3RDBDfQ`WMz*ZmtoC2H*oDX~xxEi&ifCg*@P6kc^I)L+mtAMM4 z9|5-l_X7_APXoUNUIktQJ_7y@^dCbQ0E`DF0Q&<60E>Yoz_GweU_Gz_@Bq1@fS&`u0iFV023`R^06qlzjwAE~#scGjIlx??6j%gQ z0V{xYz;VD9Km~RHJAroKT;Oux3gBko7T{jsKHy2K z0#F+bj3LCeWs~#*aUp&x2G#=`fHMf{aPmAu{cn^yHtB;lp(?^}ut`@edliSrP z?dsIco$B;@bw;~7b93jsjsY|$wWw43?!-QQ&gm3?E$q~mQgr8ZD(YMcdw_NWol_6r zr5@3)9!ZfMMN_&x9%@E71C;O{`c$%OvESYRBmA20_f219&Ja2xPD z;P=2kfqwy0rV*wB%Yh1@5oiK@fC9vUHsBoK8^E`LOMx4K9{_g&cLR?Bj{`3NF9Poa z9{~NQ69xd2fhoXz;1J+w;25A0Xaf9z2AmF@0bC4p0^bL21nvRu1)c()23`l=06qu) z4U8en(8dA>0`q{Sz%rl)s0B6yClKP=Z)fSo^mY7n7SIV?0(=j+9{36HQ{Z9X5#UYW zEnw(O!Z6@aU;)qotO0faJAo^JD}j4~`+%2#KLhUq?*ab>z5qti(`loDS-@;yAy5od z0F^*9unyP)sK8F(B;W$zLg2f=wZQGb9l$Su2MKYldba*DUd2zZ0n6wY?QlX|yJSE8 z;~=vUIAVOMl2+Z1eO40z((MB;AG$w;A-F+ z;342);BDX?U`#P#EU*|@0;~Xz1=az_0WH85AP%$vkCYI82|NQl3%mim348*43JfhJ z3cD^Sk7Urq*Hq=`^k0KI#%=0 zJv$~^t}GYZ%4i?q(n*%Hk54fk%MnfIk860Pg|=77+#lGk}>uDX<8r2UY_u zz!qQ!uoE~JI1jiIxC*!pxE=T<@GIa&;3eP#;6tDfeVkffU^Fm>5ZB&Xrhl;l?>OM%OP8-X7HyMeoaM}c1h&jEiT#I@Ti^+f#yKYa@HMHT9h!wJ8_Q5Z*8;poRW zI_e0*(SR550qwxKz>k1ifoFj~0RIO51I#{>uph7jI2PCn1b_>Hi-4a2cLIL`o(K9I zMd%A02+RX&fjVFt5CJ-YOMu ziqGv8HWibPS;oSOy#pYz9sMP6JK{t^vLSJP14l zybinp6qFN&00#jF151HrKsB%m*Z^z<{D21R0Coc30CoZ20=^Ag58MFU1>6lh3H%0l z6?hH!7w`!%VmV#@2|y)K1w?@ua4B#Za3An<;1%FiVBiYEAmCtNK2QhL17Tnra52yc{0z7gcma43 z=yxokKX4#052yv|fNeko_!jVO;2z*!;1%FiVBku^AmCtNKCl{S0AfHKxD2=)_&IPt z@E72(KtVNO2yiH{09Xq&0^5Ndz?HyN!2Q4jz#G7uz|d8MVZZ|5Fkl^U9B>+NI&dBE zJ>Uu8N#H}^BVc?DVFFMNEC;p%0pLR5BH*XM&w%HF7l1E-KDC6o!2UorunGtQA>d-5 z6W9&h1-u0O8R%C>=notS%mY>dHNZ9?0$dJU0Xz&m0=x~p1B|ODj0cthhXXCZ7T|o~ zo4{?r?Z7j@v%n|7r@)-mgtsf<85d^57c0 zi|+up0=EJ80}lXC0Z#)j1Frz@10Mii0DT$=qkz%COkfsp7*GTp4IBfk1{wefI1vZ| zVc>M&4B!IbLf{(UJHV~LZNUA&1HeWe9XJEH0Jspi8n_1dA@C#MUf@39Y2dfOUxC+w ze**skhBgw00W*M^KoPJISPoPG>wx0`4cH2t0h|eZ3-~s03-CkWLEs_aIp9ygd%*j^ zfF{B~UwupDcLKiwo&sJ2{sMdq`~w)hjxYu|7?=+n z1C#^nfa8Dw&cpP{hcmenu@HX%n@HsGa17R321(*sP49o|X0fz&tfEr*Ua6F&^TY-~+ zlYw)A^MK2ND}bATn}NH5dw|D)$ARa87l6M3Zv&qJp94cT5{3a&fT_U2z54aq-0=Nmd8Mqs`2Y3v49C#jh0r(s6Ht-qnIWUx}ecCW! z3NRHo7?=+%0}cmP0X4uz;CMg-wgM*sCj;jK=K+@kR{%EwHxuI8CQYwpK8Bwj2l{Lx z^aa)f8-N2g6AlD60>=a21TFxEo;z5%+JSR{%Ye&)9{@K2cL8?;zXl!y z{scS^{2%Z);8Wl;V2DB(3QPv300#jF151HrKsB%m*Z^z<{D21R1Wp3lfpdY&fXjg& z05<` z+y^`XJPEuAyac=hybJsr_zy7LPZ$AA1EvFq0EYrc07n9~Kpn6N*bD@KR^SxiRGi;CzrYv3%m85) zPzh84en11h30wgD1o$cNBJdLM4)8AUIq+{_L@Qw=us?7Ba5!)Tuo`Fp6rcq-88`*F z80ZA92W|lF1av1&fa$;tLR_oduD{45@zYVjS-{!A2f&BG z{vpBvz$3sfff-@KOrRWC4!nWD9vp20BEZ*xuLBnYoxsn4JAoI0mw>+82>pPAfP;b6 zKm!m5+JGy7D}i4C4+3uhZvw+2gyBFDun;&7SPz^AoDN(Ed=GdO_%-kz@IEjpN+<-D z0fz&dffIl;fHQ#$fs26e0N({}18xT%0Db{H4g3~(1$Y(s0QeB-6C?BmMgwDjS-@|z#8C0Kn6lU7&r|$9XKEOCU7Ni6>u|f3vf4Z5AbW?G2nUN1>kMq9pK-< ze}Lg}!U$jnFcT;O76O$(6|fFC4p0FkZJP14l`~mnQ@HgOX z;NQT1fRSy4QNS!% z;920W!0W)rz(0Ti^gU?H7H~H3ec(pmG2n6FUEn=n^tT9OfD)h-SO**j>;z5%t^}?E?k70$&`3Cy zK6$C5E~k~$pi4W*@cw<^AX zKT5wm-H(15i1VRN;ZH3B2mGE+ZR;fcQn9R(c5fm5HMq?mrm3$K^qpBa*{ZavaSHmg z0rXdaI4Lgu-URx4#P*Wn1>60>l41`Dp+})wLC28HA4aD_d1*PH5G^RGJxeX$j^QF; z`fo#GN)+qr(n@C9H)l|w(V3nRom%Z7^!wn1b4KFNai(A`$)z2|SYyXf$ymcx|7DCR zu>QKqNn?MCv_ML{{>0zrfNfaSAlj+5QGF8u)BYZ7ic#!cM5~gCp6!kyl9c{KTAX5% zai@0oL5Vocf13j)mL=70+fNT@{yW|=NDc%fpI4MIaQLb@MtFPGj25n5HBJ&T?1DHx(0p-bPb#kYWfQggqi`u{eZ56hiTpa z{YQ+5))b22(3)9dER_DiKxj>whJJVY3!Uy1DSF%~QgpXdr08p>NYT+wk)oHqW}xU| zuNfrz*J}og&h?rC(X(DNM0BfDEK&o7>?=CdDVEdmSAWr!PO)5rzXpm4G8DVL(A9MMF8=(?TwYk=s3pzAKvulsa1{a7hx zxYCaWgXyo)Vs2|)pT1&dD@9s{UuTIqtrP~0ubLuJNniB^{U<8v^omeJr<_v8asKoD}aEr|i&o zU)d2;B0-V6i0RZCX4Z6!E-qW-SuD%NOXZT%C5uYQ15C`b*@Qg&3<{x%qnlDk&!mpT zd<$`Q_QYhky3`S-MRbf_>|MO5%WQb&)Zjy_Hu ziGD_Lt>|YIN1~rm9EpBLaU}W~#gXV|6i1?;Q5=bWMsXzi8O4$4XB0=GpHUo%enxR5 z`WeNM=w}p1qMuP5iGD_LB>EY}k?3a>M{rp07~Qg1_LMCxTiQ~xsC1E1R?;b2%=Ei= zX;~3X&i9s-_!cjfmr$`AruQS`-HP_JI1=q=aU|N$;z+cg#gS+~izCr~7DuA}ERIC` zSsaP>vp5p%XK^Ij&*JE`NbC|>yO%F3f2`H^pxjISdR5}VhB}F(4cXZRzY7=2N2Hh(9b=W)m?f9b;*=*(fbjM-OAYu3xK%ZZOAk zgDlr*5!{Gs6p2Ee9$CNlz&5y_c6Riqss=?i*%F!M5-o&x8U~ zuQM%IWDQmzMJfVT$EN8iBQ|@DSroZ#MJX{+6q|2t1Lpm3XTXjEOLjR0g93ahn4zQFR%7 zlI3i&{csXuo44oK(!vj?ow<+)i{~@hCN(lu+LW%dqkv9|MsH`w;6$D+vQRzurkzA6 zNJQBd_eT_8C$(Pm1ur`Ws7fGA8QpZt^Q7HSy8#b9HA7RDAct7u+4D68623or{*HwG*d0wOu@C?c%I1_ zYApc{w#2cgE5;acNa2Xm;@^>aP1;>_Po-l&OPtnAw4dYgX4&2>8MPj6p(Vy{UN}s@ zvu=~gQX}!0(=3si18WcA0jFfWj~<;KV!kDoJzg?ezfU+6^`kC91$*+zItJ5^l5T6W zEfHHT(;me$&dhp4Q|x-MB1?STyKXp@^|UXF-q&F~DW?2Wk%N|jT9oa3O}k9{4W2af zd(9GLkKb#SYeq)x#WWiK!bG z4Gp83sMlGOk0+K%@an52v}OI8O&4i@!t-T*&6WUr{F*IS3=LyRLrLVio2fI9ZX;*O zSWKa`SF%2e5se;T&ySLM#W4LQ@hDcjPCbkDD>VnxUdO{^ex=qBd;ChRmkf?jGXXuC zn<iHPw^sZqc164fD_vLc;5cem`xa* z&^{7jRNBQhYdkoi{X>KahQisy;Dq)G!VC<{v^N_t{lV=NS_IA>@%Bz_AVMNy1l>c#6ucl2 zG4jqXBBm*B!;%r}*=(0jOuIavocRWV>M&iA63<(8%lm*JvH{LM>?Nt4k znwggPvc#ZGLEHt)8yhRgwu5-&$(HLf$OXDlIFex+%sa{9Xxt_mWJN7HS-HYO@i;BS_Hw=t!GGP&#JXU+tyGqF(d;aoM|+ zvbaF*@^&ii$VAU%jyhU*4;BVJm@953#@S#-ZX=-=v3KhhIVw8WqX z)(*#&gXs@R-KN(dQ`c%ohzBmrcBu%h9W5?al^p?p%g*#0Q&)uLx@16Yxwy_#EK`A( zano$qB?D?z;ySt5lf15D5JiASj1Zgc+GJpDC9WM34<;WX?KM%dSf17hs@3A!p?D08 ztC@iSSj)r`a$x3P%sqJKeL3YNtWvpA+#`}9c{#t z_WNwhWi|na>X%7+NtvvZTCO&Q(&D)B_{{i34EnkKEthu@c(Cjh9TQ~siMtnCF1G|3 zV?>xdr=5bw+Rt*WT}bO)Ow~)>qD*&5p3~0Q(_PX-(r7gGDJc=rGoH{l#qx|<0*y1C z+c>M8gS*eQTyGzidbyPyVu#Jt>&^BpWrj)nmJ%nm4&1!!Zz(P4ARkrgW2WYX)s{0u zn9MnGO8bAfYggu+7I1Qr*RzO**nA7iiWm8mC8jM#k)4YnhT*MpFiw>bYG+WjNiT{0 z^f%S+=xON#u4rsOu}( zwvcK%a#W?%@94i(*-7oXX~mu;OMFYpO1z~DeZ>oX3m2HfX?G&}LTi|eF|ow3(U_GK zd6Vo3z^3(4GwmM4u%9IcyO5JDAx*`o{&gg7Hr5eBWtHQtP{$ZoP-%#vGLH9i*;1v*>L1&J2@w@5D)M@Sg9T7PLQ^W-8MVA1u}Q zEY_12NPMP05T)S=!>kZQ8-cseuw0%k)L_als3~l^xrkSHBe14Z*(?5pu~uvNH_0#h#adaJictmLpwJDNUr9HFLpDNn} zrG?g(Wj;`r(_KDLmhjXZr=biqPZEtGt4$|DXh-ArW<$=rv`Z6C#^g+;F zX|zj@snja6-ZvE{@nq&(C(dar5nGq{O$#|(m81H*kC6XHO0(4x(!y!AnJ+%=bSj!I z-+kI8+G@mDAgq9fZ45&|rH&lEELN2YsjbD8<4jhTI+gmC^+@JgBFT1<){OW@dP8v< zgBDSxy_uPoNHRid>v8>LbJR9b9c+op{vz#o#5$tIAEBYFsNWO7hU2OCY|T;918OJW zYIBZ~?R=LxO12Az2jpx|V>O<%aGDnnW6nmhobJ+cvV z4cAL7DN8n)EkjBRt!+gN6EkB@#HF7-aE}j?7JQ&EFC(cZS}xZEXkpxXlyU2f>t9#>f%XcucM9?&ui-8JQMe}zRB$2MkIdDr~xG^7S>NTJ-BwZc)y7s&1r0X ztyuyMNye5;sVSC3%nUL5*d`hdo!SH(WBi`1P3iS4YjI>3()0|;;!zZ` zT|Gluz==l8>E(+kv8>--m%+yxXH#X0Uffu#g|z0==ZL=DK^hU~+LwOVMJQ z7qh6?=PjoH83vjv5JuFJ1Ay_nb}15ahULO+p$aXbQbR{4p^-aWT$KLXbjvka0$C$Y zjsc|}TaP>Wvvv)h+9vMwK*M4Y_}XQRkWI5ZmN}Sq9iksCp49sLY|FJa0jF338Us-& zVI#%G#tH34+dPy)KrCo^h9wweC?I-Jd zwS*D-MWX(N7Iw!#no+zZNUgppElYhx#U;LlzLsK-cd2*L0vZpcQ&OCK!|tGG7Q0K* zYr|!7$82lx0Qq<-RO<+bwii>EN~iWyT!oz|=_=hdXMgKeo&X$T&}B)LOG$Sb((c4N znrsbh44EhT;va?U4g7Ct;!2&;S|f` zT4KUZ6cH zgj27s=nzVjxK_y-0nDm1PIakQ534-|z1xJ|c^w0TtqRSCN+j$g%OiU;UTX*!>q#@l zBqtF}dj^8`v&3Q(QcQ`Yx7yK{3}275&~h!gk)<03-oDtUAjfh z$d>9N8a=r70pb{*j3e8ZJl!@55nB6u+EZkFlJ@sce2@Rc)p#Y10ol{lE76JuBB8Rr zm-K73Pm@n1e((N!F$LHDoqR9i$8NtDBeeEK+EaAry@-nw@1@^e^j?t3ERXwqJB=5k z-Hm9oW-?hr(h@%r^eH8>S8L`j&TE5lJD8FliRs6zDQF2rlcvzW9Sa!-IEbR8ZX1jB zq(W-L(=}$C=t5&g$RYaQl+cDyYaV6<(#GJ%$T)Q!nP;+QmDz(9NG$;g-qeO})Id50 zis}YccdYtTS7;N{^=F*uLVrfc!QyY>bf2h&;2CHb*7EL?0kvtkH9k9CR{HN*zp-oq z$Kg6LG7Q)1%x1iJ5rbl=t-(v!no(!FTAPh0o0j%unRn2`9BNV5jf;j*=1<>~6f%_n zljx2KA8@PH7~!=8@nnY8WS;55YBGb4((9iRjS}b+zEhPeJ=eBYo-!}c4#C3|8j3}Q z)`(C)e^3{%DC-5Iq-dCiW$8Ok)R2=8)=`l9N$JS)co~;z3o{-s>-nx8FY5(EXjodN zg@?$gKKWo;*Qu8ZuPw<)y^J$mrCvtR5fV9Uk)w#;Ct?0U>Phs9u{FO;53U`72bpN3 zTv}xM*#o;sw=BU23SWIA@3YpS^#EEqZavbtHJU`7`mZy)xTPuBV2Q>Ka8;^A$&$$= zf@mvnJ5wf;_Ip>EOj^MI&)l29*;!n7qAZfof7lTa$X0h3fAvR|5f&mGLNNYyjb0m z=4Ik}es2;_l1b)&s{ZwTRbSP2Z{Ke5X8ikE^mprQb?VePr%u&ZUn(zC7QOhXBd-gV zhBT9`d|#qxI7Ep`9H^A9jt^7n_XW2OUl%Oxwav-Z4+XtWuYJJ9Bla?gMAKm?Nnq3# zQFWRwWE$#(k__ZRIoc_2_2(|f41l`THzoJiIx2F(mWr-1p|Q!5@;f~+LkCKIRG7+I zzyzb9DGV|Bu!epAPP`e^kiCIY{So$VQzP~+>{7h`Hqh6Qy#uAT`s{Ch5)vzx|&{Ri`0CuTdfPy_Xxm7JOx{$pCrN({sK~o*} z0qlZN92x-Q7Ime}&V{3c!^N#oz)Dq0o5x^!1TdysJdSkY@^D+*+Ck5vy zF|L6jNhP*jgV%WjUD$T@j0P8*G2pcY_^*BiIKZ($>N&w#tWDG)sjuLdVnpQ$jQVxK zSvYc=K`^sJJ&GS=T`^$lMU68)LMCDz#fY&P0QIs!FT%>8bh{Z9Jxfgb8=4Z~)HgJb z(zXUX41oH!KrcX&Et4TKr*(^ZT}x8lQ7&zl*OpswQR!dmvu2?f1X6pn82TwS4ucfh zlL1q23(iq;D1QuJ-UJ`Ky^25N#>?WwBwnV370A5{^7>S00TxevSNCZQH(^SjjvO4Q z!r_GON&~3h(ZB7fLpd*v#kv;8gDO;8`l?`@`P4@A-G3X zcUEywRaScOX=U5hk2I^HYH?yhPQGim9TSZZ>TfjpEqxoeY~FB{Ajs5+O4=+`93m4Oa*wV}+*$jxGgKKNGBFw+PObo7Ua* zp)D!i86lnnrvBMrZoG2K#;Z21yVm6x!F0gXzv|xIa?^&**8w+W81^oKQHQ??Igjhx zP^nIim$zU!Ri4;bG4J)SDt46G+dF&8109_mJ^h`Xts$6NAo$1ht&^>R&A0;sUPHTs zvqNMbMja)XOZsk*i$6XzuJ0bG9XW|VYKymxVoyy<FOBLq!%^JLq358h<4xbM#QS2G zj}Gia6E233oZ zV!)>bGN-$EiQTPWKhh?3sYr27fSdyuGw$r>UTWNSv+e`JqmFTVaEnW$V>{(Oa_t2^ zCGPmh0ZdseD%K42lsZT+RmEF6!)?b8>2Clu6rG^5ZN5Xd5^ zD>HQDf-7@}gGe$9ItD>)6gmq;oU9Nl10gh&x>hijX@TO>pAjIs!0LJjKPq(|J|*5P z_>0CzCghG0Sd2;dPY#$8LVZZ!m-m^+L}H?y6`=Wm>Q)ci%G(f|vVKIcvErblffq8$fV6&-vlZHsbjA`hPu4+#FEs?H6>B5I2Uiz7qBJ8?MN zT)ny&*S}7TmT>nc65+u$T^*}&sHUqESDvgX7h8#_whEb}5Uwial8Iuvw6H)Tyt$!B zwu!RX7G8}A`hu$aqDOj}3gTXXsX^7pG}<^;RN9z@rCvMZN{z`uo?8fUHN2Y8xVY}c zEDJSm1-~)n2+=gC+97C*Rv%zSeY2zCe<1_GBRN<2*gS*z%^j%K8>?&LRO)`(RpA# zl7Um76Qq!&t%)(nF78_|FPL8`qssNwseu>?jCw?fF6q0jcw2ehz<^XnT9ji2r-i5q zsCrCrmzuL+rUN~nAXOMOx3M1%~^d~E}u8j^n${wd=K zww|_5w)TvWDg;8u;f~?Y{wzE@58DS@Mr3Cqo{@*?z*sbA4(6gcFnEitGJyRSJwAG> zCf6m!{ECHEFN!{FKmA{G`{{!nZIz_2El>{$!87wZYHZN}*`7LXBe$mx%yRPcoJKea zV^9{=^BB3P9+dbMUaXU<*j%0y+O7ku-Vl8pm)Jr=#5AnRQ&d1=kt9|XIn}{=9EKV~ zsJDfs?W^}=ZeKm9rAAu25Dxq2w5#tq%+|}LaX38+kCn&Cf~fBc9&KkmRzs|}`!m@1 zh$<#Ad_Q96OXNmUNGWbFQw{+y#jR8}C<}kn925`;1f))nwJoz<(`k|2E z_{i%#4Cb21C(xEZ9)wmuawx1zW4flWt1bmXtG^KnD~w9ElqYU77hCE1r>U6vcTSEj z91Qhip~NY%v3j!{8Az3xXATxn%?S3XtEDi|(=k}?DR!0zd*n)!OP_W+2AH~C{TCs7Ov=#t_3Qv83MTJ4%G5|*N`Png|9>jXR-{zC z-_Hrq;($s%DI)oUT)bObtlu2NnIuf@Q?s8LY299wJy8^t)IWf={^*Fs)Bzr8WDG~h zssAn*@^KP$Ojx0S9D|j4t^QeH<&t8+O5%X~M*~<*^nVDTe7i*#`$s0^rO@n0Tw3)l zvG|O{zX`B>&_yRa$ac!b5nKhhN2U$76#P%Wv<_OdBLJYk{vur!H-QbzNi3&hNL3

1y_ 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�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

JSC7t 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 Czo75{ diff --git a/Test/LLvmLiteTest/output/a7748ef067f79205.deps.json b/Test/LLvmLiteTest/output/a7748ef067f79205.deps.json index 8bea0a7..454ed3e 100644 --- a/Test/LLvmLiteTest/output/a7748ef067f79205.deps.json +++ b/Test/LLvmLiteTest/output/a7748ef067f79205.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "__values.__types": "63d0e4548b4c4672", "__function.__types": "63d0e4548b4c4672"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "__values.__types": "63d0e4548b4c4672", "__function.__types": "63d0e4548b4c4672"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json b/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json index eeeedab..1d85b90 100644 --- a/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json +++ b/Test/LLvmLiteTest/output/f9e36e2cd6fa659f.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "llvmlite.__init__": "33d64eeb99369a85", "__init__": "33d64eeb99369a85", "llvmlite": "33d64eeb99369a85", "llvmlite.__module": "40c03bc03431ef81", "__module": "40c03bc03431ef81", "main": "5b8cf12a5862b640", "llvmlite.__types": "63d0e4548b4c4672", "__types": "63d0e4548b4c4672", "llvmlite.__verify": "6b3bc463fd044545", "__verify": "6b3bc463fd044545", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "llvmlite.__function": "874bac141c97bae9", "__function": "874bac141c97bae9", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "llvmlite.__builder": "a7748ef067f79205", "__builder": "a7748ef067f79205", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "llvmlite.__values": "f9e36e2cd6fa659f", "__values": "f9e36e2cd6fa659f", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/14d33679f7fadf1f.pyi b/Test/LLvmLiteTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/LLvmLiteTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/LLvmLiteTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/LLvmLiteTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/LLvmLiteTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.pyi b/Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.pyi deleted file mode 100644 index 5ab4cec..0000000 --- a/Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.pyi +++ /dev/null @@ -1,121 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__types.py -Module: llvmlite.__types -""" - - -import t, c -from stdint import * -import viperlib -import string -import memhub -from linkedlist import GSListNode - -@t.NoVTable -class ParamNode(GSListNode[ParamNode]): - Ty: t.CVoid | t.CPtr -class LLVMType(t.REnum): - class Int: - Bits: t.CInt - class Ptr: - Pointee: LLVMType | t.CPtr - class Func: - Ret: LLVMType | t.CPtr - Params: ParamNode | t.CPtr - PCount: t.CInt - class Array: - ElemTy: LLVMType | t.CPtr - Count: t.CInt - class Struct: - Fields: ParamNode | t.CPtr - FCount: t.CInt - Name: t.CChar | t.CPtr - class Float: - Bits: t.CInt - class Void: - pass - class Label: - pass - class Metadata: - pass - -def _new_type(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Int1(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Int8(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Int16(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Int32(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Int64(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Ptr(pool: memhub.MemBuddy | t.CPtr, pointee: LLVMType | t.CPtr) -> LLVMType | t.CPtr: pass - -def Func(pool: memhub.MemBuddy | t.CPtr, ret: LLVMType | t.CPtr, params: ParamNode | t.CPtr, count: t.CInt) -> LLVMType | t.CPtr: pass - -def Void(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Array(pool: memhub.MemBuddy | t.CPtr, elem_ty: LLVMType | t.CPtr, count: t.CInt) -> LLVMType | t.CPtr: pass - -def Struct(pool: memhub.MemBuddy | t.CPtr, fields: ParamNode | t.CPtr, fcount: t.CInt, name: t.CChar | t.CPtr) -> LLVMType | t.CPtr: pass - -def Half(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Float(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Double(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def FP128(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - -def Label(pool: memhub.MemBuddy | t.CPtr) -> LLVMType | t.CPtr: pass - - -PNODE_SIZE: t.CDefine = 16 - -def new_param_node(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr) -> ParamNode | t.CPtr: pass - -def param_list_append(head: ParamNode | t.CPtr, tail: ParamNode | t.CPtr, node: ParamNode | t.CPtr) -> ParamNode | t.CPtr: pass - -def paramnode_get_ty(node: ParamNode | t.CPtr) -> LLVMType | t.CPtr: pass - -def paramnode_get_next(node: ParamNode | t.CPtr) -> ParamNode | t.CPtr: pass - -def paramnode_set_ty(node: ParamNode | t.CPtr, ty: LLVMType | t.CPtr) -> t.CInt: pass - -def paramnode_set_next(node: ParamNode | t.CPtr, nxt: ParamNode | t.CPtr) -> t.CInt: pass - - -@t.NoVTable -class LLVMTypeCore: - Pool: memhub.MemBuddy | t.CPtr - def __init__(self: LLVMTypeCore, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def Int1(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Int8(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Int16(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Int32(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Int64(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Ptr(self: LLVMTypeCore, pointee: LLVMType | t.CPtr) -> LLVMType | t.CPtr: pass - def Func(self: LLVMTypeCore, ret: LLVMType | t.CPtr, params: ParamNode | t.CPtr, count: t.CInt) -> LLVMType | t.CPtr: pass - def Array(self: LLVMTypeCore, elem_ty: LLVMType | t.CPtr, count: t.CInt) -> LLVMType | t.CPtr: pass - def Struct(self: LLVMTypeCore, fields: ParamNode | t.CPtr, fcount: t.CInt, name: t.CChar | t.CPtr) -> LLVMType | t.CPtr: pass - def Void(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Half(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Float(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Double(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def FP128(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def Label(self: LLVMTypeCore) -> LLVMType | t.CPtr: pass - def NewParamNode(self: LLVMTypeCore, ty: LLVMType | t.CPtr) -> ParamNode | t.CPtr: pass - def ParamListAppend(self: LLVMTypeCore, head: ParamNode | t.CPtr, tail: ParamNode | t.CPtr, node: ParamNode | t.CPtr) -> ParamNode | t.CPtr: pass - def PrintType(self: LLVMTypeCore, buf: t.CChar | t.CPtr, size: t.CSizeT, ty: LLVMType | t.CPtr) -> t.CInt: pass - -def TypePrint(buf: t.CChar | t.CPtr, size: t.CSizeT, ty: LLVMType | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def _strappend(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass - -def _print_struct_body(buf: t.CChar | t.CPtr, size: t.CSizeT, fields: ParamNode | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def PrintStructDefinition(buf: t.CChar | t.CPtr, size: t.CSizeT, ty: LLVMType | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def get_struct_name(ty: LLVMType | t.CPtr) -> t.CChar | t.CPtr: pass diff --git a/Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.stub.ll.dep b/Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.stub.ll.dep deleted file mode 100644 index 557a879..0000000 --- a/Test/LLvmLiteTest/temp/15f1ded02f3aa5bc.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/21a7fcfc665f75ef.pyi b/Test/LLvmLiteTest/temp/21a7fcfc665f75ef.pyi deleted file mode 100644 index 6f344a3..0000000 --- a/Test/LLvmLiteTest/temp/21a7fcfc665f75ef.pyi +++ /dev/null @@ -1,87 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__module.py -Module: llvmlite.__module -""" - - -import t, c -from stdint import * -import string -import stdio -import viperlib -import memhub -from linkedlist import GSList, GSListNode -from .__types import LLVMType, TypePrint, Array, PrintStructDefinition, get_struct_name, Struct -from .__function import Function, FunctionPrint, _ll_name_needs_quote, Param - -@t.NoVTable -class GlobalVariable(GSListNode[GlobalVariable]): - Name: t.CChar | t.CPtr - Ty: LLVMType | t.CPtr - Initializer: t.CVoid | t.CPtr - IsConstant: t.CInt - Linkage: t.CChar | t.CPtr - Section: t.CChar | t.CPtr - UnnamedAddr: t.CInt -@t.NoVTable -class NamedTypeNode(GSListNode[NamedTypeNode]): - Ty: LLVMType | t.CPtr -@t.NoVTable -class LLVMModule: - Name: t.CChar | t.CPtr - FuncHead: Function | t.CPtr - FuncTail: Function | t.CPtr - FuncCount: t.CSizeT - GlobalHead: GlobalVariable | t.CPtr - GlobalTail: GlobalVariable | t.CPtr - GlobalCount: t.CSizeT - TargetTriple: t.CChar | t.CPtr - DataLayout: t.CChar | t.CPtr - NamedTypeHead: NamedTypeNode | t.CPtr - NamedTypeTail: NamedTypeNode | t.CPtr - NamedTypeCount: t.CSizeT - -def new_module(pool: memhub.MemBuddy | t.CPtr, name: t.CChar | t.CPtr) -> LLVMModule | t.CPtr: pass - - -GV_SIZE: t.CDefine = 64 -NAMED_TYPE_NODE_SIZE: t.CDefine = 16 - -def new_global_variable(pool: memhub.MemBuddy | t.CPtr, name: t.CChar | t.CPtr, ty: LLVMType | t.CPtr) -> GlobalVariable | t.CPtr: pass - -def module_add_function(mod: LLVMModule | t.CPtr, func: Function | t.CPtr) -> t.CInt: pass - -def module_add_global(mod: LLVMModule | t.CPtr, gv: GlobalVariable | t.CPtr) -> t.CInt: pass - -def module_set_target(mod: LLVMModule | t.CPtr, triple: t.CChar | t.CPtr) -> t.CInt: pass - -def module_set_datalayout(mod: LLVMModule | t.CPtr, layout: t.CChar | t.CPtr) -> t.CInt: pass - -def module_add_named_type(mod: LLVMModule | t.CPtr, pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr) -> t.CInt: pass - -def _is_type_defined_in_module(mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr) -> int: pass - -def _scan_type_for_cross_module_refs(pool: memhub.MemBuddy | t.CPtr, mod: LLVMModule | t.CPtr, ty: LLVMType | t.CPtr) -> t.CInt: pass - -def module_ensure_opaque_for_type(mod: LLVMModule | t.CPtr, pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr) -> t.CInt: pass - -def global_set_constant(gv: GlobalVariable | t.CPtr, is_const: t.CInt) -> t.CInt: pass - -def global_set_linkage(gv: GlobalVariable | t.CPtr, linkage: t.CChar | t.CPtr) -> t.CInt: pass - -def global_set_unnamed_addr(gv: GlobalVariable | t.CPtr, level: t.CInt) -> t.CInt: pass - -def global_set_section(gv: GlobalVariable | t.CPtr, section: t.CChar | t.CPtr) -> t.CInt: pass - - -OUTPUT_FULL: t.CDefine = 0 # 完整 IR(stub + text) -OUTPUT_STUB: t.CDefine = 1 # 仅声明(header + 类型定义 + declare + external global) -OUTPUT_TEXT: t.CDefine = 2 # 仅代码(define + global 带初值) - -def LLVMModulePrint(buf: t.CChar | t.CPtr, size: t.CSizeT, mod: LLVMModule | t.CPtr, pool: memhub.MemBuddy | t.CPtr, mode: t.CInt) -> t.CInt: pass - -def _print_global(buf: t.CChar | t.CPtr, size: t.CSizeT, gv: GlobalVariable | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def _print_global_stub(buf: t.CChar | t.CPtr, size: t.CSizeT, gv: GlobalVariable | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def _append_cstr(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass diff --git a/Test/LLvmLiteTest/temp/21a7fcfc665f75ef.stub.ll.dep b/Test/LLvmLiteTest/temp/21a7fcfc665f75ef.stub.ll.dep deleted file mode 100644 index e4b51c3..0000000 --- a/Test/LLvmLiteTest/temp/21a7fcfc665f75ef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -15f1ded02f3aa5bc|271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|89b3965176cd2407|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/271ea3decb810db2.pyi b/Test/LLvmLiteTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/LLvmLiteTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/LLvmLiteTest/temp/271ea3decb810db2.stub.ll.dep b/Test/LLvmLiteTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.pyi b/Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.stub.ll.dep b/Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/LLvmLiteTest/temp/2d39c6c7d3557b3e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/40c03bc03431ef81.stub.ll.dep b/Test/LLvmLiteTest/temp/40c03bc03431ef81.stub.ll.dep index 40690c7..168b0a8 100644 --- a/Test/LLvmLiteTest/temp/40c03bc03431ef81.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/40c03bc03431ef81.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|874bac141c97bae9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|874bac141c97bae9|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/5b8cf12a5862b640.pyi b/Test/LLvmLiteTest/temp/5b8cf12a5862b640.pyi deleted file mode 100644 index c9678f0..0000000 --- a/Test/LLvmLiteTest/temp/5b8cf12a5862b640.pyi +++ /dev/null @@ -1,72 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -from stdint import * -import stdio -import string -import stdlib -import memhub -import testcheck -import llvmlite - -POOL_SIZE: t.CDefine = 524288 # 512KB - -def test_type_print(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_value_print(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_build_add(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_build_if_else(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_module_print(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_array_type(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_struct_type(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_func_type(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_declare(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_float_types(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_float_binops(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_bitwise_ops(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_fcmp(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_casts(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_fp_conversions(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_phi(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_switch(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_select(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_globals(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_attributes(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_atomic(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_inline_asm_unreachable(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_verify_valid(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_verify_no_terminator(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_verify_duplicate_def(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_verify_undef_use(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def test_verify_module(pool: memhub.MemPool | t.CPtr) -> t.CInt: pass - -def main() -> int: pass diff --git a/Test/LLvmLiteTest/temp/63d0e4548b4c4672.stub.ll.dep b/Test/LLvmLiteTest/temp/63d0e4548b4c4672.stub.ll.dep index 782c670..ce4ccad 100644 --- a/Test/LLvmLiteTest/temp/63d0e4548b4c4672.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/63d0e4548b4c4672.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/6b3bc463fd044545.pyi b/Test/LLvmLiteTest/temp/6b3bc463fd044545.pyi deleted file mode 100644 index ad181de..0000000 --- a/Test/LLvmLiteTest/temp/6b3bc463fd044545.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__verify.py -Module: llvmlite.__verify -""" - - -import t, c -from stdint import * -import string -import viperlib -import memhub -from linkedlist import GSListNode, GSList -from .__function import Function, BasicBlock, Line, Param -from .__module import LLVMModule - -VERIFY_OK: t.CDefine = 0 -VERIFY_ERR_NO_TERMINATOR: t.CDefine = 1 -VERIFY_ERR_DUPLICATE_DEF: t.CDefine = 2 -VERIFY_ERR_UNDEFINED_USE: t.CDefine = 3 -VERIFY_ERR_PHI_NOT_FIRST: t.CDefine = 4 - -@t.NoVTable -class NameEntry(GSListNode[NameEntry]): - Name: t.CChar | t.CPtr -class VerifyResult: - ErrorCount: t.CInt - WarningCount: t.CInt - ErrorCode: t.CInt - ErrorBuf: t.CChar | t.CPtr - ErrorBufSize: t.CSizeT - -def _new_verify_result(pool: memhub.MemBuddy | t.CPtr, buf_size: t.CSizeT) -> VerifyResult | t.CPtr: pass - -def _report_error(result: VerifyResult | t.CPtr, code: t.CInt, msg: t.CChar | t.CPtr) -> t.CInt: pass - -def _append_cstr(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass - -def _new_name_table(pool: memhub.MemBuddy | t.CPtr) -> GSList[NameEntry] | t.CPtr: pass - - -NENTRY_SIZE: t.CDefine = 16 - -def _name_table_add(table: GSList[NameEntry] | t.CPtr, pool: memhub.MemBuddy | t.CPtr, name: t.CChar | t.CPtr) -> t.CInt: pass - -def _name_table_contains(table: GSList[NameEntry] | t.CPtr, name: t.CChar | t.CPtr) -> t.CInt: pass - -def _is_char_name(ch: t.CChar) -> t.CInt: pass - -def _extract_def_name(pool: memhub.MemBuddy | t.CPtr, text: t.CChar | t.CPtr) -> t.CChar | t.CPtr: pass - -def _is_terminator(text: t.CChar | t.CPtr) -> t.CInt: pass - -def _is_phi(text: t.CChar | t.CPtr) -> t.CInt: pass - -def _check_uses_in_line(table: GSList[NameEntry] | t.CPtr, text: t.CChar | t.CPtr, def_name: t.CChar | t.CPtr) -> t.CInt: pass - -def _name_matches_at(text: t.CChar | t.CPtr, start: t.CInt, length: t.CInt, table: GSList[NameEntry] | t.CPtr) -> t.CInt: pass - -def _str_matches_at(text: t.CChar | t.CPtr, start: t.CInt, length: t.CInt, target: t.CChar | t.CPtr) -> t.CInt: pass - -def verify_function(pool: memhub.MemBuddy | t.CPtr, func: Function | t.CPtr, result: VerifyResult | t.CPtr) -> t.CInt: pass - -def verify_module(pool: memhub.MemBuddy | t.CPtr, mod: LLVMModule | t.CPtr, result: VerifyResult | t.CPtr) -> t.CInt: pass diff --git a/Test/LLvmLiteTest/temp/6b3bc463fd044545.stub.ll.dep b/Test/LLvmLiteTest/temp/6b3bc463fd044545.stub.ll.dep index a701f4f..f0111df 100644 --- a/Test/LLvmLiteTest/temp/6b3bc463fd044545.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/6b3bc463fd044545.stub.ll.dep @@ -1 +1 @@ -15f1ded02f3aa5bc|21a7fcfc665f75ef|271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|89b3965176cd2407|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|40c03bc03431ef81|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|874bac141c97bae9|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.pyi b/Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/LLvmLiteTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/LLvmLiteTest/temp/71e0a3ffcb3ebfad.pyi b/Test/LLvmLiteTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/LLvmLiteTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/LLvmLiteTest/temp/7e529fe7a078cfef.pyi b/Test/LLvmLiteTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/LLvmLiteTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/LLvmLiteTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/LLvmLiteTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/LLvmLiteTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/874bac141c97bae9.stub.ll.dep b/Test/LLvmLiteTest/temp/874bac141c97bae9.stub.ll.dep index 0ca677a..4fc6dc2 100644 --- a/Test/LLvmLiteTest/temp/874bac141c97bae9.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/874bac141c97bae9.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/89b3965176cd2407.pyi b/Test/LLvmLiteTest/temp/89b3965176cd2407.pyi deleted file mode 100644 index bc85812..0000000 --- a/Test/LLvmLiteTest/temp/89b3965176cd2407.pyi +++ /dev/null @@ -1,97 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__function.py -Module: llvmlite.__function -""" - - -import t, c -from stdint import * -import string -import viperlib -import memhub -import stdio -from linkedlist import GSListNode, GSList -from .__types import LLVMType, ParamNode, TypePrint - -@t.NoVTable -class Line(GSListNode[Line]): - Buf: t.CChar | t.CPtr - Len: t.CSizeT -@t.NoVTable -class BasicBlock(GSListNode[BasicBlock]): - Name: t.CChar | t.CPtr - Lines: GSList[Line] | t.CPtr - IsTerminated: t.CInt -@t.NoVTable -class Param(GSListNode[Param]): - Ty: LLVMType | t.CPtr - Name: t.CChar | t.CPtr - Attrs: t.CChar | t.CPtr -@t.NoVTable -class Function(GSListNode[Function]): - Name: t.CChar | t.CPtr - RetTy: LLVMType | t.CPtr - Params: GSList[Param] | t.CPtr - Blocks: GSList[BasicBlock] | t.CPtr - IsDeclared: t.CInt - IsVarArg: t.CInt - Attrs: t.CChar | t.CPtr - -LINE_SIZE: t.CDefine = 24 - -def new_line(pool: memhub.MemBuddy | t.CPtr, text: t.CChar | t.CPtr) -> Line | t.CPtr: pass - -def _new_gslist(pool: memhub.MemBuddy | t.CPtr, list_size: t.CSizeT) -> t.CPtr: pass - - -BLOCK_SIZE: t.CDefine = 32 - -def new_basic_block(pool: memhub.MemBuddy | t.CPtr, name: t.CChar | t.CPtr) -> BasicBlock | t.CPtr: pass - - -PARAM_SIZE: t.CDefine = 32 - -def new_param(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Param | t.CPtr: pass - - -FUNC_SIZE: t.CDefine = 56 - -def new_function(pool: memhub.MemBuddy | t.CPtr, name: t.CChar | t.CPtr, ret_ty: LLVMType | t.CPtr) -> Function | t.CPtr: pass - -def function_add_param(func: Function | t.CPtr, param: Param | t.CPtr) -> t.CInt: pass - -def function_add_block(func: Function | t.CPtr, block: BasicBlock | t.CPtr) -> t.CInt: pass - -def function_move_block_to_end(func: Function | t.CPtr, block: BasicBlock | t.CPtr) -> t.CInt: pass - -def block_append_line(block: BasicBlock | t.CPtr, line: Line | t.CPtr) -> t.CInt: pass - -def block_append_text(pool: memhub.MemBuddy | t.CPtr, block: BasicBlock | t.CPtr, text: t.CChar | t.CPtr) -> t.CInt: pass - -def function_set_attrs(func: Function | t.CPtr, attrs: t.CChar | t.CPtr) -> t.CInt: pass - -def param_set_attrs(param: Param | t.CPtr, attrs: t.CChar | t.CPtr) -> t.CInt: pass - -def _ll_name_needs_quote(name: str) -> t.CInt: pass - -def FunctionPrint(buf: t.CChar | t.CPtr, size: t.CSizeT, func: Function | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def _append_cstr(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass - -def function_get_name(func: Function | t.CPtr) -> t.CChar | t.CPtr: pass - -def function_get_ret_ty(func: Function | t.CPtr) -> LLVMType | t.CPtr: pass - -def function_get_params(func: Function | t.CPtr) -> GSList[Param] | t.CPtr: pass - -def function_get_param_head(func: Function | t.CPtr) -> Param | t.CPtr: pass - -def function_get_next(func: Function | t.CPtr) -> Function | t.CPtr: pass - -def function_is_declared(func: Function | t.CPtr) -> t.CInt: pass - -def param_get_name(param: Param | t.CPtr) -> t.CChar | t.CPtr: pass - -def param_get_ty(param: Param | t.CPtr) -> LLVMType | t.CPtr: pass - -def param_get_next(param: Param | t.CPtr) -> Param | t.CPtr: pass diff --git a/Test/LLvmLiteTest/temp/89b3965176cd2407.stub.ll.dep b/Test/LLvmLiteTest/temp/89b3965176cd2407.stub.ll.dep deleted file mode 100644 index 90b02eb..0000000 --- a/Test/LLvmLiteTest/temp/89b3965176cd2407.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -15f1ded02f3aa5bc|271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/90c53dd6db8d41cf.pyi b/Test/LLvmLiteTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/LLvmLiteTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/LLvmLiteTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/LLvmLiteTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/LLvmLiteTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/946e087da91aaada.pyi b/Test/LLvmLiteTest/temp/946e087da91aaada.pyi deleted file mode 100644 index b1d244e..0000000 --- a/Test/LLvmLiteTest/temp/946e087da91aaada.pyi +++ /dev/null @@ -1,222 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__builder.py -Module: llvmlite.__builder -""" - - -import t, c -from stdint import * -import string -import viperlib -import memhub -from linkedlist import GSListNode, GSList -from .__types import LLVMType, TypePrint -from .__values import Value, new_value, SSAValue -from .__function import Function, BasicBlock, block_append_text, function_move_block_to_end, _ll_name_needs_quote - -@t.NoVTable -class IRBuilder: - Pool: memhub.MemBuddy | t.CPtr - Func: Function | t.CPtr - CurBlock: BasicBlock | t.CPtr - Counter: t.CInt - -BUILDER_SIZE: t.CDefine = 32 - -def new_builder(pool: memhub.MemBuddy | t.CPtr, func: Function | t.CPtr) -> IRBuilder | t.CPtr: pass - -def position_at_end(builder: IRBuilder | t.CPtr, block: BasicBlock | t.CPtr) -> t.CInt: pass - -def _alloc_ssa_name(builder: IRBuilder | t.CPtr) -> t.CChar | t.CPtr: pass - -def _type_str(builder: IRBuilder | t.CPtr, ty: LLVMType | t.CPtr) -> t.CChar | t.CPtr: pass - -def _emit(builder: IRBuilder | t.CPtr, text: t.CChar | t.CPtr) -> t.CInt: pass - -def _mark_terminated(builder: IRBuilder | t.CPtr) -> t.CInt: pass - -def builder_cur_block_is_terminated(builder: IRBuilder | t.CPtr) -> t.CInt: pass - -def build_alloca(builder: IRBuilder | t.CPtr, ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_load(builder: IRBuilder | t.CPtr, ty: LLVMType | t.CPtr, ptr: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_store(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, ptr: Value | t.CPtr) -> t.CInt: pass - -def build_add(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_sub(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_mul(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_sdiv(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_udiv(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_srem(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_urem(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_and(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_or(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_xor(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_shl(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_lshr(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_ashr(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_fadd(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_fsub(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_fmul(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_fdiv(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_frem(builder: IRBuilder | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_fneg(builder: IRBuilder | t.CPtr, val: Value | t.CPtr) -> Value | t.CPtr: pass - -def _build_binop(builder: IRBuilder | t.CPtr, op: t.CChar | t.CPtr, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - - -ICMP_EQ: t.CDefine = 0 -ICMP_NE: t.CDefine = 1 -ICMP_SGT: t.CDefine = 2 -ICMP_SGE: t.CDefine = 3 -ICMP_SLT: t.CDefine = 4 -ICMP_SLE: t.CDefine = 5 -ICMP_UGT: t.CDefine = 6 -ICMP_UGE: t.CDefine = 7 -ICMP_ULT: t.CDefine = 8 -ICMP_ULE: t.CDefine = 9 -FCMP_FALSE: t.CDefine = 0 -FCMP_OEQ: t.CDefine = 1 -FCMP_OGT: t.CDefine = 2 -FCMP_OGE: t.CDefine = 3 -FCMP_OLT: t.CDefine = 4 -FCMP_OLE: t.CDefine = 5 -FCMP_ONE: t.CDefine = 6 -FCMP_ORD: t.CDefine = 7 -FCMP_UNO: t.CDefine = 8 -FCMP_UEQ: t.CDefine = 9 -FCMP_UGT: t.CDefine = 10 -FCMP_UGE: t.CDefine = 11 -FCMP_ULT: t.CDefine = 12 -FCMP_ULE: t.CDefine = 13 -FCMP_UNE: t.CDefine = 14 -FCMP_TRUE: t.CDefine = 15 - -def _icmp_pred_str(pred: t.CInt) -> t.CChar | t.CPtr: pass - -def _fcmp_pred_str(pred: t.CInt) -> t.CChar | t.CPtr: pass - -def build_icmp(builder: IRBuilder | t.CPtr, pred: t.CInt, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_fcmp(builder: IRBuilder | t.CPtr, pred: t.CInt, lhs: Value | t.CPtr, rhs: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_br(builder: IRBuilder | t.CPtr, target: BasicBlock | t.CPtr) -> t.CInt: pass - -def build_cond_br(builder: IRBuilder | t.CPtr, cond: Value | t.CPtr, then_blk: BasicBlock | t.CPtr, else_blk: BasicBlock | t.CPtr) -> t.CInt: pass - -def build_ret(builder: IRBuilder | t.CPtr, val: Value | t.CPtr) -> t.CInt: pass - -def build_ret_void(builder: IRBuilder | t.CPtr) -> t.CInt: pass - -def build_call(builder: IRBuilder | t.CPtr, callee: t.CChar | t.CPtr, args: Value | t.CPtr, arg_count: t.CInt, ret_ty: LLVMType | t.CPtr, is_variadic: t.CInt) -> Value | t.CPtr: pass - -def build_call_indirect(builder: IRBuilder | t.CPtr, callee_val: Value | t.CPtr, args: Value | t.CPtr, arg_count: t.CInt, ret_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_bitcast(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_sext(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_trunc(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_zext(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_ptrtoint(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_inttoptr(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_fpext(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_fptrunc(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_fp2si(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_si2fp(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_fp2ui(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_ui2fp(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, to_ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def build_gep(builder: IRBuilder | t.CPtr, elem_ty: LLVMType | t.CPtr, ptr: Value | t.CPtr, idx: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_gep_array(builder: IRBuilder | t.CPtr, array_ty: LLVMType | t.CPtr, elem_ty: LLVMType | t.CPtr, ptr: Value | t.CPtr, idx: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_gep_struct(builder: IRBuilder | t.CPtr, struct_ty: LLVMType | t.CPtr, field_ty: LLVMType | t.CPtr, ptr: Value | t.CPtr, field_idx: t.CInt) -> Value | t.CPtr: pass - - -@t.NoVTable -class PhiIncoming(GSListNode[PhiIncoming]): - Val: Value | t.CPtr - Block: BasicBlock | t.CPtr - -PHIINC_SIZE: t.CDefine = 24 - -def new_phi_incoming(pool: memhub.MemBuddy | t.CPtr, val: Value | t.CPtr, block: BasicBlock | t.CPtr) -> PhiIncoming | t.CPtr: pass - -def build_phi(builder: IRBuilder | t.CPtr, ty: LLVMType | t.CPtr, incoming_head: PhiIncoming | t.CPtr, count: t.CInt) -> Value | t.CPtr: pass - - -@t.NoVTable -class SwitchCase(GSListNode[SwitchCase]): - CaseVal: Value | t.CPtr - Block: BasicBlock | t.CPtr - -SWCASE_SIZE: t.CDefine = 24 - -def new_switch_case(pool: memhub.MemBuddy | t.CPtr, case_val: Value | t.CPtr, block: BasicBlock | t.CPtr) -> SwitchCase | t.CPtr: pass - -def build_switch(builder: IRBuilder | t.CPtr, val: Value | t.CPtr, default_blk: BasicBlock | t.CPtr, cases_head: SwitchCase | t.CPtr, case_count: t.CInt) -> t.CInt: pass - -def build_select(builder: IRBuilder | t.CPtr, cond: Value | t.CPtr, true_val: Value | t.CPtr, false_val: Value | t.CPtr) -> Value | t.CPtr: pass - -def build_unreachable(builder: IRBuilder | t.CPtr) -> t.CInt: pass - - -ATOMIC_XCHG: t.CDefine = 0 -ATOMIC_ADD: t.CDefine = 1 -ATOMIC_SUB: t.CDefine = 2 -ATOMIC_AND: t.CDefine = 3 -ATOMIC_NAND: t.CDefine = 4 -ATOMIC_OR: t.CDefine = 5 -ATOMIC_XOR: t.CDefine = 6 -ATOMIC_MAX: t.CDefine = 7 -ATOMIC_MIN: t.CDefine = 8 -ATOMIC_UMAX: t.CDefine = 9 -ATOMIC_UMIN: t.CDefine = 10 -ATOMIC_ORDER_NOTATOMIC: t.CDefine = 0 -ATOMIC_ORDER_UNORDERED: t.CDefine = 1 -ATOMIC_ORDER_MONOTONIC: t.CDefine = 2 -ATOMIC_ORDER_ACQUIRE: t.CDefine = 3 -ATOMIC_ORDER_RELEASE: t.CDefine = 4 -ATOMIC_ORDER_ACQ_REL: t.CDefine = 5 -ATOMIC_ORDER_SEQ_CST: t.CDefine = 6 - -def _atomic_op_str(op: t.CInt) -> t.CChar | t.CPtr: pass - -def _atomic_order_str(ord: t.CInt) -> t.CChar | t.CPtr: pass - -def build_atomicrmw(builder: IRBuilder | t.CPtr, op: t.CInt, ptr: Value | t.CPtr, val: Value | t.CPtr, order: t.CInt) -> Value | t.CPtr: pass - -def build_cmpxchg(builder: IRBuilder | t.CPtr, ptr: Value | t.CPtr, cmp_val: Value | t.CPtr, new_val: Value | t.CPtr, succ_order: t.CInt, fail_order: t.CInt) -> Value | t.CPtr: pass - -def build_inline_asm(builder: IRBuilder | t.CPtr, ret_ty: LLVMType | t.CPtr, asm_text: t.CChar | t.CPtr, constraints: t.CChar | t.CPtr, has_side_effects: t.CInt) -> Value | t.CPtr: pass - -def _append_cstr(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass diff --git a/Test/LLvmLiteTest/temp/946e087da91aaada.stub.ll.dep b/Test/LLvmLiteTest/temp/946e087da91aaada.stub.ll.dep deleted file mode 100644 index 2728ef7..0000000 --- a/Test/LLvmLiteTest/temp/946e087da91aaada.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -15f1ded02f3aa5bc|271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|89b3965176cd2407|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb|f9e36e2cd6fa659f \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/95394ca8da0f655a.pyi b/Test/LLvmLiteTest/temp/95394ca8da0f655a.pyi deleted file mode 100644 index 27fd0e2..0000000 --- a/Test/LLvmLiteTest/temp/95394ca8da0f655a.pyi +++ /dev/null @@ -1,70 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__init__.py -Module: llvmlite.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .__types import LLVMType, ParamNode, LLVMTypeCore, Int1, Int8, Int16, Int32, Int64, Ptr, Func, Void, Array, Struct, Half, Float, Double, FP128, Label, new_param_node, param_list_append, paramnode_get_ty, paramnode_get_next, paramnode_set_ty, paramnode_set_next, TypePrint, PrintStructDefinition, get_struct_name -from .__values import Value, new_value, ConstInt, ConstNull, ConstZero, ConstFloat, SSAValue, ValuePrint, value_get_ty, value_get_next, value_set_ty, value_set_next, value_set_name, value_set_isconst -from .__function import Line, BasicBlock, Param, Function, new_line, new_basic_block, new_param, new_function, function_add_param, function_add_block, block_append_line, block_append_text, function_set_attrs, param_set_attrs, function_get_name, function_get_ret_ty, function_get_params, function_get_param_head, function_get_next, function_is_declared, param_get_name, param_get_ty, param_get_next, FunctionPrint -from .__module import LLVMModule, GlobalVariable, NamedTypeNode, new_module, new_global_variable, module_add_function, module_add_global, module_add_named_type, module_set_target, module_set_datalayout, global_set_constant, global_set_linkage, global_set_unnamed_addr, global_set_section, LLVMModulePrint, OUTPUT_FULL, OUTPUT_STUB, OUTPUT_TEXT, module_ensure_opaque_for_type -from .__builder import IRBuilder, new_builder, position_at_end, build_alloca, build_load, build_store, build_add, build_sub, build_mul, build_sdiv, build_udiv, build_srem, build_urem, build_and, build_or, build_xor, build_shl, build_lshr, build_ashr, build_fadd, build_fsub, build_fmul, build_fdiv, build_frem, build_fneg, build_icmp, build_fcmp, build_br, build_cond_br, build_ret, build_ret_void, build_call, build_call_indirect, build_bitcast, build_sext, build_trunc, build_zext, build_ptrtoint, build_inttoptr, build_fpext, build_fptrunc, build_fp2si, build_si2fp, build_fp2ui, build_ui2fp, build_gep, build_gep_array, build_gep_struct, build_phi, build_switch, build_select, build_unreachable, build_atomicrmw, build_cmpxchg, build_inline_asm, PhiIncoming, new_phi_incoming, SwitchCase, new_switch_case, ICMP_EQ, ICMP_NE, ICMP_SGT, ICMP_SGE, ICMP_SLT, ICMP_SLE, ICMP_UGT, ICMP_UGE, ICMP_ULT, ICMP_ULE, FCMP_FALSE, FCMP_OEQ, FCMP_OGT, FCMP_OGE, FCMP_OLT, FCMP_OLE, FCMP_ONE, FCMP_ORD, FCMP_UNO, FCMP_UEQ, FCMP_UGT, FCMP_UGE, FCMP_ULT, FCMP_ULE, FCMP_UNE, FCMP_TRUE, ATOMIC_XCHG, ATOMIC_ADD, ATOMIC_SUB, ATOMIC_AND, ATOMIC_NAND, ATOMIC_OR, ATOMIC_XOR, ATOMIC_MAX, ATOMIC_MIN, ATOMIC_UMAX, ATOMIC_UMIN, ATOMIC_ORDER_NOTATOMIC, ATOMIC_ORDER_UNORDERED, ATOMIC_ORDER_MONOTONIC, ATOMIC_ORDER_ACQUIRE, ATOMIC_ORDER_RELEASE, ATOMIC_ORDER_ACQ_REL, ATOMIC_ORDER_SEQ_CST -from .__verify import VerifyResult, NameEntry, verify_function, verify_module, VERIFY_OK, VERIFY_ERR_NO_TERMINATOR, VERIFY_ERR_DUPLICATE_DEF, VERIFY_ERR_UNDEFINED_USE, VERIFY_ERR_PHI_NOT_FIRST, _new_verify_result - -def _str_dup(pool: memhub.MemBuddy | t.CPtr, src: t.CChar | t.CPtr) -> t.CChar | t.CPtr: pass - -def create_block(pool: memhub.MemBuddy | t.CPtr, func: Function | t.CPtr, name: t.CChar | t.CPtr) -> BasicBlock | t.CPtr: pass - -def const_int(pool: memhub.MemBuddy | t.CPtr, bits: t.CInt, val: t.CInt64T) -> Value | t.CPtr: pass - -def const_int32(pool: memhub.MemBuddy | t.CPtr, val: t.CInt64T) -> Value | t.CPtr: pass - -def const_int64(pool: memhub.MemBuddy | t.CPtr, val: t.CInt64T) -> Value | t.CPtr: pass - -def create_function(pool: memhub.MemBuddy | t.CPtr, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, ret_ty: LLVMType | t.CPtr) -> Function | t.CPtr: pass - -def add_param(pool: memhub.MemBuddy | t.CPtr, func: Function | t.CPtr, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Param | t.CPtr: pass - -def create_declare(pool: memhub.MemBuddy | t.CPtr, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, ret_ty: LLVMType | t.CPtr) -> Function | t.CPtr: pass - -def create_global_string(pool: memhub.MemBuddy | t.CPtr, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, text: t.CChar | t.CPtr) -> GlobalVariable | t.CPtr: pass - -def create_global_int(pool: memhub.MemBuddy | t.CPtr, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, bits: t.CInt, val: t.CInt64T) -> GlobalVariable | t.CPtr: pass - - -@t.NoVTable -class LLVMModuleCore: - Pool: memhub.MemBuddy | t.CPtr - def __init__(self: LLVMModuleCore, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def NewModule(self: LLVMModuleCore, name: t.CChar | t.CPtr) -> LLVMModule | t.CPtr: pass - def CreateFunction(self: LLVMModuleCore, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, ret_ty: LLVMType | t.CPtr) -> Function | t.CPtr: pass - def CreateDeclare(self: LLVMModuleCore, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, ret_ty: LLVMType | t.CPtr) -> Function | t.CPtr: pass - def AddParam(self: LLVMModuleCore, func: Function | t.CPtr, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Param | t.CPtr: pass - def FunctionSetAttrs(self: LLVMModuleCore, func: Function | t.CPtr, attrs: t.CChar | t.CPtr) -> t.CInt: pass - def ParamSetAttrs(self: LLVMModuleCore, param: Param | t.CPtr, attrs: t.CChar | t.CPtr) -> t.CInt: pass - def CreateBlock(self: LLVMModuleCore, func: Function | t.CPtr, name: t.CChar | t.CPtr) -> BasicBlock | t.CPtr: pass - def NewBuilder(self: LLVMModuleCore, func: Function | t.CPtr) -> IRBuilder | t.CPtr: pass - def NewGlobal(self: LLVMModuleCore, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, ty: LLVMType | t.CPtr) -> GlobalVariable | t.CPtr: pass - def CreateGlobalString(self: LLVMModuleCore, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, text: t.CChar | t.CPtr) -> GlobalVariable | t.CPtr: pass - def CreateGlobalInt(self: LLVMModuleCore, mod: LLVMModule | t.CPtr, name: t.CChar | t.CPtr, bits: t.CInt, val: t.CInt64T) -> GlobalVariable | t.CPtr: pass - def GlobalSetConstant(self: LLVMModuleCore, gv: GlobalVariable | t.CPtr, is_const: t.CInt) -> t.CInt: pass - def GlobalSetLinkage(self: LLVMModuleCore, gv: GlobalVariable | t.CPtr, linkage: t.CChar | t.CPtr) -> t.CInt: pass - def GlobalSetUnnamedAddr(self: LLVMModuleCore, gv: GlobalVariable | t.CPtr, level: t.CInt) -> t.CInt: pass - def GlobalSetSection(self: LLVMModuleCore, gv: GlobalVariable | t.CPtr, section: t.CChar | t.CPtr) -> t.CInt: pass - def ConstInt(self: LLVMModuleCore, bits: t.CInt, val: t.CInt64T) -> Value | t.CPtr: pass - def ConstInt32(self: LLVMModuleCore, val: t.CInt64T) -> Value | t.CPtr: pass - def ConstInt64(self: LLVMModuleCore, val: t.CInt64T) -> Value | t.CPtr: pass - def ConstFloat(self: LLVMModuleCore, ty: LLVMType | t.CPtr, val: t.CDouble) -> Value | t.CPtr: pass - def SSAValue(self: LLVMModuleCore, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Value | t.CPtr: pass - def ConstNull(self: LLVMModuleCore, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Value | t.CPtr: pass - def PrintValue(self: LLVMModuleCore, buf: t.CChar | t.CPtr, size: t.CSizeT, val: Value | t.CPtr) -> t.CInt: pass - def PrintFunction(self: LLVMModuleCore, buf: t.CChar | t.CPtr, size: t.CSizeT, func: Function | t.CPtr) -> t.CInt: pass - def PrintModule(self: LLVMModuleCore, buf: t.CChar | t.CPtr, size: t.CSizeT, mod: LLVMModule | t.CPtr) -> t.CInt: pass - def NewVerifyResult(self: LLVMModuleCore, buf_size: t.CSizeT) -> VerifyResult | t.CPtr: pass - def VerifyFunction(self: LLVMModuleCore, func: Function | t.CPtr, result: VerifyResult | t.CPtr) -> t.CInt: pass - def VerifyModule(self: LLVMModuleCore, mod: LLVMModule | t.CPtr, result: VerifyResult | t.CPtr) -> t.CInt: pass \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/95394ca8da0f655a.stub.ll.dep b/Test/LLvmLiteTest/temp/95394ca8da0f655a.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/LLvmLiteTest/temp/_phase1_manifest.json b/Test/LLvmLiteTest/temp/_phase1_manifest.json index 4a3ea00..dd1596a 100644 --- a/Test/LLvmLiteTest/temp/_phase1_manifest.json +++ b/Test/LLvmLiteTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.py": {"sha1": "5b8cf12a5862b640", "mtime": 1784566611.833192, "size": 50855}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.py": {"sha1": "95394ca8da0f655a", "mtime": 1784089002.4168732, "size": 16338}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.py": {"sha1": "946e087da91aaada", "mtime": 1784566611.8570871, "size": 48840}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.py": {"sha1": "89b3965176cd2407", "mtime": 1784566611.8606246, "size": 17010}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.py": {"sha1": "21a7fcfc665f75ef", "mtime": 1784216086.0677392, "size": 20058}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.py": {"sha1": "15f1ded02f3aa5bc", "mtime": 1784566611.8280091, "size": 17996}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.py": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.py": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LLvmLiteTest\\App\\main.vp": {"sha1": "5b8cf12a5862b640", "mtime": 1784566611.833192, "size": 50855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__init__.vp": {"sha1": "33d64eeb99369a85", "mtime": 1785480244.1533804, "size": 17045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__builder.vp": {"sha1": "a7748ef067f79205", "mtime": 1785688461.307784, "size": 52267}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__function.vp": {"sha1": "874bac141c97bae9", "mtime": 1785342172.222551, "size": 30049}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__module.vp": {"sha1": "40c03bc03431ef81", "mtime": 1785883871.9098086, "size": 23144}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__types.vp": {"sha1": "63d0e4548b4c4672", "mtime": 1785919406.630486, "size": 27667}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__values.vp": {"sha1": "f9e36e2cd6fa659f", "mtime": 1784566611.8301415, "size": 6739}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\llvmlite\\__verify.vp": {"sha1": "6b3bc463fd044545", "mtime": 1784566611.82952, "size": 14751}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/_sha1_map.txt b/Test/LLvmLiteTest/temp/_sha1_map.txt index 01ca0c8..08f4ef5 100644 --- a/Test/LLvmLiteTest/temp/_sha1_map.txt +++ b/Test/LLvmLiteTest/temp/_sha1_map.txt @@ -1,21 +1,21 @@ -14d33679f7fadf1f:includes/testcheck.py -15f1ded02f3aa5bc:includes/llvmlite\__types.py -21a7fcfc665f75ef:includes/llvmlite\__module.py -271ea3decb810db2:includes/atom.py -2d39c6c7d3557b3e:includes/linkedlist.py -5b8cf12a5862b640:main.py -6b3bc463fd044545:includes/llvmlite\__verify.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -7e529fe7a078cfef:includes/w32\win32base.py -89b3965176cd2407:includes/llvmlite\__function.py -90c53dd6db8d41cf:includes/stdlib.py -946e087da91aaada:includes/llvmlite\__builder.py -95394ca8da0f655a:includes/llvmlite\__init__.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py -f9e36e2cd6fa659f:includes/llvmlite\__values.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +33d64eeb99369a85:includes/llvmlite\__init__.vp +40c03bc03431ef81:includes/llvmlite\__module.vp +5b8cf12a5862b640:main.vp +63d0e4548b4c4672:includes/llvmlite\__types.vp +6b3bc463fd044545:includes/llvmlite\__verify.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +748d0424e8976fa0:includes/testcheck.vp +874bac141c97bae9:includes/llvmlite\__function.vp +928c0ff6d8c69ec9:includes/string.vp +a5e9a83e9db303ad:includes/linkedlist.vp +a7748ef067f79205:includes/llvmlite\__builder.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +f9e36e2cd6fa659f:includes/llvmlite\__values.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/LLvmLiteTest/temp/a7748ef067f79205.stub.ll.dep b/Test/LLvmLiteTest/temp/a7748ef067f79205.stub.ll.dep index d001aa9..d2f1ade 100644 --- a/Test/LLvmLiteTest/temp/a7748ef067f79205.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/a7748ef067f79205.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|874bac141c97bae9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|f9e36e2cd6fa659f|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|874bac141c97bae9|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9e36e2cd6fa659f \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/ba12ed409d78139e.pyi b/Test/LLvmLiteTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/LLvmLiteTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/LLvmLiteTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/LLvmLiteTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi b/Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/LLvmLiteTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/LLvmLiteTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/LLvmLiteTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/LLvmLiteTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/c9f4be41ca1cc2b4.pyi b/Test/LLvmLiteTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/LLvmLiteTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/d089e25a15c6f6e0.pyi b/Test/LLvmLiteTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/LLvmLiteTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/LLvmLiteTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/LLvmLiteTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/f5522571bcce7bcb.pyi b/Test/LLvmLiteTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/LLvmLiteTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.vpi b/Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/LLvmLiteTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.pyi b/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.pyi deleted file mode 100644 index f159bb6..0000000 --- a/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.pyi +++ /dev/null @@ -1,51 +0,0 @@ -""" -Auto-generated Python stub file from llvmlite.__values.py -Module: llvmlite.__values -""" - - -import t, c -from stdint import * -import string -import viperlib -import memhub -from linkedlist import GSListNode -from .__types import LLVMType, TypePrint - -@t.NoVTable -class Value(GSListNode[Value]): - Ty: LLVMType | t.CPtr - Name: t.CChar | t.CPtr - IsConst: t.CInt - IntVal: t.CInt64T - FloatVal: t.CDouble - -VALUE_SIZE: t.CDefine = 48 - -def new_value(pool: memhub.MemBuddy | t.CPtr) -> Value | t.CPtr: pass - -def ConstInt(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr, val: t.CInt64T, name: t.CChar | t.CPtr) -> Value | t.CPtr: pass - -def ConstNull(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Value | t.CPtr: pass - -def ConstZero(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr) -> Value | t.CPtr: pass - -def ConstFloat(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr, val: t.CDouble) -> Value | t.CPtr: pass - -def SSAValue(pool: memhub.MemBuddy | t.CPtr, ty: LLVMType | t.CPtr, name: t.CChar | t.CPtr) -> Value | t.CPtr: pass - -def ValuePrint(buf: t.CChar | t.CPtr, size: t.CSizeT, val: Value | t.CPtr, pool: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - -def value_get_ty(val: Value | t.CPtr) -> LLVMType | t.CPtr: pass - -def value_get_next(val: Value | t.CPtr) -> Value | t.CPtr: pass - -def value_set_ty(val: Value | t.CPtr, ty: LLVMType | t.CPtr) -> t.CInt: pass - -def value_set_next(val: Value | t.CPtr, nxt: Value | t.CPtr) -> t.CInt: pass - -def value_set_name(val: Value | t.CPtr, name: t.CChar | t.CPtr) -> t.CInt: pass - -def value_set_isconst(val: Value | t.CPtr, is_const: t.CInt) -> t.CInt: pass - -def _append_str(dst: t.CChar | t.CPtr, dst_size: t.CSizeT, src: t.CChar | t.CPtr) -> t.CInt: pass diff --git a/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.stub.ll.dep b/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.stub.ll.dep index 90b02eb..4fc6dc2 100644 --- a/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.stub.ll.dep +++ b/Test/LLvmLiteTest/temp/f9e36e2cd6fa659f.stub.ll.dep @@ -1 +1 @@ -15f1ded02f3aa5bc|271ea3decb810db2|2d39c6c7d3557b3e|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|63d0e4548b4c4672|6c658cc728d0bbf4|71e0a3ffcb3ebfad|928c0ff6d8c69ec9|a5e9a83e9db303ad|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/ffaf70367668b227.stub.ll.dep b/Test/LLvmLiteTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/LLvmLiteTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LLvmLiteTest/temp/ffaf70367668b227.vpi b/Test/LLvmLiteTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/LLvmLiteTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ListTest/output/1ff2c5eb32359e40.deps.json b/Test/ListTest/output/1ff2c5eb32359e40.deps.json index a3d0aca..b963d1a 100644 --- a/Test/ListTest/output/1ff2c5eb32359e40.deps.json +++ b/Test/ListTest/output/1ff2c5eb32359e40.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_list": "7cadfe07e983fd90", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ListTest/temp/0035c95a18d4f8e8.pyi b/Test/ListTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/ListTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/ListTest/temp/067c78e9f121dce3.pyi b/Test/ListTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/ListTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/ListTest/temp/06f53cc594b4ac6c.pyi b/Test/ListTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/ListTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ListTest/temp/14d33679f7fadf1f.pyi b/Test/ListTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/ListTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/ListTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/ListTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/ListTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/1ff2c5eb32359e40.pyi b/Test/ListTest/temp/1ff2c5eb32359e40.pyi deleted file mode 100644 index dde14fd..0000000 --- a/Test/ListTest/temp/1ff2c5eb32359e40.pyi +++ /dev/null @@ -1,16 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import stdlib -import stdio -import memhub -import testcheck - -def main() -> CInt | CExport: pass diff --git a/Test/ListTest/temp/271ea3decb810db2.pyi b/Test/ListTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/ListTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/ListTest/temp/271ea3decb810db2.stub.ll.dep b/Test/ListTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ListTest/temp/6446627d4f07a1b5.pyi b/Test/ListTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/ListTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/ListTest/temp/668790e6c9efdbae.pyi b/Test/ListTest/temp/668790e6c9efdbae.pyi deleted file mode 100644 index fdcae1d..0000000 --- a/Test/ListTest/temp/668790e6c9efdbae.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from _list.py -Module: _list -""" - - -import t, c -import memhub -import string -from stdint import * - -class list[T]: - __data__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __pool__: memhub.MemManager | t.CPtr - __elem_size__: t.CSizeT - __iter_index__: t.CSizeT - def __new__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __init__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __len__(self: list) -> t.CSizeT: pass - def append(self: list, item: T) -> t.CInt: pass - def get(self: list, index: t.CSizeT) -> T: pass - def __getitem__(self: list, index: t.CSizeT) -> T: pass - def set(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def __setitem__(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def pop(self: list) -> T: pass - def clear(self: list) -> t.CInt: pass - def __iter__(self: list) -> list[T] | t.CPtr: pass - def __next__(self: list) -> T: pass \ No newline at end of file diff --git a/Test/ListTest/temp/668790e6c9efdbae.stub.ll.dep b/Test/ListTest/temp/668790e6c9efdbae.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/ListTest/temp/668790e6c9efdbae.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/6f62fe05c5ea1ceb.pyi b/Test/ListTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/ListTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/ListTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/ListTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ListTest/temp/72e2d5ccb7cedcf1.pyi b/Test/ListTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/ListTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/ListTest/temp/7cadfe07e983fd90.stub.ll.dep b/Test/ListTest/temp/7cadfe07e983fd90.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/ListTest/temp/7cadfe07e983fd90.stub.ll.dep +++ b/Test/ListTest/temp/7cadfe07e983fd90.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/7e529fe7a078cfef.pyi b/Test/ListTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/ListTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/ListTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/ListTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ListTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/90c53dd6db8d41cf.pyi b/Test/ListTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/ListTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/ListTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/ListTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ListTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/_phase1_manifest.json b/Test/ListTest/temp/_phase1_manifest.json index 1647ce1..1617fd6 100644 --- a/Test/ListTest/temp/_phase1_manifest.json +++ b/Test/ListTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ListTest\\App\\main.py": {"sha1": "1ff2c5eb32359e40", "mtime": 1782828109.658356, "size": 2856}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ListTest\\App\\main.vp": {"sha1": "1ff2c5eb32359e40", "mtime": 1782828109.658356, "size": 2856}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ListTest/temp/_sha1_map.txt b/Test/ListTest/temp/_sha1_map.txt index 88969f9..54ba55f 100644 --- a/Test/ListTest/temp/_sha1_map.txt +++ b/Test/ListTest/temp/_sha1_map.txt @@ -1,12 +1,12 @@ -14d33679f7fadf1f:includes/testcheck.py -1ff2c5eb32359e40:main.py -271ea3decb810db2:includes/atom.py -668790e6c9efdbae:includes/_list.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +1ff2c5eb32359e40:main.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +7cadfe07e983fd90:includes/_list.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/ListTest/temp/ba12ed409d78139e.pyi b/Test/ListTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/ListTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ListTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/ListTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ListTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/ListTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/ListTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ListTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/ListTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ListTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/ListTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ListTest/temp/c9f4be41ca1cc2b4.pyi b/Test/ListTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/ListTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ListTest/temp/d089e25a15c6f6e0.pyi b/Test/ListTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/ListTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ListTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/ListTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/ListTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/f5522571bcce7bcb.pyi b/Test/ListTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/ListTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/ListTest/temp/f6b51804a0ba8ff0.pyi b/Test/ListTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/ListTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/ListTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/ListTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/ListTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/ListTest/temp/f9d023d1df2bc9c5.vpi b/Test/ListTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/ListTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ListTest/temp/ffaf70367668b227.stub.ll.dep b/Test/ListTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ListTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ListTest/temp/ffaf70367668b227.vpi b/Test/ListTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/ListTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/LoopTest/output/86e203c56ae4de20.deps.json b/Test/LoopTest/output/86e203c56ae4de20.deps.json index 2a27f59..f9587e9 100644 --- a/Test/LoopTest/output/86e203c56ae4de20.deps.json +++ b/Test/LoopTest/output/86e203c56ae4de20.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/LoopTest/temp/14d33679f7fadf1f.pyi b/Test/LoopTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/LoopTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/LoopTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/LoopTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/LoopTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LoopTest/temp/6f62fe05c5ea1ceb.pyi b/Test/LoopTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/LoopTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/LoopTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/LoopTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/LoopTest/temp/7e529fe7a078cfef.pyi b/Test/LoopTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/LoopTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/LoopTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/LoopTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/LoopTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/LoopTest/temp/86e203c56ae4de20.pyi b/Test/LoopTest/temp/86e203c56ae4de20.pyi deleted file mode 100644 index ba09b5a..0000000 --- a/Test/LoopTest/temp/86e203c56ae4de20.pyi +++ /dev/null @@ -1,27 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -def test_for_loop() -> t.CInt: pass - -def test_while_loop() -> t.CInt: pass - -def test_nested_loop() -> t.CInt: pass - -def test_break() -> t.CInt: pass - -def test_continue() -> t.CInt: pass - -def test_range_step() -> t.CInt: pass - -def test_loop_u64() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/LoopTest/temp/_phase1_manifest.json b/Test/LoopTest/temp/_phase1_manifest.json index c4488f8..e7278cd 100644 --- a/Test/LoopTest/temp/_phase1_manifest.json +++ b/Test/LoopTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LoopTest\\App\\main.py": {"sha1": "86e203c56ae4de20", "mtime": 1782109374.0530808, "size": 2366}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\LoopTest\\App\\main.vp": {"sha1": "86e203c56ae4de20", "mtime": 1782109374.0530808, "size": 2366}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/LoopTest/temp/_sha1_map.txt b/Test/LoopTest/temp/_sha1_map.txt index 011ebb0..bc780bd 100644 --- a/Test/LoopTest/temp/_sha1_map.txt +++ b/Test/LoopTest/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -86e203c56ae4de20:main.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +86e203c56ae4de20:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/LoopTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/LoopTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/LoopTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/LoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/LoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/LoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/LoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/LoopTest/temp/f5522571bcce7bcb.pyi b/Test/LoopTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/LoopTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/MemhubTest/output/3ff210e50f345c7c.deps.json b/Test/MemhubTest/output/3ff210e50f345c7c.deps.json index fdffa75..77e94dc 100644 --- a/Test/MemhubTest/output/3ff210e50f345c7c.deps.json +++ b/Test/MemhubTest/output/3ff210e50f345c7c.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/MemhubTest/temp/14d33679f7fadf1f.pyi b/Test/MemhubTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/MemhubTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/MemhubTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/MemhubTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/MemhubTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/MemhubTest/temp/271ea3decb810db2.pyi b/Test/MemhubTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/MemhubTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/MemhubTest/temp/271ea3decb810db2.stub.ll.dep b/Test/MemhubTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/MemhubTest/temp/3ff210e50f345c7c.pyi b/Test/MemhubTest/temp/3ff210e50f345c7c.pyi deleted file mode 100644 index e6450ad..0000000 --- a/Test/MemhubTest/temp/3ff210e50f345c7c.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -import stdio -import stdlib -import testcheck -import memhub - -def test_polymorphic(mgr: memhub.MemManager | t.CPtr, size: t.CSizeT) -> t.CInt: pass - -def test_calloc_polymorphic(mgr: memhub.MemManager | t.CPtr) -> t.CInt: pass - -@t.CExport -def main() -> int: pass diff --git a/Test/MemhubTest/temp/6f62fe05c5ea1ceb.pyi b/Test/MemhubTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/MemhubTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/MemhubTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/MemhubTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/MemhubTest/temp/7e529fe7a078cfef.pyi b/Test/MemhubTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/MemhubTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/MemhubTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/MemhubTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/MemhubTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/MemhubTest/temp/90c53dd6db8d41cf.pyi b/Test/MemhubTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/MemhubTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/MemhubTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/MemhubTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/MemhubTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/MemhubTest/temp/_phase1_manifest.json b/Test/MemhubTest/temp/_phase1_manifest.json index c0ddb7e..c04470c 100644 --- a/Test/MemhubTest/temp/_phase1_manifest.json +++ b/Test/MemhubTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\MemhubTest\\App\\main.py": {"sha1": "3ff210e50f345c7c", "mtime": 1784566611.842932, "size": 3923}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\MemhubTest\\App\\main.vp": {"sha1": "3ff210e50f345c7c", "mtime": 1784566611.842932, "size": 3923}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/MemhubTest/temp/_sha1_map.txt b/Test/MemhubTest/temp/_sha1_map.txt index c21aac4..0e374e7 100644 --- a/Test/MemhubTest/temp/_sha1_map.txt +++ b/Test/MemhubTest/temp/_sha1_map.txt @@ -1,11 +1,11 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -3ff210e50f345c7c:main.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +3ff210e50f345c7c:main.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/MemhubTest/temp/ba12ed409d78139e.pyi b/Test/MemhubTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/MemhubTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/MemhubTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/MemhubTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/MemhubTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/MemhubTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/MemhubTest/temp/c9f4be41ca1cc2b4.pyi b/Test/MemhubTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/MemhubTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/MemhubTest/temp/d089e25a15c6f6e0.pyi b/Test/MemhubTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/MemhubTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/MemhubTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/MemhubTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/MemhubTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/MemhubTest/temp/f5522571bcce7bcb.pyi b/Test/MemhubTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/MemhubTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/MemhubTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/MemhubTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/MemhubTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/MemhubTest/temp/f9d023d1df2bc9c5.vpi b/Test/MemhubTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/MemhubTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/MemhubTest/temp/ffaf70367668b227.stub.ll.dep b/Test/MemhubTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/MemhubTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/MemhubTest/temp/ffaf70367668b227.vpi b/Test/MemhubTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/MemhubTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/NewAstTest/output/22bc0df83b3f0e62.deps.json b/Test/NewAstTest/output/22bc0df83b3f0e62.deps.json deleted file mode 100644 index f9b2b67..0000000 --- a/Test/NewAstTest/output/22bc0df83b3f0e62.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/NewAstTest/output/4175f14c5fbef360.deps.json b/Test/NewAstTest/output/4175f14c5fbef360.deps.json index 6816e86..87de032 100644 --- a/Test/NewAstTest/output/4175f14c5fbef360.deps.json +++ b/Test/NewAstTest/output/4175f14c5fbef360.deps.json @@ -1 +1 @@ -{"ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "stdlib": "90c53dd6db8d41cf", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "string": "ba12ed409d78139e", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "ast.lexer": "8219423928c874da", "lexer": "8219423928c874da", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/Test/NewAstTest/output/4337fb260448bbe2.deps.json b/Test/NewAstTest/output/4337fb260448bbe2.deps.json deleted file mode 100644 index 5089ffc..0000000 --- a/Test/NewAstTest/output/4337fb260448bbe2.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/NewAstTest/output/4dd6b3f1427d1cc5.deps.json b/Test/NewAstTest/output/4dd6b3f1427d1cc5.deps.json index 5089ffc..ce7ee3d 100644 --- a/Test/NewAstTest/output/4dd6b3f1427d1cc5.deps.json +++ b/Test/NewAstTest/output/4dd6b3f1427d1cc5.deps.json @@ -1 +1 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "main": "4175f14c5fbef360", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "ast.lexer": "8219423928c874da", "lexer": "8219423928c874da", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/NewAstTest/output/657e182b27c2a022.deps.json b/Test/NewAstTest/output/657e182b27c2a022.deps.json index 5089ffc..ce7ee3d 100644 --- a/Test/NewAstTest/output/657e182b27c2a022.deps.json +++ b/Test/NewAstTest/output/657e182b27c2a022.deps.json @@ -1 +1 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "main": "4175f14c5fbef360", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "ast.lexer": "8219423928c874da", "lexer": "8219423928c874da", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/NewAstTest/output/_shared_sym_includes.pickle b/Test/NewAstTest/output/_shared_sym_includes.pickle index 1ea787c3d038e1189fb0f6177ddee9a146f53a38..54556ce6a182d972328bc2251ec13993f4f51b76 100644 GIT binary patch literal 1247159 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

-spYr% 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

#q;#P2u0b4ikUYY5Tt2A*3=P=imRU2K3vJ@E zq8LVP7=8JP+OSM^J$=^@r&-_-s9?o4c*MP&!#I5;XJd>+$(Jc`gmq7bM)oC0pvgHm zvnGdlfQ3+N(d`StDO8{WG{O-k_yn8)*+lFz+Z{ETjk2MOr?4JQW{wRjv7O4rA7 z@<5~fsLmW6jzaA?wf3}95yA~h@dVf=bkX*rScj?kSJ3<I;g=mu{esP9Q5)j-()ucpjoA^u%aqo$)Z(oAkz^!*3Ic zmpMC|QrUQ}!}5voG~Db2=*6p$GCLNpiO15l4YjF6W4xxW)?b{b=qUFHOj?)0Nd{($ zTH?o1qrAJGGVKToa*02YLU9v;CwYd$q+SYm9kz{E63lz^9F7p864A}w8D*t>jbysR z$yDMks2ZoF7`Ns+^e#;q9S=$Gn(%wh%2}>MJsR;2RB3MpZb$krK!J-oms;^$~PSt>t1nN8rkexl!lkyv_l}`43 zdeH>$P4u!PrO3Mr9KKL8ymZ}8ZxhgG?FZRkQ&X9Sxqa zt;;yB!~7_$8+kl(u|KrSfD^bG5pV)jtQqgPhvqz7Gn0!Iwr1mI0nG*#YmU?BFovL+ z$;BbIX5(f7%?4FD8lR2*oB1?FD;T;3%_kLyL9Hxk!MhO!El4)aDGo#t$o@p0ATHzb zgjBH(YTXABAfWS*QK_Ocf?R_+@G>UVmviR#3b}HI@#y7kz5e5r-UXnWuRI$77mMq##{3!1ld}C}$Iu zr+aDI##Kp22Y1t+A(~xqH2WMvK({P@!MhQ~FGyC3gP75&Qe|Fd*X;mEGSLHtvIAh= zaibv@MU$kIA~_vVYAMQ>A>%X)#&3x^8I>F&=j$}@MCde0#-cvU?xyM}&5GC8*2d{` zWA${VA|0;STCGXMSD`#NF?+??+)g;0s>X)?$w;WHeTTn}wi8xSXOW{~A-^UfTH zK1d=iDJ-9+Z6N<-U%q)KLcU2-LGO=c`)SDdWj@494oqA=gGy|HGWt>kWyZN(6`mu9 zuB>lUtS1rUV=L7|n(eT9G~!J8l%O(jGvq0SP?b_AkehU+%Y9IiK%D10(!Aq3gtKpw zlp!~1I$@Uzdt{D08gZeYqrlCG90jPxX8UAG^0c{yT$6}Pplm#wY~P#b_&kJ&RLK%k zP?aiFSD32Idy%S4B2p!15DTi3B;p!Vm3c2xl}SXZc=x>jxWXJLNyHCKRpz}&RVESV zN-nxZ1|(!0B;qDhm3c2xl}SXZ`g&sgeUt*KB#F4qRAt_aRAmw&SAB_Wwy*;wiMZQT zW!{TaWfGC9Km`taR;o7MZ>loyMXEB1+{hr`S{AqBy@U#`9_F2h$Y7GpYEHzG=~PW~ zsU*dNSfMIBLElBaA96 z3u;2)^E}*BOy<4FESN+y9rfxv$#hZ#SvQX5TDRsp94^f?hlcylT@YEunm!~lV- z(44~%heGIN=5g;YbPS0gbSx`7W)KY7E`L8R5{SJICwwO;vgYyw&zt| z*<*0+N3wVoMNE3!zmBlqCz#=QO}#}o7M54A3(Y%o9D0Yu)#;Bg;*jc94mCL8o6(iS zqzaR*hZh-BwskX7wna6&wxK@Rlx}QnX-L+`n;I~gsq62H2p*GQ%i!xm0AhS=nqtkO5rVN?|2J*b;#h~b$lzPrF- z3L_K$&Kliw*O{b9%@Tb8Rh}~g_oJN|AS|bAZ~91OuhOy9Cldb)wNnh!^<)qy?C7vY zQNpRz@Acc_P^W@Il*|t})xTTNsXiHsjGCeh z$;xG@=bU&64(Q8wR-H1-yawi9m8z|0N6BvT~Q{pDNFZKlC%@Gto0!1}UX=taryjWYzuFyJR zSjOf5sN$CS<<+u`Popty^XbGf#cZ?6uwfII*Uy8ys(`lwWpk2mg(`>bkg%wL1aDO0 zRiqt!Azq@07nh@k5#e(57$XHa&EfVGXq$p7JG-!r#Ti6qc>02QDXLHBZv*KQcSqFf zdr+%8L2+*c#r>e@g3S^2p8CX*_1;PoJ&+Pn@0qety*CL&A0$Q8dnSym_g<>l2pJLe zo~eq~dxuJFE@oGOde73h-XCAwGQU1Y)O%%{PbW?&W?M+TXDM9oPXc#Dy=SV>dT*qN zQz0Ru-YaW^bxPKIJ5g*YE+<%5EIGPfoI!HLPa;bF11R-pg5qZp6c2&oEZEXI_}I~3 zy?jk*by*x4J%TLa9O!Hry3X**wQEtux~)AQdWX=f)`o{v#pqtO$s{g-#(jpK(*hND zkD}Q%nZ-rJ%yVcpFP>|z{g(_o*M4Ppg2G_(?X!!^hM8|GgcQ#&N0uw0YY6SHE+T<| z6Wt!#4B~3&8^ZWWvwJ-cuR9Svns9i;wZqmL3}%DTs$<*_NUL}_B7*%K5$uPccr=3I zaZua<%Ol$UY<*p1+i#_bn;<2k?PtpH@Fe^ECV}`7Bt^9SOc)YyWG~iB6}Ll1MBC3) zW)!e0lkW37RN}5;c7+B7!!oY@_Y}9xucww}exG02=F^G$i`iyXT*D@=p$~vNqU~p0 zfvPC`{6>m+2ofUNer0WV+ixd|pBI-CtS++cS8{Z{c%0CK_M0j z;-mwU=`EhVfv;k!?x3}Y()847eA%0>#pzhZ7#*Vt*nHV?&>xUW51c=+Y`!dA96X`Ddy8^AwCOU)t5Rw2$A9)l7n4)Zo;T)%dQrm+0upOhi|7nKBPp;sCxB`M#@~!B|oE4Di`^()!j#}i(#|vVA#mxG4Z}puEt{57OjZ*jy*)Y zMK;h$#eCS+YRXfCGGU4|fiBsE9Y~guI>L4{cPE{2oRxI!skudsbhm)q!TEl}k`3*2U3Yq`qTT5hzjBN(Kwbz;EEpszKV^0ihv z7+;qzr^>0ropSbpwzKJyon4N4h+san(x;`3leJn)8?VBS_!quXV+PL%hN*%0sL52O zwOk^Tp?=(fbZ8z9FAOw~FCbX+0r|2;pflBTo%Ci@pBK3DBlduSv3JR_Dj_R#rMp5fTRw@(#8`9$m6Crz3oxN8VhWuh_83RQ4dW%9w$C0ph_m>GzcW+jYZn1bkCBP}ai zPM@r#1J(LH7g3v*FWG?il;905Vw$aU7Ul2&QfHC`%mPUpk*L1HuyTBeonyMRbG#^+ z;|KC(<(O)!fQ4BRBw2s4XqBfLCn zrs?uAYArL2$EZnE9u1O|?!HW>-otA7+*Jc_)E8B)4L;H2`}+`a67_;*HU5-$TkJzW zz52RXEcH|HjW463dZlfZ^4BDp6S`!7A&LaK(eIW4Fwi-0TXHRRjxBYr;U7(+T&NWj zNlL~Au|j5M5b>a7#c@4Gzsr7X`Q4V%w)d`NRTm8)s`|UD`ZK92Tz9AWC+4B579X~_ zcFB@zIsuZDq86^U%Mo3&Us|{a8=WYlz^Ik}fJD4au}R(@i;t<$JMCU<5TX4d_OltN z4pX+M7KAR@7PP4+H*?_Q$UJJL7s4sFep9BH1=z2nTH;jse6+-wvLC8b1Ntacg<%zi zkKpg#c)6h#Z z>JbbDW1QwuF-|KnW1J>YSu{yb@v9{ljxGK*7l?xW3#S=7!Y&6H#1ocYa|8k|Ki zptq!o(>Y{NkrJeZ%#x2;Yo+Rok&I4NCCEtCC1_jY{93!1(Iw}4GG!u=Yt^ZXU_d`4 zWbo(|E6uL*tM!=?O_QjSZ;uyMQij7x=BYdhihpP(=L1GpoRfmk!VxA1PP)@Bm$_^8BX@?2ld8+(GFsLvQ)aR5R z&8{Mb)@McxO`>vZlBl_x-1=b0mnW`S6Vt{1l7BBs5P|MgxXRIB; zut0|>zhAB?RUtDBwhP&FMGM)W`sK$eZ>tuRF4^1Y^9B3m*swU9i3zPjHECJ}J%R{l zMKDxpXHn(QBx-_F%OsK^_3EQ5N1ItWV*OQLPW5*08K;*WlT|dvP92A;(nUS_Dn+-N zUM8r@rd1++mJr>3o{;S`di!6ns}o(aw~yhX8l5OU*`8dx{mkjod**>YjjCZ03`6V5 zX(6f@XsxOzr&CoqG*Wd>&I&1JAoGVCUsM@W!wtIRjLE346IB<$NYvdXDp%SJ6)p^- zVza5@trPV8nrg{o_QR%2wgyw5JiRyMd220jf{Z#^;6xJ0Ycj)~x7Ko1Wzurd@N#)@ zmR%wkq@Q(Sz)B?66b`da=ShpIv@<+k8|Dl-A{Z7CgSXzJY1AX8OMWb%DK=p~l0GVH z4(a0d6Q)ZRHOvWIElpJcEzKKII*m#M15e;uO}#OrqB$V@1|AsEvdDPL>!$YZTW#4K#96~9J7a1;Up|fR) z(L(3R;i66rsH9YH-nUq!4Q8vgN)Pi@wvsAas{2BhoGlC(tx1#>Uvl#l6wWQKIYXm` ztKPj9PE9F>F*-G%8V#*ln6_eQP@D6FQYtH|mqVAF6&jY2GMzYCdfG@d!l|}M#ax3( zJn8iiLl**t?^qR1)5;npi!Rxk36wjIe$SJ@Ko{2-5NK`{<1{zLILeDo42VVmbmtGE z-KGp(ZyQRNY$$c9FauDqGweJ9Eo%qqWi2aYD6NWL1Oq)YZ!D}yRBp9QB1!o(XS%AW z7+?_Def#i+IAd1=x?~q1GPSMJiAuDQXm`nn+&=0~;m*=ox>LA|E+NBhAGO>iw%pxF zZg~3`!LS!+Und5vq{QG9y{1${fiOoEEKSbNgk|cnsGSLP$&W?vOb{cf3Rz2p5e(*@ zgc7eF)0Pev<|soYk?{oTHrQ2Tgz3> z)^ekr9l;=-trG)Q2A!?Rl(V(c!8p78P}(aP;_xlD!|9S8j*iRl#(`R(%8C}a%?{Uc zmBY2%Xop8INQdjhfR#aqYcl0pe3|JZTwkA{F)=CHAZQ;+ms($V_Y){jr9Y}`OH__5m2DCJ|Iebbr zf`R5>t(HoYsT^y$n5z9x>~qK~r>HR)U9wXO?{gS($kkfZz6Y%ZtAyLsm(X$-$eym2 zi<#H(o^Axg&fL@0i2*Aq(Ho0s616)+DtZQ=>HgxR40_m*uj#O_IZI|un zpc&we-5XNOU7e&4LL@SamsIuiX1jZtk@tvHdwTqxAZMzQqlQK2sFFi{ZR#yYCpvS( zJZmy$867NZ?g8gw!AYac9oz4>U|$D)v)Jp!hwl|}rsmF7)~d-Wy5w?>b%Vh#?rR}x zzE%sN$ta8vbZS5armBjW>nw|ES*j>%O;~?%%>Cx{5hF+7AMJ1oAKq$di)1y?(r8u8 zv^$`SQd7~nqSUZS8jPdPQ?6Fyb-H9%^FpAv(?y%4N{>MlGKEnvGCRII-!7PR$@;x{ z$;Z4YFx4}aXx>oKjo!;vy zS2J1>3_BXdL6az7X_+7?HlI5*<1bL2Qz3~i*>i|`+&ojfP*M1~tJL``aI zt!h$Rrv_~DC$)zf0Gvm5p~|%iKy=Bu_Vz&exmE!nf`PWJh6Mm8;AnQ0U#$;0(g8q| z1WbZU)Es89To3KRUu3(0E^QY$r8a^AL5xd^6GkE!sD&Do&oujvvPsegV(wG>Op_>| z86;@6bTLwO$Ve^b$>4;zQ+_VC;|*Qf@y2(aDnAhngDpRrU6miL&n!QhMCH~b2`)?w zt)P6{&MRHod38on5e!&+7{s!M=2mT`R)@vbwpBV&WztBrCfc2?;kr|+i_M4OL#7A@s;TtI zbYj3tvl?p>^~mXx-9;py(2%KmWmjLSw_lEb)Q~Bi?Ts2U`6HO`*kzwC*|JY_&Y}~Y zHu_)GimKO7_|bffR(04TmCKY>s(qwOwrXf26)i-KRJ0H^Qqida6~h{-Xjy9Xpf!b# zR3du}T8J8;Xd!BVqEiDZ)Br`N1~OA%fO5I=uxeQ7l09q>P_$STj0~cowl7Y9;R?Il z(IxAT9-u@p40eE`*;NhH`pf}}CQ-RHNw&53ex;pTy0mla^xh*F3Jy>-kLsmsCFTG{ zlc+43B-@(BtL!Y&rJY5m^Ay1_tO1IarLwM-djk}|x2pyy5e(R+q`O|4MEOd~1j#2m zK>4onoT|KZ$)1ZIphPej1C%z3zD0K3Xd!9?zSc@@AbOTMHDD83NVP4cNO>7r5A15? z0u_zul3froT2aq0f&nktaSQHLs0fBRgY2qn_W82Mpbaz!w3;N42O=5l@TO>|{Cl>W z=+btR(yS&UR2GE#@yfH(t`YwdVLmv+4ItGpVZ zL@=PmqdA|T@0|uqv#VKetq&Wubi~jkDz_%dwhd6Ov-3)qc3zzUN(93o2Pm3bwUt_( z9H8h#l}RJ9@Bl@3fz<%T;IjuPR}>wfI3o-$8}^GBKTsZ1OFDGP9z$SRArZqn_FS`!YV$!CzY(OT1T&_%7u_bCYJ50>P>ahpS~(Os-QcEwT`fbitFtX zbffZzT&RdnEZWiqtBq4lZ&Hd?LqeDQAcoeH*FscJUJFq@d7Ti&M zL5nWgD7*8k#j1jC5Eb>x&>Fv6Y!}g`=b}JcrW(Hp24idgAliQ|M2%XtR$4Yh;MS?i zr$(yw=_lI$|HytIbjdF8+JC<}S1yQP@D}2o-ev@YY6*w-z_cvYENW}L=>uPRz}f(V zIYXdjsv@an5{cJ)_+)#Xw_Pb}L@E;z4CrI4Y4JgnIxR%aylAaE z$x^3N12$3Wf27piW|um;v`d}if(Qmg8m_5MpCf_+Q{Kh46+4ks%Tlh>*1|cg+$nVt z3`>YX_gFNEDs@^Wk?2xKu|Pi+6$nitBT~4jpKzGG-42s`|X!wQpHmWq1XS}#oc%2kAkU@*g^ zCQ$`e%lyxU$vf>ZNtZ>!WCX*|!lV|W>blmd!lX`BVbVzbkCeK*>{3UUcBym1WCVj3 zCY@nw1Ot_np@&H=YbQBU*VZo9VbUpe5e$18VN#Q*Qm17Si4i9CQ&EA?B%&~>BZZs# z35UtM?J!A~c9?XYRs;j4QU>3yYawcWL~F(52W4KTsxWD!>H<5YzRl2jYd=;FQA0tx zWQSmPAGe#1Ln0V3Rm=?jXj{dt2nOuHQy!F?xDG1vN}Tb^pBAYW1GLd90O-^}mW+N< z!TE-v`R^X(Keg0Hm+U_@qv8IGV4$hCp#M~(6TyIn!ruZndTlQ5y?qzhq+`4@re&!& zb+onAKu|fwXNH8k9F43ww8${bYv30NVw-Qa4>~C*n#Bb!4`yv<$ zt`%q=HDRumm}>=^BwzJ%^{wzNX_`k()M+J%RJw<+NmLdMlETwOp0w(m|JOD76t3P<5gTs79g@P_-SZoEk($-8i)7>>=Bybm{q&n=^k5uUhvA zhM}#tX(4JXq_uJnw{4Y9RS&^P)%_#uC2%ts7){^9_Cugc<00ro^$?6i;~{7})I%_c zqF*33O2H$_0M#v_OE!RJ@u(E&L?zouv;tA#cdebbV|CzA{Z1V?u=9eS=BN^Vz=wL8 z5e(=$ame%!_0g0n0vZO}5%AWc5pYn4`aG(fr(SlaOLiWLS#U?ya1Zs-DwMOd3eQ>2 zVHFV!=73z2sPhK2Od|P&b~d%E$c>XZ{lHBxc2xECq!L;BRA=%NI_T#y^#oK2rAvMS zom_mQ6N|>DqGA4VrC3#ex@5&e3-elt3c*^43iCQOpkgp#-ao467s^hhf-c!k5<>M` zC#nErBpLxmo1t865EXj`**&V~m-geLOSWeCNA+ldYFb4L+~%Wtv|LrQwOlO5a*T3b z_KskXe%6TrE0I{_pbBS3S&LFf^=QMqqk5dCFoFTW(>tn1)2K(Rg@UHYTjuWZAy3$k zm@fGdd#^ngZ26tGLQ7M1KuhxmR!;bfV4yB}aQx|?{;YXams~4BMe|&wX_Sjhnx+0W z%FyFqgR#UpeB@WkW$L&bx@4DOS!eLGIa-L?jID+6vPIh}of=SqUAg)s_F~gH!EE>k z$EardNtF%Nm7q(`1{MTWHa=@^aSFA{Q-|>A)PS~OAHwsLvR*ZcbjjA! zxQqg&PE?Z+MxqfYwM8nL8bm`sgy(5xjgm!|Yz^LJAH;5T&8?!B=BDUHdC`dh(Fkqs z06O@P{IaWtz|Yu*(j^;8?O@SqU|*IhKw6eMgh$KrRzCb$l)?<=SX#?exz#d>#5jaU z*A7*=4Wj5iwBN)&YnOYvWEUXhw5`&KO0*e*|e&Ks2->mLai&78FXqu1=`+_ zjX+Uz8P6+2l@7XOL*-nCPE;YlNHl`CwnO>YAS&7g+EPicO_;|OzF` zfR?M8QY|-nAP~Voo}|*Q69ZNvai{|UElLdpv|-T$fd~d`AfRc~Bi2Gev(3HSm((Ly zT~NB@M?SP(t`?$txmt+o2W?1{Z%8%mdK=&*WXT9)dGX<5-du?PmUC#FeMZnaFiC#IjEDu4!&-4ly`Y^rPc zJLL^EJfKVVhMd>biAsx+Xm`qnHdfVr3bg@5_bI%+GtO8wf&tqe0`r=hQgx2P3?7=T zCoA`;6AI~)-7|_*b1%<1p)i7h0=DdzdzKAV+gS5EpmfECM;=Z%q=%qo%a7q{*=Pds z2r|DhPlybsMeN*`muj_CIl|T!c(pt@$rVmc6*$wTlkB`8$vDkW6UkDn)geX{>p%QE z_*lxU$5JLAi+A?e&>n-5CF4??l7;xrH6d7QiGaThYm=j=Y34N4K5V}zmeYyz0tK+# z%4xaGDLQ}rdiKzAs$|LLu}#Usly!JcL&<56k(JX>`>+wISWchvJ~FGST7{L<3Yk+p zhhgMY$&%5(P07McRCrE9$+=hNf54Wc7@q{zGSNdWmeU({3p~?tmZWjp5LEJGI#Zn) z+GS$}3ngDwMkU|N{X>BdRJMhZW9!d0#TF%1E?kigj-1}Ql@nV+$*JQ>u_e?#B$+i% z5vkas)S=^Qoj&J(EOT4Fve!02K0w*4qbtrE;%0E!j~{*LK?((H?%bX9kWzMMv_iQQ ztrg-ZeJ;<=6IJ%vob=nB$iH4Fl^AioVkCOBj7@c1^8LL%+An0I@ zm%|7U%7W!qUJlTCae{s*d7Eo+t0fNvL4!-@;E)CS0+I9jA|L8(oIw@e{(-qeRZ+60o@}cC^USPVIw_KJir_=rPuEE7(5qqfkPe+rYhc zpTKqr2)5PNlPq6P3i#UTJA{%`n1Zi^BPgF)g&f5!KO@tobYXw2&Sj`{5NvBMCtJCk z9LS~97Yrp2*@NfrdTCQEa<+@ExXhv{*Le$-34(3S+Y~ErQv!K&dJ3WBJZ^HIpwFzH zpkh|Nd!@_ROW77G{S(+M+O~t0%N+u_bOu?Ws0s6=d!zR zWoSJ4Tj$%Cy>uS)pyZbb>b+^y{c9HKF7f(T1(upQPxz*wFkq!}8;dfFJ$VO8GIA+<0+^`#_@) z>R+L|K$Io*?dM_HrOKqT%Ud3BB9*esCZ|Y6i*#+FHY1AZy(89{3qy+7PB5D(-KnNm zW=eN@W7i1?0RNAWwb!)QT05#Er#2UK)+%kO4Iv4z zyn3ImGojpWE2B^1c3T2dS}YITSqR2!Bn^V*;o(fAE{+O}1Zku;Ut*+@ zI!k=3cW&8!naL^+-4;8yY(feMn}h)yjv#ro!zOdOVs8IWYFsgQ*rpKD9kwZQYj_Pd zC1IJDdmUkkSW&covnH$=4U`?mo2$!od##=^uOn3(MCS&gH-Pi^GMB) z4RMtXw&5IHqEr+q2{Dt}yhZ54n_p}apP#rPd}NdL;g@5BzncWf^t zN=OK{^u^W1kz()4(W~flGx`{FPVPx~1i2?1)vor}aa8eL*LZ|LYEeat-ALQ)1_eEW z)YSDDJ=gn`h>V?;FcQk*cVig*u3^yo9z!Ng?vvVFG%znYu;{4mvd+JBzm9#mehy{& zV=7pDn%&~1Nl1$~1Q@q?RpFi0;;l7Ww=0%}pZYiM*L~mc#EZZ08=eqnGOu9A>uY}g znN5iX-=Eo(y!n}M1bnA4 zcg{oH?mCZzF_PL`M2eo_P|=DV-Nn*bb1k)@}05MaHnmoY{p#Pm55WDFs$12I>I1*r^1iWchaq0f6Amqg5(k4 zaCoa#E*E0R|6`AQcA@ddF0yydO_mB14I*A0HsKybV9ce9-tC>eT)?8(VOnH37f-`A z945k|P$evH+b0fFYV&l{ul_!ebO?*;JBLO!u-XGLKgmj{OYKw=YBQkfsZ3ZNsm+(` zu}YmEK844MEx4r|OIpmarKK+kr$pdr#6SL2MjNDe)4G!BV&G)#8Irci<_^|r_MJa=u?{u zkI?34Zgc({Qh#c5==xqCzNX1`8QBxLKXIccycHZh-dwEy+EW`cpZL7*iw*R%m^z)h zGzls2@`x>Xa5!6OF_)@VJH6et^5_RKdGrH2LPF+q$)nKQPY_g?2|^NVKzXU)<-Vkj zx1a6F;|L4kFA=%GCd5V9WWhJKKa6pc9~vsWjS-RrrAlgZ7-(sC?g_NBGcVUTmWXL5 zAXA}BgQNhTAL0Kfw#pyXtTNQXxXRS#bs`HA$__hI5$9MEs^wOh3LOn*H>haj(4dNd zjYWVB%$YxSHKiZcH5k6=q;3dhOwASI_G>Ks;09n23kQITV0|Wu`Wtp9x41q&$vD6*(1rL`9C3bE$R0)iTsXOcJ3} z3UXvA%0Z`kOk?(`>Fe0-E)x^%h6I6#J3JLKFMGOHe9aSW35>6uC9NG~MM(X@xpW<5_)4JH1M}~`&7D*XggQ(J%$94=C3z^}u zk+{XOBzAU|*x8}dP)o5jFt;aI4S`XKATV+8)^ibuN12?K5a=2r1Yw1FdL0{ZZ#bkhn3a3ax~w~Eb>pSBS-i(z8j5~lPNhFlw|(4c zpV}i5q)@x1H~*-{JwyQ1r8y)*EhA?+bqvUNP&+>nDeSGH|Nr@cMz-GcLs(U{lSt4N zHHaVC@uLPI+)PyrUxdqPF4V)q;o^?%|M#0%uXsW5rO&v|0U+hzSi$xFh{y}z*6S}mR!?C_S z3>u(u*BU!At#)L-0!S*O7UohXY{u;nwj4)6R*g$NwXLwN1-aA-mFg8|-~~v+rJmZ{ z;v7=vcRk{E2$-=roT8`=^^p{B8y@Clj7Y)&;AlL+98H|?v&y7|0YESe#32|QY&!<^ z@EUI(kK0K_Lo9BGElBemb3t)C+Y=T*TkJHn*=hK)Ti2pmgCVuK$cTCdS$O=YvJe85 zMh-Z4%nrMeuGtMzI1;myIya-`dY@+Z!crZj_RlfpdMf6H-61K_vugjf`fyrUONZ?P zmH!Ug2i)M!BdjHE7|u%G36-nUhNmIeX~Vm_!0idWGqt(M{&nm4i9}0C_>|oqwa{jr zUE=T&Ik%Y*CUV5+R2h_TAg4B$eXFtV*pB-fPBp&2e>$g^{c85N+YrpKrEWv;E%V#o zq*G>AG$uB=CwA6*Y!3eVC){KT%GBndi9}RH=;LJGm+%d3t_LR? zAe-7;EH0Dsv#U-CwnJ!49OYbn!H2}%SZee5JyGiX?4GFJr-&DWdqz>q`Ji`-(|dlK za*u5a0pDYr;`6=2g_6IfHs{52Iwi6Pk0A$;qvqIaDoE9m{_j5*_b4cq$CdIq0%M`l zB7ryX!<%aG0*!h3=eU}`M8OWFI|JtTz zHzs7L4e^|X=rP&))*pT03lA2v!^==~V+e0sqabZz$6$7#FK;hl=Z6Nz@KiM(zs_az z@;){S*;>h=#)pan4`m0l+wg68sDH=6(8%y(=te+8BaQZa_9LTcviydC{}~<{>R+A$ zVnyV)`^F1}9S!o1c6O;eq&=9`k{ydZkiqeR(d9b9U-S)*{W4e){<}d2h_`Ia4i6Ux z3k~h9;qOl^$7|kW=qR8Xw-v`4nit!A?;n!&;3L*0*L9;oL$PsNW3Y1bmf+XHSmUaV zVS)tp0LG| zP4Q!-wv{Nc1vz^Nm9A#ap#H67YIAs|agtN#C!eBqso01+#^KOt&TaY6YPThxFv6+@ z*H|Bou(%C`<+fpa!Z=KA4iOn!Y3lq$(9Y#;{I|6$y)8z7%-p}m$ZW#mN(rm}N>iKH zt~7OiSF_T|+Lbc1p47o4eUbn3KWd4ZVT8?<6E>U*roSd?hNU)_tMdh&HbQMMX~#*3 z-l$4+!UdSx9F9kvw$%B_r|4;8qc}draXA+a{-3ow!=eC$#5x4xw9}oLRmV-ZVhD>n zL0I)^FtvFt4W`cTYH08VsXZ2D_sqBFN|{U#FUz&8l(4u`!m7X0)aJD-O`V^tH0H?o zH&RY=R!7EF#S<_wlr|#MKE+0?xt`yy=HhiYr5uokG6(dv7!s#6wfQp4Z$YP&Q0aNU z<^)@u($x7$Jib%O*?{&4hmr=h2-aJ&YdCBifI0IVU^NC%j*}2=smmny8|c+Faa6^n^qW5ZwH`)I4@$qzy-rgn=+^I~B690=HRgKzlmOQjWX% z>!XtQE#EZ-g#I$-=3>DhaDL(l;U{k#N-$Nz8Otpvj}3dpdDwNTPWpYDJ*$&4+gF%y z?Gd|PJd6YKCYl3!XH|lSr8XBKy&xV&sLbr-Bw7JAUDHTy-lbcdIzN2!RK^CpSL0C9 zpccW`%ELIoYU2t42D@-=93i^4RG8A>Iq$to zuclWkBoa|OOk3p*6Vp~BS4Oed?qV`8R0Rlw9!$c}6|Y;D3SYdNj741N<}iDZo_A&s zde3{pAWChH`;B?47m2`PLS_&pC*oD$O|`YKQ=5wlO!dM?i>EehLPJOQsY^lwcki)a z`e(WxQOtb4`Y29qP882cj_gbH;z`J5H=&l+Wl<ge;p!07u-!nxCe} zlq%X=OsVqm384-|QcP`bL2IeWS@;x-m6`o6KH{wZ_?iA!uQPxy=rl z7(F3#>1p$$v}MK(sI)CJZt!&sr<^xIX{pUc2U~d73PICo=1g2f@AgnPCe5cdhtVuo z%BiyygWBP6F7NkB+4QJSm{FWmT$nQ?*21f?YN&Ts1p zm63)I%B?D)%5hck=6|8I$xre5;ZsDF zOU2114Ccv~E#gEcE#~6owdf1UndoB@7!?I3fe8s-eO(%YpwuD=C}YA%Q^AWSN0U36 zMI1?6Bk>VdJpGR#iHopFJSJy8woU0zN5@7GSrX4NX08v%Vam}hn7R`7TX(q20wOZC zxd=8R>|~BeVk-!N1>-rO7*z8kU4r?6kuJfAp{4T<4aE4oX} z3lyGOewYv^?95azjwPvHZk4If(I8SxpV}iW?+A=Jl#SAtH2f`5%%VMJaJPr+SCymo zoYpQeVPy~;bDs!KRM7?977;3S8A7eE%cM3JU1r_7)cIY7np3;*gxN{J3<2j9B}`s< zQbOHIZ7zyX9aUvMB4>NO$*~v&CntoblS@?S;pF1Yo5RV?k6RNOulhK6hZ{WPBa|7b z&F_xsG^z8u2N0FW{s&wYT#q*eI0}pYao+d4c_*YyYIAXkElA1`>SmKNoCFxZ?Oa02 zq&6=`DL=lP*r)h@<5NV9B;YuC_hKGijbsZlCeBn^BssLE=X`ndcy2U5(l_j%(`rcJ zq5rPI*}5c;ju^iRvk12zLjG~R7!G#g9XmUTx)rseQz3(OrLlJPyJ+Y5w8)`2f_R-A zYfptP4Qk)GpWor?jG==Ge%@mr5-G)3YV&Vm7XIX54`R1pVNG@Rr3%TR;A;g}O$Ccj zv%5^`aH2~s1Q-vqxK1SiyJK>m*@+_OYh7wu3*{Q@Z4N-cBL}GOcT8>W{f@vX8&HxG z9vaNc9XE$kusu9pB#_kXMM2ZGsRIPZMKG;#!RkQW9L#iCo7&vefzIl21kKx*@ARtE@;>Hr6?uMVU(kE;Wz^ScUlpjM~TlOJX31Wb|1 zsXpMiW$09#AIm1xpP5J})D3{D)SD3Lsm=dd*>39mVxQt$j874f&fakn{Uzq%MLJth zq;sayBI;S$e#2s))|9k?LIy)Yx!m|LeL~C4-VjxOHu=p?47^|`@qa{jD-|*rFnB3H zaUtxFPciwFu-_8K4OudgN|r3=MumKMSHyM{Y~gTm!M5)D+!Zm~kwM%{T$cFF>m}GY z0NrLBz~99uZUj=BOAdk4gxG+31mU56z6LfYy?Na7Rk|Gkey4Y)FKJB zzMY%eT%?!J+K$gpKFu?_IAKb1OmdAdRlJU!o7(&jCfGO{4=5*BU$CV%zh=QkXcTN5 zyuM&dZ5|hFsq?!Yf{lPF*f`Y%3pPTfU?bG}f-SYVNw3uT#XiNi7@s17jlJU}8WU`6 z5oZPq6l{0L1l!$LC)n7Df{mSO1zRd)6Kwp%g|Pqp1shp%qp2ih$q22h6>Mxr!4?h| z7i`z5Sm?bmi;cPP!m+QHVB-L^*f;=?XRItC*ixHEEjBhF&m}x*P%~lhV6~=d_0NR9 zL4Yh4N`On;wt&mC0gHu(4gRpAbfs+!iH1;(N>NIv^+joFbCH+p z)}_u*J}p#~5-|A`r&!-cOl|%L6QvxDe3p}|FG^FJU$ZDBG>TFVUSE`^Hjj(a)cIWx zQA)rRrJU-5MJb_DloD!vQJUJ^xjBvT=H_&L38lL~rHM=04i#cBj>EOvCw z^|2RM8(wKIt~R`0PkWIA&|c&K_3g#f=23f*4QMYCo;0{tu}XlgrtJ`5TVxm6U`cI* zKde|?6C?OFA;Djp>y_XrRtavwVwF&N0tmIfSWRs%vUAxrRPXwr(?K4@rV z7}0|st@B99XjtG?@Y>kUuC*!DzY0!m?yrL1Ui3#_04J_<70kXA$s7v%0k)nBR`zn< zSCK!9t>TemKCe)4Id@{oYZY&gaG@-Vge zA50!{G%`z0uD(1>ZGO%2kkBX(Ie2|}nA$up4^!uN74mR?H;5dC!jbc?ADNWed?SwJ zf+CX$m61uD#LodW{Teg1c`-`)@#Vxm#mNJoBC?c#K5Cd3*VZ3t|8HdwVIXnCL}WC7i$J8k6lPKf~eT-rnm| zJp3WUCyUlRWcY-JF%S8f;&GVYvDy$5I2+~?psCG)#zg&tF!z*Q=yB!<;&FC&qp2{_ zAeIoBs8>Veaibz&V~S38PX9rzMV+STY&0ZM72Ie@x@}$?l~yllemnISv7P#hnw?5y z38yxPPBP0*u?w?=Il`Ysb}AL7G>9>kS{HvJw|tYWgnVR^tpr*L6as$YX%9cegBEHd zv}bj)Y0=rJLyNmfMUK1qeXK&+Sncc+7ZmJH-plTyTFg0yT#GE|s+>drzbar+;&|~*_PNT+j4EE?77gM`Cm{Qd;3KA_e-7l zdwyr`5t|ZoaUZcM`CQ!a%rVX1C#EOnNm zPcntf9unA;?Het+hXfk7|A!v|c{OLF^wrH{L&IxPhB!OcH#8W}_IlJ%N7Lg`L!I!7 z8}CB(F-(IEXg!7vTxpYVrsM`;lR53G+vVv-J&z3W{JG7BkbZ8nLFKt?NiroYmd+-u zueq&AT%o2mhwy-nGe2S^AZk(^7sisE{sb|mHkXT3AL_;yaimC#sU|r>LrB^))28J=|$hK7mn)acs|d!#s&PRzACv#j-nCET}ORvT$Fg$fT}A z8qC`b@RuZJ^EE3#;-2jA2Hvpm5cLSt0H#b1){H})^fPg8hImP;J zfYj!)fq#$$C5}crkCUtK21so#Y@3st-w`D=x&b(NeK$aA^SB!zb$(aj2AK0i6EIC> zPIV0yz93VcP#-jbN~r4rHQkg?ZT?rv7gFaJ`xM_|e2SRz>>Vf3Utk`dO|u2rG-oO; zVp{jCI&dN)`LB$@PzC=hV=!}>^6W$b#7?!Qd@5vEb6}wS#D%awKE;*$T6#z*;M5bT zzf(_yxTrPd*^atv%5ZZ&lJP~u64k#idO0Rq6ug{f6>1b)`?r6_!3I|IzCd&6#7O0=#Y$c{J_+q6O~H`|7qtl z`j$qybZaI*)ZdTyDl(&EC*FLD6dLFNFSeL*73o6gQR@rqdkSPfWTdTb8(KJ>Z7`A2Y zf2Mly)Z~>nrVhR~dEr=P*Tu?-b5r|HRS)m+7{jb5FFikbc5mhRy_1)&0F7?-=vv)- zqWZ?M>iGlJS5F2Thla=d@dV0djQCJ?80z;(F{r%tQDxUIOo}sib9O-7^n%K}?^jOk zpFDd$cxdI;%-RjB)<3d(&E|~YCHQgB(uK{fp2YVL6;(k?XXW@SQy;&#WN^H{U$#=- zN147-t{i%^y619b;*{XQBSoQLzB9Y`V?E1Sg6X$Dn0oj8O!>9xlPAliuV?y3f%FjF zrSDhY*;zee*bA_@%7OPPhd;pHRSrx{o;_YJedFgNePhM7#5$K;F8x=ry)Xipy6{r< z&BNRd8)G0l+&K2s7}hj-{`}M@7b^QtPM^Fmefg!z?(>-7)CVtC&hN)A&pi8q;k;(Y zJ?&1vcr57c>xY#idmLb!1cMuf28;N2*?r0njpMPFyMt!HuI&GiQ;GFE4t!PLcnkFH zb_Q!q+tKn?Jenh<7+aj~vTd>LPxaNKl~d1o5;f|Zd3tYU-}Axde0FeCadfgM?He2sG>sJdm3J%-rcb;zb>bBV!f*@14$`^DL=EZcWcSXzzCReq z$xA!I%}atyz{~)< zT)O#z;+TNbgSASwv|PH&NInY3B2!sZTFYy>+5eItLaSED0*5UBEJq*UZkHI-NUG0B#=d?d^N2T>4(+z`m)AJFT;U zwNc3DJY~59w7NJ9zS$5zJ&rj}UVdZxcQ4Djb{(_LDwl4t(QEn(hg9CkrMSHh8Lh!W z|0pt7j*Q?{qH?L-ut^F&cxvjxbJf!Bncq%$=3_etb`*g9Ouz7qV&b+aETGnb>mon$ z_?-n}XM0_Un~MDo;)4cp>d@KB$#W+3u(@@oDV%iEn)R8DE4MtDS-)mObcnANR{l!NR#}5)9L>$hYY_9&-5asy8poBQ%8ia`%xe0|Ym?^>OmbS z$m(J*9{MVjOLtRt2x@ZUySA(u*`1*{qx7$^>o zJv=@}_-hC68}BWb9)u7IqHqr!o;v-u2ZY|BR6VI51-+OZ9@p9i62+nfy}Qm-Kl?zK z)jn{OZ$<`rpnoWr?dKSOojL}oV*jfUp_LP_PoCRjgF$TwwrO|c&J~>ccTf8<(P-wq zm#gJ-B9`v@$zA2rwWT@!}S|62`IrZR*(ij+lba437X$PX(a<%K5V3a7aM} zm3K~6U)`rulBL!TYlJJ$k;TANk6x@?+`l}y>xYYkpc_~9<5el&>T_;sqhZbE=I?5I3^;*hI%u71H(fj zcq=ZX6*)qbZlY^|Ua+adqmF(6zjE@Tu)mV(QpXP%JC$vGFbhKL?-wj83HGVG^WZIC zfSAUAO83l8j!EPKt(6m{>cP{t&)}7r_0URJ4i-$PZHDq%E_FeUO<%fX{1lRNJQq~X zoiX_aQtX%py{84D!28UR6M+7o6p%0WxJ3%0(cpC?uzVvZ*@7tn(I7V&cGPUPi^~4L6 zcb}U&@O+Sge%Lpb$uvGO{QHZqJGs)79UW_md?mrn(%oXbI0 zlGs$t<{!)E`qhe35FgXfg^6(4l(WD=nV@EL=yJ8RXXfzEsVf(zPyR;8Oj!@!ZOjN4 zSsviv24bZ-jcV%9>FT~?*4tA(h<57l&kIk4+5CDLU<7~fJpwudf{6wsI5_b@0LLV4)w{^M=aXZ&ogz zpZ?v8m7N!jQNSDz8kVeB8Z5*A{}}&Y9LqN@2FsYb@P2jAmEfVir}_p1(X=kV5^NdC z4vq>HnwkM3s2QTsjnrgY8y#=@V?o1H!IBk0%hF&6h74LcV7c_w47R_2Mm8w`&e;wEb~ORf4m5P$jCU{BE5aZ{sQ=V_soZ->61?f zkIF|7fqcZS?+H4gAAJaAx_aVwn7{@hfF(gk020Gj+3-<})t>Fib#!%Ra~*}&mc03c zZjc98`!k~EluIy1@Q3O=BK`t6uB^&qW4UyLepA^F3|m7eZFqk)+Ui?jtHyqX49C}F zLy*z-1@EiMpRqph{ybL9Kdx@FY#}>5*7pRcVm;@0^!JTo6HPql8&{%DUv7L1PM=TStnPf@bGcys`bQrM)^6hO z=D3+W`>ANr+lpff-1M^Ek)eUi;7|cr{GVhfdDInF7HHB&F~G1xjlmhmwkKkj1*_on zYmnKl@H1&>Y;0V-cscA2SwLg9|H@co;NTgNLD_gMisz4fvZKcs&E6pX2ZeD6?3xEooEc>5NQS z=Xyu)(8!b75jfS&?9+oK%nIkKbLMR)OZV&q-j%Qd<>tlY4Ao=E*>;Lugw4HD;0PT zRZdJ_IX-#e9np_+8KPMJA;yj?R%r*qMo$*WL{p8v|7cOPCGRM!Gs*y^Kqn%DGP~ zyLaMt!w_FNd7<*g&g$`Z;H-8ODN0j(GUcs3*eyRJgNJz;Qi4XMaz7}n6$sYKyRT1P zdd-X>oF!ZIO^g z@Jf9&b?8;hE?Bi3+Zo+EhYapphL;s~CmKEazrT3MTg>!*?mJ=_axh>{j1)(Q`k%0^ z9W8JDwW3ofN>mWH)5azpb|*$h@=ZB$ba*oLd{P)ygn!}$$_-TXEMd9gTx@LetKH*0 zHI*ahg-=C~8hXd)taj*X975Y;`0v01w&3u{Z!3bob>II^j~Twf+d2$~YwcH?C z8|{OmiIzIF(0>CDEk>8i==Yz70XOx+nd;7`LB_n8HSdx7n4mzLztIzkK*tfV$OMhM zfT))voBIcr3 zI%+cPa~JzaVxwnv3dy<&`F4)%vx9>};Dh3gQV$3K z?mL1V7eajVMI2%XFOiG*Qwh{V#Ib+`oPN3tUBw!6-f+q)FXDB8Dt&G=>~#dQbUeEd z0yXaJA`6^D26ej+4vSmAa_K9$qAZZQ%BBAro>`lhIl+B%kI7)O9uSG~fIEQ7H+4t# zwHr~)ymkPGj_ZSLS@htRM)i!stQ{Izgvo>P>4^pnPM+Nf>mnMPfZ^o#^Ds8{`Y8eV z)x$d>$IxD4hVE*-E0{d@q6oIvpF>m)*ec+f|DVj_w#e!-xgBz=jqAGd)<1@(YhOTDG+D{BR)uzEsM8rgHEduc`ED>@CG=I}frXhW>CSezhz@Tk4{rLxm#mWIF zgL`p3ji4sC-#VlS;>eKJUoOca>ur#+7sKlt-%&+3&_@j28tEYzlKa&1*7G5LK(XpK zP7nmV_!35e15!O%p1%C7?x|ylvrx%rAHX}b99(Pf^s|>lhW$zzRO6N%LEk97$e6~j z^g;%|81#R?vyA`SvhmSi>f+0|5RtaP_oS%%@P+*08DBuzH<8StLL9}Dmm`d1tEy2cm&rVo$XtK zsq?tMszEcts`h#SaJEfeI%rqe4h;06ehmyFgWP&Ax6_d}nF|yy<#a-08Z=>lPF{Jd z`t(VfMrYrZBWNKN$6ua0cnnLgp-+MK{HIeNK8GK~=Uby54NY3}nN3V*neAmR(dGR)Ls^yb7^b)!R=bvtZI}V;rfXk}K(VZo1 zF+7q&M~NJDA~w{ybMgm+Nz3C;WAxGgm&Ix1-OG?(u3J!&Mb5T^Q`4a>O2 z6;WbZ1J(!0P(5k*uzx_kP>sZ?qpm=2Ub^sr>7k+c z_=>~fklaV!Gdl)h0&ScFd0)eF0V+h@ih8IMVDNEKnT>&s;?Fi&s8Lk$a_K&sqVHIJ z@t6>o3+KSKvKW0aa4B2t;Dz(NCv~24fsT^(jfzTvJXn0PTv}OgqWGH0T-`jsPH5pY z@1A9vbpc0b`As=|p>8XXjVgaqOO+-wsO0h}3$Y>K)H{8tKOz7iF#=ORPH;#nZ379=F8OteIN` zvj!(bZbv=jrhts%)M#{YsNTFx+k2F@b%ZM>Df3pG9|tI$SY7@DB{BtU^!%tTD5?}( zJ7i`xwjg$3YT}ITY>57rG_0v;iUDg&N~9EEvX{d9?Gwb5x;k_hC6xtN_>eK(HZQ}q z9b-{!)YU)7ywvT+-86Vk_I26(2=4F)2Az&gy%z~VFT6}1I4bn~C+8jb4@#TDnnKL|| z5bZ#bx2L`g1ryqtIQE_G;yJ7c^hoF-{H4*z9H0{RFSK5*f@AP%>VxU%qtSts$;Y^ z1_&5$Fm@q!lc?P_5TVAyPADR#clT$NQ@;`R9t&2bRQw)%E}Ca#Xcq>lxhOP0OZPcL zLvo31i0VfS8vuy zyBW#M%cWF4|2moY*&F&_axozT7ww z9BM9{$D#BX+aY)ap1|bff=kyPR9`~o-C>)&VHYU1e)w;3Xil85un9r6aYew0c7|KR zHv$iZ!`V+KEzEzQM_=H9mUjy#hv+gppxJ^9X-_MVQ`_Ck*(cDA=S_qKHR_7w8P zZjgG1T&UdC-qG2c>uBlBWpVA%+}x^!|K{P|6ym?ni9IHX9)Rwpq&;&q(vtzS7=WOG%z5z zAP$|D$ZF?-0inXPBNt2U9o?OUmRwt*x3@dr+9nCE4W+NiS-#|JVwWNsnd%S^aH z{&I0_noB5J8ay{^&{PfukNXOo{?M9JXbOzJ1D98_O1#CZiwM3_SQc1{n8P_CYMNu7 z_NGpdHx_j#_=s4$b!VvX3>>HEat&si;#I&ztj|>=anr0w)F~RYtH(lS-nmKk#5_S*lg%tH>j7FD1m&_tc7o03?Ht`Cq3r0Tf zdKO9-Ele5D@TEx}9FkWcm?xfIB zpudNUh5{WwEy8{U5>1c)T+Bf|c!?lVH$n((gBT4Aurej`HLo8613JiX{)>Z18* zO*Lf3p@#aHgIBeuLkdWIxhn*`c;jYX+Y3*n9e2M@(Kg}MM<9nvzsiX>5xwRVO?Rb7 zLx?ndFJ+29X5jl%hmWA^Yz9%JLAmtZ3@%)^Z6o$Gqr=5~pTzE1v82*!^OPF`LCFzJ zi0p|tvxRJMY4gD5^`Nv32;KdKdenZYRCJr3mF(aSiz3cDt93nne4kv1o)S9vG?dRa zee(SC!M$LVDTZg%D82(xpF`vQ1xMz&B5r+0#>TSqq87-1l1qBT2eWp*SW{fi$;9$FgJNFeC4jW&BPq>!N@w2gF7(z=%xG zxX2mhX#>T99FQ)`hG^h=Jy(76^~tlBMC?M@M-!)ECaU25zEh5SfDGw331lv7lDfNU<%rvS?i4J8<~)LTJU zE+SPI428a23QShpLS+&0fK*X$zoxg)YEO(JgiLL8$XiS$-Li)EWl)2bOqkAo3es$ z>!{&=&^d0aSz$Tnwl#hl@zpr3PvuWgIr}V1Jyj&vaUMQVFsy>6pD86i6{( zJ)vp#We3IA-eWvE@ZAN&>MH{alK_aZ>^3o$B}K;4()1&wk{k+(h#1gvX*2JK92mQ* z2jFlN0FP?3%LC5_oM2C>#BZ8bmF3Cj=>@txWYpe@?pm&G15#`b{NcQ-?o ziH~F_9QqaU-^+{-7v$(0IzZv@FB%5bYJQ-K>@I|OYghEZGzI$+9Gl9E`O4`Y0^dZx zzcSD+{<#I3x5nlzjt_$l3d;`+Ypl|Va~`y9gIwo5F*wi& zqa4A!)OYY(*0MW9=T>Qri##g~U_*$U220*n94sP^$q~(eLCtVgTw{kqXdJ-8)WLr! zP(Qf<_T|xpSf~htHbhAfclnIv>_R8V4&YkU5>4|3bY#4BzR+ln8Eavw9n&YS%)D~K zw3|amL*JW88@=|5F>_H`ypf2cUC%_^A|()6G7rk72Z%dU3m^@V`timUtV@=8K&nT0 z4472HFRUA*VL^-ug4+2_FipgmB!}qaR@4sRbl{o+9QTmJmkN=2BKM|(1?{FxFEuDb z(wUjn;wBvubGh{Esqzttx_9^fz{YY5hhGx>0&@13k`5%{@%o4Dv1ye!!9JnKBCY-Y ziXTEVDJ8Q8x$qaKcb^X1o_`xfWawPH8I*`^j426kS6}>m`t%z{f!H|cAYc;6E!7Ca zQuWXkWJ5>kGuTq=p}{I_s$;{-hmm0#?Vub>OqbvncWt@rmpT`v$E+krxTdP-Mwe)%k7Brta#9s;``ZM62l%jf^rm;1mHFT`@pe|o_N>I zrjbV~MFFhc&41_{h4;rB*va!h4Z`c3d@Bu2p=<{+fe2qOcW&l4TSI zLEOupc1pyHeHinyfYzY;`6sqP=F1fJh`px5fQ3jM7ezok+Y)>VJg9HKiKQKCo# zfs>meq@>P4v!t=LZp%rR4oD|}sJAr;HAiDjI0011{pxknUFe~%C`YTdJ}C7m5D-{O z-BW=EDGKq|LVHO#6^u@a`bSa#hLJKz5`@JFEahfTejKstg4s6-!= zG4_u0vd{X{rE#fKynD&(`l5Gx7Xb?OpJK7a>DqM}N1XZQ1b!G2C zf0Zd%HSZ}*$lF4UMdptkH-W_ty9=~yoPE6XwjcPkbf z-Oo~khBT$c0)Zlvb4J7QY(s?#eZ(>vUXyEOunI%6rFFOr2vhQf*~@6Cr-8h53%iX% zPbBlebG3F5NeyC+#S?Co--4o1;0My)GC1|LsS{2dM2K-gQ48mO5$7899im1#A#&=m zl~P~B>{ex}$%K_bzs;jZ!oyxoLNI&8B4-HsKw$yEn^k#u_+* z7^l0Hxxi13WRW!w=QfhV%cV&+E$xD{Srf(`rFoKw|IzVc9ZEdQ9hZ|j7B%RiQq(qw*~C4s~`*}oAd zfm9A=Od)-#qZQ}8qot5-?riDqZk5z%{Fp_#h-`bVt*zM7($k_`;buvJ6unx57f^fy zzSe+6K0x;yC1ln-xoRkzDk2F|9l7p&Z%b$@@+p@xnOE-14W!nlZs8-vVZSF?tSiO0>Z43OVo7BsNm}~ooT<*PX zJcUUB(rE2q?+~oovA)I)VI)}P%C4EWE)VuXl_SX`o<^HRo*XG_q=Kf0d9#DdZVZf9H+zc8kW)ltFmM`k%pgK z2%|G0FOBF#gy7h8wilYS9od$ip0?(;)}rO$!Rc+$H;@H+(|4e3GCav*6^>3|#eP(5 zZFTo=EiM8W6=xNT4Fj_*YUC5`EVIf$_rh5NMfOg+x&`@793^aL}O@4d?Hn-NYMAi@WyuaYYtUA>3cO-vTGfKok6!lzL zsa8~q^LE2zdT-=%Hoj_$~DWV0} zim?E=Mx}1^-lwAqCW=0osf+^(fXJZ1+0*+R@m>ayL2_dYAEXurvdbKhvND3^r|#!} z0;J0r7~xurmbD-et7IO3xyls6?}edKpgNDTGw@q2^49($iT}s!(05sjFjV7p-{PG? zV(nX{Tp>B#s`TaCl8tp4i^Dcx3_u4p$aO6gS~UsbPd$hapdh)LT)W}XmFw58&OEqs z!|L^GGWg?>H7mk}u2=@WT?`kUBGyF$$!yEGSt=L-7A$}x; zKQ^ilFTkO%e*6|fqNIwiZ{ui(u^@&PEFA`vQZ-3T7l4?1qvs$tLc|`se8{_nZ7WQI z`v6Ov6=MJnfEyl?qRp5=;5N@l7L+RI*v`bnZg>{sEa~R(G>kzyW4h(if9Xzvh$H+0 z^|F@k<9d8F^|<=UQQb!&H}m+f@?cb&k|-7#HAr@$Z!a^D^hW2R^lnkF7rV}nKD>7I z#x0u`X;$MRxuBLPzF$iO4ip~`6avicmtWn#b41Q*f$)r^&4Zd8GnMS?H3l?)1S3M; z5!hAGB_|3u$?S)F5jelc%OW=b=uRj&2BchCYII*i!fccz-LI3#*Z{=U=!k0zNn$R# zf_KKvL4~R0Xd^`n1$}ml4=PF%;)vRH3(_;*pA?K6Hea zOTV!R7}4N#$ud=!6ZQ<6C01>H@v{|zai_xiM}h+Cpv7*lLg*k(%~Rs)ZmPeKltO#T=tOsl}!@dSlZ<3YaRTESk zVgI!AY2#1c`1Fno$ruiWHwA=-uE!_{Iy%PSk+g^oWI}1Ax||DLa2%`kIF@-AY&zy- zIC^eY4}&2Caxk0_90D-YiDl%t#N}0Q()-8XRHDxQbKr;hlmhlcQH%W40kXDxo8`aFlF`H9kTdrvRVVBo;TZd z^VEB!n%fokX?6ubX|e@%WhF=ig`qPjN+|V!uv4)gos@z>hAn|o>y}|YxA2f6o*m31 zdeDu0EQrv4*NIQC+O627O}^Y=(|vt|4-aEB2~WiRGNS2pD03Q>w_d=>1poAKyZ|u9 zDeNQ+7BUoAWhP!F-Sumv;iE>Dq~lk9^Fig%X&@DX1QkMvj71w|)PfwBm^^hk9LoZM z0adfI=Tj(DmCxUU^(PU{&t9sWeGjz=@h*c07zHLm87!!>|Fc*JRMR_oG3-z)!Eu=f z@Xw2xgE@*ythcRd&P$8{#tb`0rVfGl^rB#lgZjjbCOg_@+Ec~S)Je=tPi%n8keyQ( za3_by6J8DwMBfCbk<1&4tZhhEP$P9HBg1*k!xcN)eZKPMvz5b_ZKp!%tTktxt%C{#z$Z`ivdC#|eblc)!@&XE@Nq}Djsn%3a3fI(m6>HjpL%c>%5KQfn>d1QR zZomy}#twM7)GN9QBL3(Hv#{h z+W`+A#l#JwI#?mr^44P_epO>3?@(1iOh=1>QT`cJE}_z&rkLP%O|q(kF<&|xwN|YW zPWSXXXYGE2lhci~>?}O(p!u`72-+8H*|WtXIgy>J9vM*LX6dlAXd zO_lR6p`almu@Q|ZmtnAof0cy%E7Tg;$J_VkUsHVlYAg0cM*S5?`ByqAw9?A#rd(+d zb_s9$=uH|T2^zO<-6{ro^&&j-?}n6T5&ekOVkk8q6u|tfXs%cCbd46WWRbNXbqcLm zl#xVUh!&|COBS9jsoDu@5KeDK&s71vIh0VDu_3Xs%B9m@kVG}gORU8&EFB!g-M5C* z6`!T#cY<fBlsh~vmn?@knPQh%mFS6}3}H7=Y%pV-2Gdi*fNTm* z4I&cZ>tumMU~`KtK&hYxu~MKDw%RF+CkoK<*Emn0$zM`t$(eN8Q*`&hX7rp!VZwzV z4{1!E-HAvf%u>gIu!xqJ32=7kwXrY{xX?^ZbXkiI$GT`CFulL>>kd~8jC^P-!#Q=B zR9DX;S&&QC_83>)ZsyC*}KMvE{i@k;BPAf{7*oFb>CwvxYxqxCNg7+}a>zP=e> z>|%riX0%9%d%0cNDedszaC_)}N9PBZFe=%Gcc~UZA#~*1?z(cA^b#z4Kr+v$-&bMW;QIvwIuApb4TaaddYyuzDgs^ z7RnqVY7jGm`)COpk)L^whIumeRf}}1v`1zjyc0iRIz}Q;A2Wih71io+CU6~MCYI3^ zPp0H`_6_#p5>pH_)ltf&N395nHyZ#Z8U=5p2W2ojpdC=VMz>>mU>hcrTB=*8|3V3L zUuN8f8qvDL9IV?cZI2S#DAvX=y~HV5c#z%(!J%%K*O8eRXaA{tu|jGy+H#>+ilB7t zy#7qJ$S&lA-0Tjb`2Or6LvpQ?>&6q3cu}&@S?ulT(02%K>O>B1OSZK=*WT5O|Fc&m zyO5iRCn)pnxz^^+o*uhn?CM6b#zJ!;m+$V$w)V(Nm!+G!@*RbaV!oqCp1N$#S`L}Wx~i{wKhy;rO;&EFD)!#o4mH&jOLF8c*16a-Wp&1YeQDh<)BD*Xha z(BsAzIki2PviS~e_=jD~2l++V*1v9UUIct;A)f0?lefyU6l5;~xRFsUTp+PI{zQ^ONgH^6`DO&J&|XXw8V|#TcD`>2E`oBg<(nvih)`o zsOA-N+VtLesaBNSiQnDdtt(I~&i@TGqPQ)lrbV=QCfoxHvB|BJD%*2R?+&%j^W#Xp z9gwpi)s6D~D6=tu01IJbcv4b;;zAhzBj?%`2{2A1{~gI)K$ePy)p-L_loo#mkt64e zqTCF|iMO#beZ7igpa{sJhhr$WU49fqYuN&z*&ap!G>y-Pz_Z9u-jJb)C+eyy{*aiH zA1aEC2fa;rUb*zYi&X-z66*5e&gV=>udu7kIYE_7QMRG$|u;qB*9p~3Bg@n_Yp?0lSzm|i$W zlJJfrtKt%O;L+PZ##7qG2_}ZgOYyO$9F#y6KHq@{Penz4(KvssnpGQEkFktL^^Fx! z7gZRI?YF3NJoYkm`l$V`{OD^I9xpnV#^Y@Lzr^~}hy(A}qe!4KYLx|?^}re&ju5%? z+JEM)^LWK{xur^qSId>4mVdJvwf$4^TiJEEa{l1*0A|k&R7F=E1v_C*&dR$lOX0>{ z67v|`>tHniuQ19lA0m$h>Avs*f)2P`4PP?1h1323O^XVe+5|=*hNK;Cf6I@%{ORAF zsvdvW7fTlN!NMWA`^GO+of4%J4-d*aVMaQ-9`v>)L6tBX^Hapu#AfN(IyPPWJVV1P zegVED3cQ=NUoYk%PZsTe$EMF7_EKo$Fp3SL@`t?6C-uu+RF)9)t}~MtUba5sn!pJw zjtuG#x)}$*$Sw_XON0C`)o&?XezE134MHl55z}E( zJdnq1CtiW76Oz5&NBhJ;+*o>T$7$JCGa}ZhuNPVpD#Y1TCeNZw^?3P zxTUn&VmH5?(YKYBJ+(Agg8xUs*8ug1x-VE zNpFvw>m$cOnAK07(MxW(wmzhqeU|}+^vlUZ1;!+-jBa=I@k>!v^fcKuzr^n8liG0M z1t2B9n#IsCKz3J|BSX-q8OXWK;5_Sa7Vxp(kFtKik>94i8 z0*g0AFBXK}ic#QjK!qY=)%`9hIdY|_x87#Iay9_YGl)_~dQL?Lh+mnj!6a`Pd-h{y zGX@rUt~V-E$1j6>({HJcBa`25-4aVLZXDd6ON5E&rVKH9Xx-&#YW0 zd-Y*G(LfOMgb-n0FQnU_IpeAzO(6Q}UQi3+uu_OhL*!a>IuTBT11&OhwAkNk1&3Yv z7cJ>-vA?(nQ$7gA2ApsJBEWpz_rRBpWMBs4sszZ0@~4e5s1A$Qyno|4hKXH7?%=74 zKt+}$hAZG=T$q~~@ne~n0`;QWmw|x%j#`6mg1D`VO|U6#g04|wf|7wPH}^Uvl-wW9 zkMs>gQQ1VLwYCs~S66kGVEGBfSZ8lu0MjI$ihv1+1QQvm*>TMm#dwcoq#5hBkUNo_ zs={cDi~DGkoNbQxg9br6rNBokyB1xo)tjtnAu(iR#us<_1T zy9hZ44YoTXv9xlJRA9zsu>5_mY~*6OTOQdLg3W$^l%wfC(Wc5c7(zHMm#d-75eE z5K0ldW9mG3a{Hk3*^7^MHw2ny!p&j#Ha#>S4cEtIn7%@%@!+VihP_fA7it#)ZjJ0h zmhuBU$=-}3#t}$r-Zx{D(ahDzVG7e;Y{J+Gb1pdn#3zXn3@ACT*oFwn`5{qWpFBZd zS+lm`C@;wKwz3Ax#nzZAF>gG{icKX?x@)yP$(W0ft*29?ee4})s82-({g1)f1lD=8 z0Q3_wfGi^zUAmvetkB>L>27I(>!O%z?aa3Jwjw)Ed=y{4ANPD~>@k4b>FvR5aXuG> z&j8#Y0U4W$qo~3Q1I5~zs$|cN;z!y)@L&weMrzA$I~~#Xcp+Iib_szL<_8VrCGz{% zu3xhmwEdxrbN!mt`xk&)$|!^Q_3p+O+AmavydI)c?;D5(QM)e8EAIFOJ9Xe6DBxPbPFHD{!Z3^`(cpnswd&EK>sIb@< z_Y2==@k?juOB{@BX9Q1>%9^REh?U}=cHShQyR?UA%T@A@qFVx`yIb0k1JKrzE%fF) zTj^2j?&$0(w&KdSxzOC1%e5+6Ga3C;DXsew!-DzqiinRxJ&?oYO-tE;2E*i&rFx8~@w z>@MUxI|}Xju9jkJPg|$>F&j!>`MEsH=CVRo+9PcXs>60m1fs9Rc89T1J^~koFVpR5 zZEf%E%=W;++Meyq+hcn-S`?j|+E4Azl#G?DQu=OU@qd2{D*YxQl)2H7F3gZLA znLaVw&@YmYWfI#3V#tf4*==x4vD&HS=MvMldC zk$fX}nj_R{M(hMt9UIfs!JE*V=n4baWQZD`XE-Ug-<-&RQl9m*in7nu~ z7ccVw%VUaN5f+Nm2<#;Di!~SOV6@?Xy6o zMkx9)GA2!XSFP7FYv)EeU(1Z+RdfSU3;O#7H_*V#Tl>USVVUv${rNz!Bq%ZUR&@79 zG^>Le*%`e5=P_v8GUv*DgE@8l)&HGOBM9;+F*8trWYugGNKIrBPhNNz zCsh20i?A%Y1oxw&xxRH7?Vw%**I}6ujd=H0$dJq6HNy+o@_g$uOt{#;Vz|!$D#Tf+ zK5YxWky$kaMIb-+aBjP>*3q>n8&fVFh^k0hXHEzPC)a67;o?dAs1^XK5$g0j*pi;~ z=i#AI+cSoW+4FE=hO}Y^BQ&+QHT|u4!~RaT8CVLf6DX28Q6UpOMukPU_TkOXAEdr7Lnz2lM^o&@9{=e^FlN35EFe$JV_l?d6X! z>GEX@c@)(i{16T-!6XUQvHXzu1g3$+i62^vRRDILXAoqqe%U-~+{{@Nm)DkPjf1XK>pR`bnK+F8&7-KQBS+y zX120bxP39SnWI6ui0IIbKtOB&M@A9ypPja_Z8i<~AZA{}y~j~lg~qoO&w?GDSb_wc zg@@fuk(jqR&Q6p%?!F1TO7L=Z4yIw}Tulw#UO!^ZsiENWiS^eg{X$J>^6Y6W+76n> zeLd3g4X&C*>IeZ3s4myPCVb!I&JWyKJV2*~H!4cysa(9W79sjsPmkP3Ly$_mkj7P~ zauTaxPu}ltRsG_GMJo(bMf{&ZjV|)fc8>HJgBtbVKbpgHBW}|(!_1s5Z~fB0kc6A} zB|=-LZRckS-jefI(%7HV5&z>nDxOBJ{eXx*D*u^0*yEC7|yzv%;MR>u3 z)7{>l&$YC-w<1`~JR>)59?6R`O1J3OecFP1*YuXmW_USQ_l=--{Kg%sx0Xu}M>Rob z(|Cn7=GGIzBhI(JB0Rmk_@uTfx;8Sh#wFwX)=lGs55bSxCnM0+h$mE~aDr+v(cJeq z+x8C7RPhK5P(;bo8hmr<2 z2IrhTwTg>SZl}g&*@EPDC=pm{w>pu9MQcREC1NU{RDuM~a4C?HJ3VZEWN0a07#SwS zn`U7!^jhP>5b@*wv=j@u)Yqqh(*sYeX1t}W`uIQ}`eFAy5{7xWfdCi5{-7I zl<-*se-EN1peL_%^#+}D?jHZkwfg72+JW@+?} zd*;WTs2xEL*6HH`{9K3!!VOz3a5rzpQ3U>bg9WIq5K37ZsT8>a!8S`JqHVmmLc(wt z3l9YML+og8XIr7Cx2ssR7anev8;hF20BnG~1Zd7Cz4#YjeCWT3AO4!oqhWBTi?_Q4 zL_{6XH7=Jnka`p>Db&S(L&Kgvxp(^VIXvMMkBneFSX4$qO$eAm?g2@7*uSoKF9@9A za>`q8g*IpRFDYT+p7u6k$X=#NI<(dzMu4(DBcnHel12`~I4qz(VW`E}G5@S67VjLRBl^`(RwGsrK4XZ-($9DV}L?RvRkFGVmo5 zN0M{UF53^rMD&E@|#(sT5mHtE~AlLE{nB?Tg->U;Ib__YPs}3rwzuk29C}g z<+=NIZi?nz;gBQz#mEZYW`vWxc{m;)BMcBVdKUdSjP=)hI3PljJ68nF0201#6q$-d!uk^v@yGb$5GcB)73AcpLn|paQe0*~ z;qLrsNfI>#Xg)r$Gx;>f|XX%0d9fTSj<1};A>>t*1N&I z7`AhE&{M~>MI>hCWevK9N4sq^8qlnmE=TAxe{l||mdwi;kKl;(B9MYJty)Ctg^ z7(%b{$)<0|pz&7Dek+&$j0xd=ip?<1#7(MP`a%8fg7t^&b@tK&1SIS?i~;=1kfZq1 zVfF2;7;a;&5XXhndFBR5TvJpM2R#G;w>{o00f*r&DE>}EbEJpqmngQv9`?8I z^tx#|F0_Vq8a1aS9CeT{#g$8+5sLdI0mpyvkShCMK%BA#FxdgLf7>JDM&-t+@yv~{ zafXxRR74BK!ErLV9(nN2G++syd}{(73~u%5x9#ciP~=47ghUgB43lkOD5DQbb2~9H zEKkArvd*%5I_aiiRL<3y4#+;-qkw9*dNtR&nm!V0roxYsDzD+djzn^|%~~&g!;dza zA3|c0-1cI`yZwm40~*WL1Z6|DFV;r!LmC(K=rk&ZkPJ69hgAQ^JuwFQXJk7+{|uoR z(9Z4RA4o@8gf|fF9Zz!52hx2QrhhWMJ{%Zpg(mnz5U#7xH1-PHk$GHR2#{++36ij< zPW5Eiregkjz6!k^U2P~~+tQosL2XI3X}`LDNS-`u%w-2rSy|qG)Z0nOO}Sz?x_jpB zS3x|}FTF9n=TmuG{`?7G$t9;-CsrtcP{*S)V4WZxgsTv)b4jxZzy{NVQOLnWE7OW~ zOd(QK>OX&Q>a|M}VWxw_3PbwI)TI;nhc!0RcjJ7sW}GLpBZFGhsCK03d?D>N;7k-mEk~NNx^u=Bv8aHiay+~$Skj7F**7Q>4`A<>z4Fj|^x3-HV12o!P zd3=$!{Mo_f-V)G@Wq1l|%Mv`wb#c&!#l8ok`Ozup8`ZFRkZ>`CCSvso_%KKM`*Mw= zgLW1h&>T5mn9tH+k+GoV!4F6AtPHOFR{U^u@uH={$nerY{tSl^Q2j&O8j)W!WDpiv zIl)EN25|^NerN*nDVH`z5h5M&D+-{$IeGa-&;t@!#3`V6^H45~Z~5dGQPOtpjizTP z3Ed!ym4p91DrbuD1pIR8k7b@POl*Tu;O_p11H^p5jHteH47Ift;uk%2xOP8ZxoJbP z-Jg(JTL^8-%!$(m#0b z3H-mg0NOSrhB;FFF1kR>lHdkUx;xon4J#%i>jr39(`D3?}PC10f2$i0qzqToRCz4?uh?k^Py8D6BEa_`LUy%4EV z<~N^h?(HrVx)4j4&vmw0C@OuwZI*NfUmU1msiilV?^g==Jo|z9{$%TGBL^iNu_mhT zI|%Qg<5=Gjh{pB_1?2HYXLA7+%)5K@J#8K46h;tZd!e^EmurT9w58WVz;4*W5U?Sf z@%xNJ6}v{UzVJG1Gpq zfv5#yE&}{pif0}_K+upc5injXBZELfSH$|T;l$qKjZC?;DAFZT{48EFdwqNf55YIu zm{MCCMX4A9AJ*2!G1Zv_sK$@dB{-LL$D}ih8M_asjOo_|%g!D@!H~8nGil_AQTt5} zdrM@gjJGS7ih>(=KV?h;XETgt@)8EKLudlhi}mJ9(uGII#&Zpl|NjnN6x+9WY0$bt zYM;qZR_`U08}y^mGiy4@_sofg(;-KPO0?H;LBR0u#X58(GXX%-77Az-Au28bSu8g6 zN5qVY3(slMREYlD*x>FX!eu3E6RJ@fE0Sq1uYKcL+KN<^|JcjK5_Bt2WHO3a)3-nf z^V7Cnp(}$e|1Dx&YRXz#mXNX5yxOA^V35393UiQ)CV^{bT{E{h6Af5?#H;^&!K;2* zY#3D7EI+jEZ`W0Am+KTnHcS)s-3PFPLh-3`X?^-iKmlsL&~tej#g-64KGD2Po-{?x zBZ+audPLFi<-FysxtsG^q1kK!nJ{dDjaEG~ouZoDgy6}M_ z*o;&8P!S2{BaQ3TeYY7J+0BH?#W3`pKAO87}k-RL4) z3y+CuTj8DN zMhoH@sPT|5M}e=S@K{g1_cSOa>ZuR&RgHuol|bqKI5qj31)C7iKrG*?IUu^=FgtGR z$3o+-P`RkKdcIAC0)^CO$LUv_H5YvR<*9>+JAYkAL2hpJeP}uvXG&?nO8#2VA ze|a55cZ#Nw8PD>0`Sxa$a|Q!p@`l^%&*^fty`4!U*rOJmWV>2XjFLW^h(zdD5nIJd?vzW-`Nq{!e5V1iA6CCttLlJ}2KYs==*#@r zj>hs)^9DxT#P<-;%25HOAqfUgV>7ho&e)K^#A#qH8R3>-PYB%rsm3k<@)_6%Fl2v{ zZ(NCgG(d|tU`8FGGH+gLKDGI4wLHuzxSP}dSe&E{2`v_z+@T9b*v;5_A{jzaZ~BOzSLB)-K%lqDi8KQEKBcqHB& zYcH?`|1vANZ5*1YDgr{76WsrX)>h+2Awo6&M@$KMc81)@Dgl8TxjIh@N399?(0%<4`HeL*{xxguiI|%nYjQZTO*7P+;rnd zp(st0BF*kQ;(ixRFM1S#0|eq2`@-Z_jtfi1O@ymyMzUg|X-i4a}u7n|9FAjc~$vnIf<@$ExF3nHL z{5rm7<|J)RA~hqW{{4D%Tduq71)MMhVZbxq@0T{of;01%uS@Hh4(vap81>z=_9 zpu*yvXwf+}%nz~}g@MIu62%kF6qo~6L^+`w$W%52(+fgIf6@HQKwii7f4BTnxjwfP z&%)>n4JacQPrJLtA;`sXNd29=ObPP4Yoi-(;i8>+ZI`PZberq03^;?)@kk`rCfK!n zb-4vl?q_nEjwqIzh+dEp5}1IeVR5oZ3WJid<4>My;#G{kDQvQThpRbo? zB?PGqJr+DV^#j>uJd@G^Jf#OD{MwTU6wg`~e+~NcW z$5N;>3{{SFj%*oQN7V&TUrI`CY;%YWIf)r=hH0piX1EOvgn-Rc9{SWwUOLT8AKD_> ze(1D)%1b-b?_1y6```bOWIMFXAfLVez1F_(y>5H012VETQ63tGx(moG*nGiLt2Ndl zS@5pFzH_mYY8vHW6O{Cr$(?0&YPey|89w1F#Dtd1+o@DRXp^a#S%#sodu5+UIK;=r z?RNPL4ODcG#E7|ZsI(xo)NxwVD>dGk@#%5>VclWKJ?QN)*#?pe`@rYMiPtd0tDR~S zo=;KLy1N;x1fRxFFfA@NoVfDWIQ4o zb`b6X@XQ_00}!B3%GxF0z0(vd_@qhKt=IsGQ<9(x?ZbN+{epWOn!lmBL9XH3c~zUh z9hX7c+VsvwU@Z#$qFf^!6Eq%|xO9(2nl`le!WL-=7xMl0!yW_Iux#rx@fEcleB#WD z**rNeZaQrrvx9JQip1T_oNw^kbcKl;+ybcv^kwN@SaQ#WJ9T}ejQOT3I}Tye;#aWo zb&)W}{KOLye(~(6v_+iIjYiYa1(J9e#3FdpxZJO;nR2V4#lto|%#Cb9x1kM?No3bvj&8#VnrlT8dgQYSI(C2fv2l2hv<~4R{CY}_ zp@66Z5AxfvTB@WA?SvLx2yzI%I`maS743*RL2M>*6@j^&+%-s@EjpbE;ks~S7LQDC zv6Ian0U0L%YiCLhi$^TZ@0OvtEs_91t;QqXZZK^w-nxnC7K=8uI*?>mzFzju-G#`> znT$5uekld*&fetccb9MA^9*Z2s#)??U14_TfNjA`GVp*ZdHIPG3s3(TTo^+oB7WpY zrx?0Ba!spsKwhKPNM$3^te*JVyb3Sy~*6xTiG1PjgyHtRhd^gRUG-NOtf z^w3TCb(5H;()j4iLs(Cn8HUQgB1u7QR>+`p;U*X_VK*K1KGNoZ*lbAuuB+dJ|%^AC#%_w&E#Sok@@?eQZ*P-WyYl{lBCGW8SNaD!?w1UPZuV&7zOrA#_YJ``fvu-Z#4w-4dbXasijxg-ZUqH5I-%@PJP+pv73AV-8~DjPW#e zWK)zheGFgeFv5-e_AZXg3~RQ>v>SV43I}9;^tZHPS4$0e;-ehOc{E4^pz5q53#>p2B!jq(T4ol(Edq<)2UOXHa z=wJ$pCBgw$b1)u;w+7#)P~eA0{C>H=_M@OcLTDZ6Ds4Juig1?;5q>nk##*@i;(Hm0 zX&|7O$(c+z)R(wUY}havXm6c~1jkbB1Y1LM0>5`NIlkHIsUZlXVQtwzjmt)=5aEU% zBvz843|??F1v@E%^K-orrIxor4-Qq7%U!0sAUHAcFZi%Cyo~geKA5}Fx{49hq6D}e zpVsSbg;*diPMCCb2IQN1w}=9#&2$(4blX8gP#!f8B6)#r=s0J&rf^@}W=CO?NG86bbuhSu$6aQ+uKAfSnn~ zqc9D7JX)13x3a|aNa>Lv!Fm3SwsOHE7WKB^BYpb2u+)x%HWstRU+_AD8=Wv3zIr8uEOc7g zt)Lw?7vOaOR?fx*)=&Jx`|m6~{r;uDdl{|6C|mm=ODy>M_LYNcm1~OD8-=YSjMi6% zYh9TC*|i!P02zFCrfEzmxxtB+AHYv_uC2>Z)7#0MPa0yF{Z9p=~qJTl^Z zo=8qoZt1)Ifb)}ot)EnO=wR)K^Pl!k*+vfsm!H493tpZ-_cTZ=jYJ(1$_wlFTtHFV z-^O*Q_rtdJQsDeH40l8RAQvoGo2fqKl_MUwh2Y!7>?jmT=;NPUJc=hiZ~GyHA+kbW zgB|ho7W)at!hhjVgxi_8bfOG8uJKPkdVc;W&)0cF%V!%Oy4Dw-KjX$03C;E8i|fT# z;Np;5O~HVU9i<*9TWQJd8HcL+6<(J*pMuNjbhN_5voKDJ=GWAFJUFO*lb=-6xw#Bv zqBuEyu)0W!%D%3lc7Fk>aavF$l@5amKQn9bQyRWyeU*57efKtWl{ozL^$FaF) zW~V0PBnMK`Z}4%(8_yT;3A}!pdY?C>HMettWEHkOH-v~S>>#k}Q3;aWnhVwMeDc9j zyEWI~s)cD(s16(h&M4^ET`m92_pvx6++7YWHk{f;G2Ak3AEv^jR=t;EIChLL7ImWg z=1w%0*V1a3705w_kCKLnzAsE0qxPV|E|xaZa}i#1aB$)R+V8ZfcF+w`@G*^-qi{sU zI>_jXDEXqR8f;|zZlY0ZCh@@80NRln*tZxRIfwlEh&ge+Twf>=O~U|G>j*nk(+);# zy8PheI1bke9vjS(ix_YjQBnzp1$sI^=Ir4RPk4I}=uW-OFAMc%;}aGJgjctj9tZt# zbvygc<1eiBC6&f_aTrlcXGaBwBdt?OSMMOoyQoXy-T`f`HFM2~Z_KX1QLYl4>Kbai zpa##enf#G_rbW#wU#IznaH%>qzm zID9fYFOZARJ|BpRR+4-aQ#QK3=lZ28Ky>ZPeh;pZ)p#Q^$1hXsK-L>+2uw?d~ZKl<|_+ z{MD64dq=kQ_igKe|Nd<|1{m_Sv%1zC_SsV3J#ny%$Hv78Do3_vju3)#MR!$<_R3!~ zs#BN&D7P-Y`yuT;?*&yAwhbQ|A$WuzzBV(In82&;3Y`4D|N&GQLG;b>)M_DW|AgDb#uD zR6T4H|N5C&DvI~fE2G9Cv%;V(62!#% zToAL;HUeKDJYArEE4-e&-)D?nr`HS{=H`)%R!Ey9tX=!JVoSwi9p`^57v zk!U`9_VN>_`9%KovlJNGwXFKChXo2p(n-w(A4{rf9oa}miY|RM$p~P-?Zxr zXCDM@*wZJ^LW~X>oLM_S0Uc_9AUe1qlDOYBK%bfHXEvdqU8*+ zc?6d#0Om!Qt%Xz1;cL_=iI0|k$SKQEYk~$%l2ij)9lij3;@qW=U%qtiuQD#jqBc=~ z3BM>3!a~WZMF2ikcdLfQtA=Z(P}m-3(k#?ZH5ph87dIFh zZjT;+;+8xJ0`lqy5i9m7<^=XG-h%GL3iTp0a4uN6k{}nw9 z0_ODkfkqD%#In*mns3Q^DmETM7(|?d=n>K3s3XrTcuaE7RvUMp?;Cf$>Bw_kO5R4; zz}2d^h(6F`*%(!p5ynsc$gdew_4q7|_4Jpv_w@IV_Km>PJxUcm(g9o9g~LW4jfMiV=0%O1gcdt1_xnk?t|_4x69ZPsp_ER+uuR7KMoS~3 z2y?e%M>o8j$idUf-D5%EvTJ;7OZl+d&c!>{KTzD> zzhhuq{}|SBpL;zSF2iKOSFoAH)~XMSq7DmK8X7q%#Pc+ZQ-@8WTWbE)d+-LLYk{G$ zQOrbwylesqj*~isZ#BN6HLVkR*IIR>zb;Y?Jl{B0FJPgxpbC^vlkjLn(uYw$art&? za&8>%uW?+;MPsO{Kmt+JkA#$b@)i6+7Nc4y!!VZ-=O8$xT!zg+s2KON6)zgxc>V=9 z6;bTQ@xf8+aU|xwBkw~H@3ZdtXL{ZQFdkt3*M|eY)S(yTHGR%XOk&$wrrYGS#gmjLT z$)Osp6d_QcP-9(&%8W7a%0drbTCxvVVd!|$_F4LWL{?VDR~$!Qt<|Vz1$^yhNa8BZ z2J{G`VyhP!9F4fa^`$2bf*c-!x8GK^a%AV9m>s~3g>c6hohM{Ch=akd(3e* z;a7r>AB3v`zXBfn9dLBuawU$H_g1FDJ;9#|7W?FB3hizV>Cko(3&h(%J*Hzdy=&TfeH6wk1g*eF2T6)vgBsmF^w4meorsHUX&IzO#)IpDy9m(1> zE5VX0>S$&h&FawnA*f&+&$?V*f+%0uF}?1XnvI~$2Btlx6AW1)LHm{lXP9njChNDf z<>j}uWhGnM!H^S9Gi_DNPqws|TePJuKiSfj&TVOj3@4Yiv}eXG-TX(sr0+H_+dimm zo=OIz(X)IYyBw}%=j?&pY0!~nB+yAQM=%i)glH*VcSlsfrK`Us%XI|j9YMpN;Bk+` zw%G5aUVU_k|8$5|`-)VnW;*nBoxVin*4|;;Je5E; zdX~d=I$W!=$pSj;nj|NIPYXJZBaUO$p5n}CSY@qBB#{1DKnHv5Ea$rrudl^^C*>O~ z!-`iM?RPxOl?rD$nL}dZpnznY2n(t`rW34LAz^Nfg#z{@C)7aplr^j}k%l+8Rfz<* ze-`2zRHoV4#@;5m{#q4tT-Mb4`xNU*eIxsG5iAlNwrdHl#MT#-r!)RASR2(ny9@Jv9Ey()DCSw@N= z%XI{=IfAA^JT8RCA+LXRNG8Csh=cyrK^wTz9j?WGCqVk>5P$CwtA=JL;Ri!4ZB-(H z@y`zQ&jDzVk7xss5-E^!9O%Cs$gZXm33>t5t~v z%s)HOgab8`z}=0&%wA!8OedgOA%}j&p+Pkq0WWv33?GM)n_HjHOz_kdcVv&;sIIpd z6?7Nupu8;|Sw?~+Ddq@Xas(oy(gS9VVNgzjA}#1RK6D(abI=SxXJVH&7@jOQ!Br37 z_keWoT$91{91XaGUW7>I>##$p_ zJgVc-P$?(Dk`{CvKX4qH2p(Ix`Lc`zLsHBUyzdB_tm!+$l2wC|On_q%2fdgBeIV2< zP$U|AHe>)f@VyWS@ACyf-l9orfvhxtcK-tYbsFUk2# zRw)hF{y!m?@Ct*I^S2Aibbe8yvla4_^%5zRsz=S91YVA({MEzw*Q2%&us~Hg zqo(m+Co)N?UNGjUFOtvSMFW z%`17G{470-gnj&bn{s-ll2t4=$mjl?l1nK?qP^xlc%5|Nb{XmUq@L20G|`_y{F?6`Dn-- zIFHq}CLF2jJF8c#<~IC8)g&NiRhcZct*Dgr><#?y+J8XI34d3qT&!3E=*J((4}-sz zuvE#bdLDm0guf>IV2R*QL=h~#AP&U-NL0UUe=qs>Y{}t2+loI};B3j`-y#33g%^Ll zgZ$~Ov{E2{HHiV2$j{h^f3IAWF-e4ftgO!(=s5#Dk5%>sG>Tp{(AfkUH_$`^O6=R?#K=uVD2;mko5qKvxrJ4*$k{0$nrE%L#NnfnG7ttJp|h!@s?N|NjO` zp|pWA38WZk(LhTELIzR|q^+Q317!`AGf>_@x`PSRSzFKcp@Ci@(cDZ;+XJBovGcJ_ z7CjbDR;U7ixW9%t*aI@K)?88ucwJ~FEWDK# znobXUffT@V@%S7RlfRy07C-CX4@Caf@%hW zt^~CE@uv_%fI4~|thWQM=P&JfOA@uDt?&4yO@tE))Ny2$W^g-`Xla^2P&k1=h3K}o zj7FSZhqc3l^*XE_9>ZyEX9XgxqI_yyjWcweip;C3i{A zXpb8KWZb3C&+l1iURpQyVR#Z_j>WTB|vP;og^GT8?10PdpA z9#WMSjIEV>v<=J(tPl}2&^^4_QzErwfwz(93A1mKl$y;qxj!c52xmFmA2*gGX#cPg zpFO}T5-MSegjVW{geci-vmZN$%cKl2P|l3Y|L~sS2{fbqHW6a24C;v4r!Ov2t68*v z#NSK1Htran%^{>Nq2x`O)Kv!Z5e+$r*7v!roC=n&Fnu3s(D$K~bsb0danaz~++@qa zF1C)a(wjq-60Vtzw-TM-GLR-*pjwH!L{-8jdp#de zc;;Kjn0N~DxV{dG_|2E5F1>VZA~`-YeIXIb(!*bKZll1&-6Oa^gSiLeoSPY+NM4#w zBqwHOCnaF8xWYV;Q(St^9qdjA?8Nl^rSZ$jiC5>R=790uL&1BgOTg=&9T@P$wR7iQ zZ5zF~cs`ik!~E&J*F!u0N^=V0uNk zD%`3ERZ_$4EKKu()qaO0n?p3>X|cv;s|UC3r8e3gl4SzH+V(OFO%jWBo5ySWFHN*> ziUqs92A0psS^F0_m*;kj(SF+cR693oKZifPvrmwF9AR)gNNWF=C4|~JQu}H+ApoAJ z?sJ5|`Cz5}eVriwTR1@go-pop{6I7g8hbsskvVTTx*oM-$3Bni=$tEIe7$<0cAncF6>63WsxN=M$U0h73MwQf}oT+;c6y{9h-WRM`jZ|rGBnGeq@x63$eXTbA zy&PB#v%uVr#5ZmN+MkC54e0XvY|x>i9@goSK7E6npTqm~HJzWkrxRlO7TRwu0vx&aX1{e@ z#%^mp$K}NnCq_n2oI0LLriNCybenQ1{?v&}v-Rg$*-JZ_^Uk1~LG?Rj~2 zT8v*pzaOZ&&)N|8z(MStdujHnn6m_FhlX@=LltDDk`0yA1_7}-U_lkOxenN9Y1+GB z9+&Cn$UkKxKLCfkM;y()7R|vF|BMY3_fLf~=3a|p zF$(P+|L98nMH}%UK*ZOD1(Mo-A<=)(PW-zz%)@Xn2P~Mvob-^@oCTlxXzuwNHsS~1 z5cd;ag#qrj&ImNLe{G|E5D@Ko@>nQ|Bfp>vW5!cfRsvq@B6xxnxp&Yy_&o#%w0CA= z9318@8|K4sF#E|lNSO9EJ@h?dgM9=JZ14G**>PbfqVri@rksdQ+E5>bgW7j)_S(dZ zpag6GeJ!G6Hj=Mh2n zJ5*EX5t;>m!bbcg9O52)-zNyIbzx0I`Y&vxPr)JW#YjbYs(x}ePxVv3Y-1gU#VX26 zSy-t)>bGpHPs3sr<)JLBRR8oRHr8W+SjqLg7<1J=N?uV11yTRihIt$gW*>nm$X4kY ziVZ{7!Hx_p0NQRWoPz9>et^Bl#yJX%Q;?0)Z)hK|agM>^>?hVK>;yYNHks4ZbklJg z?g==!1D2Hv!#h~pRB0Kf2^;W9SiqwrVgciwl?Hgu27C$@@X0Z;fbsT91Dvq|p9TbM zZLk6X+tVv(fGalOGjMS*KM>f0HYNYHP_Hm zkGFqhqa{;2fX)b3Eu6TZaoX$ZNO*Y01w*AEO1Av=`#)T|F9vC149YBld_5|n!pR!t9kf$^(#9#l;q0Fi2o&F|UoIEVsf&x0 zd*+|A@y@{E9mLV?x#{!glY*%IJV6vh?XTESFTp|WQ*qK-RP`D)*!yi8X95mqKgN0d zq$r@&fbUOiptG<*M@K{fr3QWfpAGafEYOoo^2!%|V4QlS=XsIS059l(wkqZNb{XYHr+WgO&F0{joy zcwdFXJ4kjKfq)0C$47L;-)|#+4;q#7{{-=>eT9bfU)xAu2SzF`WcmgT>F?S|-vC6qNS+4?)86;e zQrh3JktX4g4q8aXsqdRKsDEWceJ?arar*o1G^pKMtn;c24OLvs|6v-`du^yGIH*Im z0*?qY)*q!|eaOa|hQr#MoY3{GkX$!d?NM(ssaHy|^R+_Q>2+Lk{06)2v@wk^p;VI!lwvQZY*YIU3vb zOG^@9=SDT%V2)Zk-5lbn%dWC zz#CSVB*0#pj@ZRDUZf?{UC(AOZ8!P{+Q~N8Y+PJ(P3o&HbJg0C1lVBHS-TB=HeKAc zwIvC#+q@lA`N=|(vk$&=hN9|#I^g>ew_w;)!LE-*zMC?JmL$ODp$_LFdx&aJQ7+3|&fV1|39y%_!@0PYqS^~IC%&h18xVj7QXw6YG@&fV1|39$QU z9d=Pq{AhI^_1MYkk_6a^v<|zdmw&Xvk9zE6bx8v3O6r7?w$=%1PO8x=LCnVGB?+)Y zsdHq+_o{;4C(~Y$xfxk|X-NX?R_g4lcxh2DmT7Ow+&Hebwj=>|F7@FS<>6>g%>1}* z{|4B_)Q4M?ccZ;H^W(OC8(>FM2e;LCO-!{2?E#vLySBC@0k$}GA~>?PCg;ruz6smu{+ed$jmt|CV8>R+)7eTV41O=^02J^l+6-7< zk^tMc`qvk@)9r2rzq```_HrGpRntMYbT$18OA=sbSLZPuc!O8>8K1SXBmp*hbuo)_ z?bN(%-O7>#*!R_4SyZ})nv<*Sn8 zwwBdsEwqjrn_Ng&#mPhWU^D0kkR-tVz)nFKbemwenyj|4Bmp)I?z3qZ@-ik76xpLu zoUiO!R~O9{lu01PK#K-iG7vJ5Y9P%(%Ld9CC}*I&f%H4o%H3+Jk}~@WMI6H~h5~5z z$i<~&RkK??{do0mRYniLUPX@v4olR!d%C)gzE!a1S1_Y&VO}Zb)P!=YQd&5tl$OhSVPU=~ z=S!DwPvSo-l@}7q&GAy%`m(I#3JW8rPoz%D^2ix^bnMiLvCQy|f?DMWbcLc-{fp~R zt0SxQ%KCV`s$ILctLtu6iM6b`Nr%uf(v3Wir3;}MB@UW_K6AGUp%v%}vww2xRzWY8 zs~@h?+*j*PsHv%Ar~eLhLb#RndYsVWNjY`;%;__WqbJ5rD5poEoX|ii&sW#*Mu$sR zYN|IP*dhHiw#Ue79BHonD=-eJr%)-E))W5J_N6%bVT78&aamKBNII$m?MuCjq4mIt zS89q-+nAiFIF48N>jiNSV0y8ng!B)NUO1ZIL@Y1jhXn2>;{0JVH9=2Ueah((2suCv zSO=&L9e#icI@&dLA*5|PkgD`8E@mqww4S}h(S~?4;qNp^KX)Kauu^6E@H(PT%U2w8 zLd=>vXs?ivC{z*w3b|Dbq7U;p{%hZg(NfNN+FRiy0eH}@NrK05*YOI@1`;PiTFPyP zuoN<;3&=-U*Xa5%mow@r1;HQT&Z&`3&ypcuK>A|6VZnO}*VC%@kCq=@b5sR*Fthp( zk{u;1a3>6}Kb~oacKWi(+JpF0hyyC%LBx^6x{o8;l!e^cOzKV}+QmAlTnZ-@z?i!h zX{|r<*50&`JCRm79CE-IvzOdV>Y)xBO)tuto~FpfWO#qKwu{M}oXzU#PylPuv$GF2 zJ58alHc7HdUGbs1nnF|P0u~a!8a;w8;wuVkhUxJ)1GS-P!Do;X0TV%K_ zkWTb078PYZdk@iv_3k^JUJbM6W5*6S1?Vf?F5wayktz_^MBxIo5N?1>poMY+$}P3L z9v#r^<5lblniV02&;c@!7Dxw3A~&n1hSz@{(egN;akmBSO%mR$Ju=!151m8Yti5ev zcd`!u%=%P|nzfIIlLTOlNV2s=2{?y}+OO2f;a`W717KW4vQR`09K$2+&%&Vw3JvVW}Rp?3cDW!J)QYHP}_ZIerBRZV8~n@TY) zm%<%&LLt?@OxTyC(RCJ;F3O9ij*Xr?b@Jrt)X2ywemSI-W}%8%6I`WG02kcXZNZVb z5r06w%yj28DI~4)|^ir;>o)G&Xo2d&|+N&;p3$F`mq zV(eBTX@tBzwo2Wa-M?zF?FZc9ljIqY77*LdD&c~ZS}8{>kF5T2Bi+Rt_=Ut-tC%C` zQmvET+O2sLAlXAeMM&ogz*~Rl)&pzU`d3Ihg}Oo+Z6oe@VE1x>dDgpT;zH;sQ`Dd2HF!1v|II2@7#!wB#*&3CwspLYhTOW9~*zLijrhH zkRtTul-zptz*k=7e%WI57i&PU2J8jY0CMCUUtdFrANB=Lq?0}m!fD8Wtsx-?-8r72EjrT4nSh7kG{8CluJgvv$G`h! zYX`vCKZLj=dK6AO`muk=={Le%dIz`%81?96*Kh=m{2sZiL}jAZ7=3}wkg-RD=+=VcMV)O9{#L_-_bXF!*E>pmI~RBPvo4vJFu9` zIRN(H-twfmeA5CC2nXM&2k-E!zGHAoup4Ll)cn$L+a48|)Stk5Xu$8Lt9iYA{ZG+` zHv+5V;QI+A3Gm&(&U$@-em-DQ)|Vu}2L<@em}L{tmFQ&Zd)>m41o*@NkLj@%Z^KIi zG9qgA+L8qL?!Z~U4bKl;?7p=n3Ggw(j+*S-@+QFyTwRg?-zebeOqTAo>Ca@s9fB1k{2ELf;Uuv*+M-H{ce378M`(0!|R@?gj4kJ=x}CsJwp`I zXBNj&%GmL=d_0{VN!1Tgz(IXRF3Z7uMc}23*@x4MOJ&L|MlE!wh&9v=84a&4wST}3 zD&Xpd%z?CwduFL+N~@)aNTFB1nO8EwmeA=90xIaTfvy;9dx5yp(r`U<(+w53z*P0& zws=nMC+^3#WOcyQK1aS32eiKiG+2cgRm$PF2i!x#2l7sJZ3x%2`EA29#gbN?N;0ii z^6PudRri9+d(c%&6$Dm#haZH1o-q3-=gPPTV!BE%`^BZ83EcbVpn(p(UR@U>@6g&_ zGPd$p$Rs}=En%B?^cuLqW1^{>Avo@gxD}%xYuK*?YPz92_^hDk4D`IzgO6SlVcC7OWbj?67C(!i-dc{Dm;*j7q{M!ro|8JlaN*gGXK#I{21+Sp2 zfpP}Q8%V!XC8xVe%G_%Ohh!oK&lpNObiloA!8_!G)+gt(H@s12E9o;fjKL#G$=y$$}MdXrBltB*49Ow=1NmY_bCm zV&Fi6q+r53fip_fJ7%C020B^GXzrFapgjiKYoL7w+Hauy@EPX7JHSL*yh7NL zOe$F=mn^C8Q)ps|h?#6nCh?4$Vp7d#lv~l3g~&^*p(NR7hugE+YWagsieA&nm*VcM zdM%v6JFn0iD-YrwkvCTT<8$*8wiRH6_@&f(BBqg%RQgzE@$_hFbn%#Sa%5G+)OShG zRA|GWT8Wnedf995@1qaJX#HMn1x+N-WSb+ZP3OtLGd%6=oIvv4E%>SI?wO zd;S!w53WDea|O9bXniPaVeF~R-m9`&id_)R z1$ECCDQ_}k-7!geUMW&)pjrBd+Cd8|J; zTUJ!$|L60{us{0wT<#WEM=VB|PSXu8SxtykSFNuA$ z**Ad;Y2%DN)x`Q{_n~;7o^vWLLXR(;gX_n-=V;@uW6LrJ zW^jEqxe<%ihhkj)SbbsvHOW2?5bqO9sELF&Ur_S+wy>-h<6Vqi=i57eQ>IO(j6Jp4 z`>LvBDGw-O@tA{_c;Z896F0OK7enXda#_i|ENA0{5cM=Rcu`kz3(7g#fQH!G@QrgB zHyBP;;<^R87R^;srF2m(#3wUa=CvPpf-DxP&0fEH^sVZh>XE?L)KV925V;$--fMVH z-AOO#ddTT4KABNYX1(*3Li~P(>VSIZvT8cM_MthS!2}*>mxs zK9g1Ar#@6o8ZRzYa!S4&U((Y=)Qv?H?_-pGtY1=Y-_(oo*`B67z2jL`j*W{Zo&i$Z zI$c)c>v@`lwvhC6Q9(*Re$~=szwetZB=k%iGSbv&(5mv7l;cuq>Y-!E5>cFAZ1!AZ zt0kj3Jf90c{D~jgt=6TtySg@Xk^kJL-CJydDQ{Mke0-u^EiYG0n=LV2k_!du=(jj^ zZQ35n>bex4NGK-~d!r-S*;qsr5%pWfHXff!Xu*;#pxIc1C;|%AHWN>|SV2n$LiW%n z%0I1bJ%qbe2KAp2)=P4oofc1?IHepvJ(3zZl^&6gjnsEq6xerjYppNkaI;p9!h}W! zTWls&HI4z(Hjv++#}{0oW}o0jdMm4EpJ)$)YsEPX@W&qZ03JaX1JyDL6Ha^N;u2-I z(0&qkm#tlPUNpP0PF4diJ;_kKcXS zvcfj6?d;8K1INwlB>3i~#G99!TIfyTq$kB)b-cG8ShnxyB8p%8OR^mWohCY-`Aucq zxhjdf#mTvdk}q--+wN>)&0C-g+rh{*UdHijBgY-=BKQurbM+2p_T!Wu9();5Wk$yW z-I&$^@wP}ib(18`dW;FP(j9Co?dE8uZ-86r{S8*yQ&wnYzn!3~W}jYEvg^4-e>Wfg zMOx~Rv!l{RLI|@`GJln^m-cY9(jvH(KHOlXefC}&d_&d|cG^QmoOLcft?$u@9&EI& zk5G_nacYh>VZO!G+$P5dQ%BDTbHXIvXE@ zExn#VuNdo$bv8S$l>UrTn2zpY>*xSK9i`0k5{7Qe`X<+=PK=GF(#JE4sS{^Ljvqg> zYI5yHmGamu3WYe`>GCbgp*BAJ@Nx*`adoheg_+D=wnG@?=Mc2t1K+er>^SlmKDgJ) z1&^5hYQCJjL2I3^{r7#%%WTeyDYN;rLHsjHxO8y_jXFPTm{6(3VyeN#tS&bb!{PmO zG2oHf5)Uynj@s5{Va3p2Di@pR!j+wLA&`=*fp>6iVT+0|lqQoUlgrdO^Ko)(y#b$h zW#4p&r!XJCkL}}!IQsZM2lw%Z8hm_DR#~L<0P2WKhK)L<_iQw*)$A>*OQ?eh21(^L znV2ig7wu>JqD>rq(f7d+n zHhqA)FykdvfQ*a5EgZemBjDcY*lO>jeVrOjbihVxcI$Exy&V0}4}$xl4@AoknL~0uub1VrN^5f63EsAY zy^YydQghT1ThX}lhw-@id|N#3Lu`+`lcUG|8E}vL-K#yW*^A$_N41$#{OtR(fvy$|95&jam8UH|o8FwqUI=HaK z>`luRT7#TU2%1Fhs_y<FlUyp|FJDBWzRL&CwLU25yQUYcRzDWY33;Y63s9U1ZF` zMKv#H>9^x?E!t~1%vgB6irzpelr~T%fs_{G3Ac^Re34RnAk2q7%JyM=Y34c_zP z;*j;WT5_LG*`DltQO^a7T3DP+x@|L#?T0vev+n`-W`ES+&H77~l%}L9iM~$AmXfRG z$d2*@xpuY&!vmY@(`-{c%+XYT7~E7RFu=Ormr*ZrH~Vnk&q`Et4g2Zv!7#w*x`(vOJ!u>9rZZd4j<%bhrb4H zhgTcyu(N0BbaYz;`lO&v@S!5TjC+AGy@-3106Uoxwv%~?qm%g$;7;bX)lSCj!Nb%k z7k-_7H?EC77162ykp}GEB%f1hc^hHD`Y79eALeMk{}tSR)2r;)>`}5&ogOZ-w8gFV zol_{eM`1cV#@69SIO=fkgA^Yq44}43hmV-uSc!vo`c8;xi0kW*nK*!8X->nAcya9fC8a869{IpEW5OFhcbQm=tq z>IYX@Y6tJ7B2z@}MaB3{S*4^egq=FcXdy;G`#47>Rl$|?2Vy1VF%aHW(pOa_OBs_U zOi7<%E9ny)mGlm{l72K+QXWd`HafMGv<-#T&$1QuNsfy8{osoFsa1-4q=WZ-lZ>6d zp%m$}O``D@!rZi|7jt+Jd#RvwaBDV^$C2Gm2j=sZB+E+XWm4lCoK_RIjXuZrPET?4 zPM-nyPM=-nouXTpA@aQ9?y?tkHLqmm%0*y3ex9wz!yNVa7s2)Tr&sB5NAI#da+#(< zQFvu~o;oYDyQiz`=v&o0RZRct4B!gR03Nn7fL&;hf%Y0`pMmxp=sw(%?mz+^G|(aZ z)x-GLqY3n^fu1wa^HLXj0p}23G|<@u8aL2H0!^+|?p9N13SGbpCCEw_wT*aLB;jwK z!QXrd|H8i?re8>4&shWI43syJey2)SuB1fnx~`)d#~P-lD&X^1USK<_r#U*RFM~TO z(pRSL@m41v2YO3cHBE`xI^il*i(QehCgQFunyaKr>7rVI&hx&=c16cHx}yIZ+!cK> zLar#bRB`S8y#k}MTr4WksqV9EJ3Y?PPX7knPJey1ooY`}yukU1 zakdSQaJ1pUhbUFF!V-yJiEY?9zs5E!&W7DP=lKeCR+%szCw)m6g%P71jrah#5&z+8 zBgSpN^qUGLncE2mT(h@QD0DQyo>Ez%yj$r60!1bZU1u{#&+-U!Hj`{;Gse-`90zwc z-&pNzI(txa2d66kh&ICAN{C;b^39gBvO7Dqd%#(M?jA zeR7FRnGN0tA`nK1+-TkFk@2i5Q`)==3x}uKR{RV{EB-9F6_ZvGbyjR{#%~YH%B^xz zp=QB5;YQEgq8G}lo|m&poRp#HRVM%yX`626!s}`oP2)s;um==oo@DR?qg3Kqj^_El zgPSKQ%B(Zb&c40WE-8muV7%=;4CykFpG-v0n@-lXi}vtu}#b{^6n3oaq*fNLI+ zn~*y)*;3SY^v+4JHT6Y~n!1Ht`vn!72{Xm}V@>7Jg3j&qWNGT0nqSH)Wu3AC3nO!u zt*vJ{YU=~w+WOEcZ8ZmKkxoQU_9C6Hd#1HjT6wdgPc^uFGm|7e z{3!HxysO?!1Q6};Q)H5={_H=Ql}i*w6Xvb2vc2^rM{oT)xVI(^RsG&Nx;11X&r$W+ z);Zi>3OMSRW9#ubj(YqixE_<|yM8@BqJ56!UW4*zoe*?H*Gxt3H*UqUbv_t}-fZUC zMmojONWT-@NXeD1-$a}W3pkzwn7~cITj=(^Vs-l#^$x7HR^Mjt9G+ZGxnhpRV|JfY zvcVc03n$cukJWMoEg7sN^S?Vui4lbzD6g+_9KQDY+84=BGmqQvUo+6l3DopXGSKc; zR=3zU$ss|z?8cJ`;^-sz9@^}=gnP}z(xFJF zA7@Hp0ny7CaAdFEh_#2JJ>8e|*eg>CV9f5z`psB#D4NqZGl$g0*e}zRr|)VkpC;91 zX77Yrre#Lsh|uiA;(0}jtx?YS!A8L6kK9I)hL#zEYH^#1+ zE}N-0dz#S4^~saN|rIEz@Na>kU;l7h=7k%O=(vs%)kyb->((!c`MJ_yd_0-H&mHGB?} z)SX5cldwRwPl7Y~I-5zJ6?~g&Hc2mj5k@5}Qtju!seFS?WjDuS%&iWU%}SYsu?Y)S z`&Do@lWaD7II`)uSnB1YFeYJvYJUXIeZBReKSfONGtl5JxT@FWamNQy7`BShYEDG8froZW2Q#wdPM4 znXp*3C2%sA*ko?zNanVhmu+6(DvVB8wA#0T(}~!0ZsAC$lPrKYOjw}WhrpRs*-UQb z$mC$nFlm*;!b}ntr}k-ZA~iOV+XN6vD{~e`BrHzt^Wa1-vx(d;fJj=Z(oFQ2@6$Q2IsQO z=5ilLE}fJs^`VY1CSieU-v-WPh0WxCj!Zfwu=H0&!l;Brs(l!o${TDd?-M~Kd|^5) zQtijUsl3Ui@_vp~I<*7M-fIc7OIWPhFM*SJi%sSM0c19NTqcZ6V66SPC-V8M3_XwW zpR8i^h}l0~8ZX_>r{gv|lr}qkb84=TrKGIlw~l82OLB=m<0}@B$j6{>JrA8S{?1hn z#QzwyLVg;)k3q?FAL1s5n|di>n*uCa?QL*6@3QIS`66_yLuWIeDvV87u-a$A+59dx zn>=5Iy2jab2M|UlEL!bPXanS&35x+ktrD$_tTLL7torOKN{^U*1-Yo?DZMGQpFHSJ z(Yk2=$j1`s_)#>1M$wpoP8jH9ZJ5?>X#?70puGm#XQ2HCx(^Q|sV`PeIoyQ>5yJ@THA-SL#e5ASrm{XLpaQ1P#Df&?)IK zo~5=MPhMIN{VSEb)fAdS7x2tB%=8g-QQL@@MH2pZ*Qo)4)1HimX-`9GJ)6`Q7fTAw z7$PDEC7(%V)x46|gAZ|9G~}?A$RXB=YO0bl2hvE*X7D}{tP!o8%HEl~LurcBWihI#xxWxm&fqJYLnV-P_f5x2m9r@fQ4OuuH$Pv$;zj zuw44PnKSgPfu1wa^LYPw0S5~&8t7~SjW-RBj8(x=m~dm2Lak7;Km$p<%_IvtrOoHs zNjJOI(UEFR2S%!OA4lsyj=3M3sz@ZfdS|!wfhHmf1vt?SSLd0#E0N?V!OR%Sf_OypYv6XnEVjre?J`gTat32U>!(E zARZirugfXKy8=1rgiwMH!zsbmWJ=BJh2&yU&n0zAyHti2)Q$^Id?+_NB*YP5LsAN# zBqZr=NXq5PQcQWP$=+3`FG|1R5LW&XNXpZ>LQHwvDgP)O<-JKIr*aGRv2Q;)R+kF! zK907O9r{On$ARxO#r<{~PytS8JFYGnPRS)@7{8*C z)O@&Gedo5vMO))`I0~qDx~R`r^69dw=g%pNz#e%!n`oXd;O=)JJ48nY`aLf6$*f!| z!Bc$?n`)lV&+wP@b0PeVKGd)fT* zoUnMWi`22=PDi}iMSNZl_r@iB*tL^QF3+KhUI5~d+wqXMy6j%Zm8s#bAH(yzi_I_3 zQH;A?unxZw0PXF+SCw+52)+OAW>d^_Mq}gt8wJ!`T*aQcRe*NVd)N%~9Nf6e#p)Pw z=VSKxO@yrx3Gbx$viapX%dwH)&d2OK3+wq(Sq@nq7M|mMY>s)(cnmlTM*_DOZB3~8 z*>E@e;Yr@lCYk5#$Hr(Y0-(LD{I$GXybaFreQb_-j)dIXuo*`JwznTo%2`U=Az>M< z``Hxp9242NA9p@x&x$AY9BHrxd<$`aO)<~;k&RXy3D{mPkDMSBoSoL8Psaz@MDv_4 zd0&IOjtX)wwKttFD@7S!FW!K*>O*X@dCs70yjzS6bZ^gcu2bi47oh1r%%+>?q{;&g zwjCYpUXJsel2yvkOh3S8n&&9X#vEr9Q19^cyRy`lOVtP2H1iyEx!(h97kCYiM+3Nz z>3qH|Oh3eCn&%|U0H&h>+&f2KSIY?ako7Q|WS&zpy_m$gx9EJ#UcU3Htd^j+CbJAvG zTpb0}9>*85dP;`QW*=d5%yR-~Bgaud?cFcqVQN`D4bJjWHp@Jxb2i>DM+3JPPhXZx z;d)bt_tuZIIp#UGvoW6Te9T@vJyBHTW#D-02{yqzhj})}(-8pedFn|$Usm%K=tI+! zY?65n`E2ym(ZKCRUDLQ*BzR=~6r1IPtxRWXZ1G^A>`KFIp2nyv3aGvNWgG2z-1isQ zWe>A?KE#pd#{1={Aoq6WOL934oyvTgP4i)nG&k<6<9J5Sr7|+Gw?5A1_(7o@M*+3xsizll^%F3~BW#Kv;z)6$r;Y$3xJFy^VKH9S_;dfXv__Nu&@N*hQaUQ~W4L ziW@T^(ZKE1*khG$1I;JdG(X0X=EfTPNWk{2ne0n#p!pP=<|73rZf> z*O&Dod~ki5&Gk`^TsKx+M+duiiWYIsQzCG?(kU)0sSl9?+*cL;i(P4_TIx*M%KBEUVS$IIoS znyP@mgnNO_^wUC_jtFp%>A6a(lrE|T=sfp}Y^IM1WjZ3jeQC0?Tr4WkZQjqac|OjO z=YTX>6kvN-RwVfgobVoJQ#`_vVlP$Xyrb!S%-$J#zES{hvpT^hc$6c-jp>pIfc6-k z%c^PUs@+L8!(&1jjsR#c<{}L#Go*74u%kZ5X88n1mK)De5drQwu&G;VrBHrJ&S$a; zG}}{bwoh_o`(Q(oBtqal+a512RdPzc4E=iQJe%!P9NBKP?T7&Piia>@VE=uA&GBiD z95)sZbv$J6v@9vNZ|X(p)ACDfhR<+hxbd_c3D{n&J)Tu%Xiq)O=J*+o9DBitb6k!9 zXs>LDG|8DRE6@+8F0x5}mLtiHWkb=x?I|}Y4J#^0$+w{ktHdVzIgVsEM%obq?>(`Z zEhO{|bfRR2P4)8}srK&M9p@bd)ZS^zdKWl}htvW`+Lzcgzrc~^#?w?pfO}7zEx_%l zB}uTUevu>9jZd7Tg52|E7UDTIzl3}3g11bcW%GTOBj1g+Ls3HS#b-8Z<;{wc2fy98 z%%*&tBjt_pS%koQx3d=LOLC!r4IOyN#QeU;7jBuBO> zJ9q?;uZqj(aAgfJ)pKmB&vB%h5|?*Aa4!#Td9rcn9O*op=P8anH|D`30ecn8v(VOj zjm`3T@ho>bY%gPmb4ZirTfi>+Yb_&r}jmHdtT~l5v$RFwXrK+-Tf>kc6g@aA$vD> zbNGcYbXM>cHoqG<^6MR?Y{MOn0A{be0?#A@_EfL3>D|bYUhm{oqqpM`dppr=K~nS3 z?)g1+{AxE&3Ehc2O&-rcBYmw7Y5hjDOknffh&)ZUc^&R}#2&f$84<9XT40mQa~EnL zx8o6eG32F67Wy&G>uh#;ZbDuRSu@?vhg^5+Z3Eml*bH}b3^TlIH-}-l-1(?I2YpVx z0qmfYY=V0@65QaRJ07t|?j;>Mw0bX_++LC7c06K_+{^k+V9S-+}6qV zMjQdmo(*HLujtVCf(o1AA&v|;xalZ>uA_JyJQusjrg)QJiaQ>(_Xz5IR@aO0$HFBx z$(uQn>{W5pJasf+dj}?XjYe#Sw{T>*A=T0Gh&Q=i6~N;xmCfx|j@)|1g*EH#bif|9 zQ*Q$2IW#u4+eA{^>3}_I6VNp(%WP`5i=?*G0ejTWKxePAY-;ZjNo}VC_E8IMwK+Dm zJA_i(;eb7AFF;#uo=xq&BB||kz&>iBl~`v}yHhB&9S+!|b{hHtN`X!7E|JuBI$-Y# zVY-yip?&h3Y<72ZWVhi8Ap)3vwwnh&-4@yG?%~L8L*in(!vTA?i!B!%Y>Cb8UXJWG z*lq+cdl_YT*IZ`PyN@Hi4H@N*N9gLXe?4uXHQ2z#--ur~o z+wqXSYy0W^4W$SjINxLwd_PBm8!9uR0NSHCq34xZ=<(&Z*c2ZSNpTcFdrwgC)6er+ z8M;5xKdIwb`@r);UqX6lr%U6d+xax`dGI^y(AK|(tPtpYUqgCjC^d42BLUlUTXSj- zen!zMohq3%8S{kfUvnm_2fF=~xwg=5E#c@_1Fdc5heL-Kt_wF4z7Q z0rISYo-@$%xCzV)xbMx220EKS;|7{Ypvgq#ZZ(Cb(1oLKRTForN6hJW`4(SHTf=a%3^|VklXB51cG~#-!%4AaLbkDCZHNL9Sh4^?4c# zqNYq(eMYQLj*w1-6Viv^gyaosu&qok;#pD2Y}lcl6j?d)cuzQad_SB#yc2#BcZyZ= znPeKN*>I0~DZ;QE@`&Y|9l5*}PA(sYlZzK$CR1u&FC-U>dM>GlO9s?-C+$ZpW07lH z(r3a6;qA5vL9Q%u62iZ!6T+{B6T(N@B7}6Vz)1-IZ=Ddn8BPcvg%g5z<(O1*Dz|+_ z+kV#FOz_rnulEUWE%gE1Ui@bvVv&!-$;h|=5*cv~W}o#WgXQ#s_o+cnli}p_gYA=( zn&+oai=Je#oK)`yx7-zZ_0VpN5l?FMhM6gf)eCFzX2F8+C&E zf9eGF=ivnP88|_C_p(Gzp)9F+e5-98_a_|g!Jk6xSD%NIh__!&&L-yOlhX<4WYha7 zV5JRfYfS7;81DONaC^nWoqTB=TA9C%2DgttTyIZ5KQn$I zIX#ygpL;bi2~6+@Xo!V6XAAM%^rg!)&-p>*$?Tz;*#IkB_ zygtC~nB7b^ULWE=7mL`kULWFiO)$Q{9`&9RLao=jiT0yz&kWy(>OoJ51#KOWe4yJi z#`f`g%s0ehUTx6r7-%|LkNDTbB3|vY+fdQ^d_CZ&LQcnP@vvlF>G{+ee6HuYdbqE{ z!UgXrH&YMy6Jp^Gk~qs^w+&&Iw+#yov#bMBshlg9hVdkXN;ce`boitGR?O&+J?z9- zYlUi9`J5Jw)dzLFR8p6qy9(^AgR1?)BSOOrtLWS&c6t$5e@Q^)k*fWTSftiXu#NOQ zcx&y4>!F@}R4A#|n;;wNbzIg7ZLGufU_T-jtj}JrD&eI!rk%SutkJl}x!SY%kXkL0srAzP>1dcB^%U4X{?dOha6Sj^Uqf{oca;KCa+ znQr0Z_yw`ihHqEG^M#c%G`pmco)7K66w9u4qPN){uPn7CY$h!-e1N|W2RNT^3*Zmb z1Ag*xp>En2caSS1;FH34*JJ&lSggMA`KqjzpiTD&>cM_lELh*MXufzGnAeZhL*4v@ zP#yO9WNfkUU3^G=xX(qs7Yyx%te%pyz}$YW9_Y!>1PYT_6tUEqCKDN=G$Ips^HTf&`h)uDGeP(-!RA&H#{iAxYepQ?t( zODb%9cyEZsYZ~^n5B5KZ1#4Z#+hDKd<>GB{xTLhz$L;VDp<9m+E-8J) zjZc7m6sc|X!To|*xIQ;EDQBV2JZI{$=EY*QVyK$g>UtJjktgcWKJb)KMfRbck#nhx z46Mf&>(QpgqV>7t>BXsA;a)C>-+!*wgZ-3Pus)+br>4WTg$R%JwR)_7DHf}hZ?lbd zPJxD+u7^52EYxCsVbl!nv_-ZbV4EcaH+_3gQY>EIR*R`^1KeUg+)s&x>!X)gZ5!~C zMgl&1|5z+u>)O_~+zUz`-&B|NBD`n*j(W_)PYX3+-!?RUQx4eyD!gkZEhT*f=fJ?e zswyG7;e`kL1NC4(E*7kHWov7*1-1s@yKU}X{Rx<5)JoBk~ z)PE-ywU6eDx|&xqb0K@}hSzJ-Ti8eQg=0cJmJjfFxm;9J74X`NpRNad6AUmO!%|8Y z)dF-_Nv?x@4F6lPfc;@sSuPfpaBWM&EA$uZ;qEyuRH1!`BN9aeN6^1skM(7-SbgEf zdG4Ovz|LjWG<06>59`7HfmpCUw@j`NGB|LCE?)jdJ>bX0wu|tkt7Z!c zJp)beU(}<$E%uGBbpvJvSHS*>+<q*)Y<*c)a)pJ|iLq01dTep@^s!VX zlR7zkqo7vpi!?m(z#N>)XD-RbWm>};^i@0?fs95tmO#gkq7mF(X3Rh*40JMqPDx#r z6xxj^E9^1QUIXnj(0&8m_j(l_(B9wI)z##0Ch%W8XrM#*dmqNX9;LLJTWL0?0h5n^ z8tY1Mt<2j`!dh(c(~m_ugM;T_-Hruh_D$zAxB*ZsAIgxAzH>?}9|LK)OQ#Xgr4u`q z%{5oC4efA7vFwTs%j`>3a;exe(-g<-!|4n)PnqKv>yNqlye%NoVj*_V6!&9psY&UQ zn!%0x;$1A*OPfPAG2wtQmJvlp8);P-u`@C^CMfkdv24tKe0@rKXvT&`F|2{9d|J=M zdp$LXu7r7(jt{^qXvsjxKq@^x*S>ZQr?`Vc^hEICKhet3zUc%;QtQZgkB+FDKCT1bW3luj0h*Yd8bDfdBsnN}+UUQi{U(goUeR!1*L?4H?m2KSw@yd)}6v0u{z8ENJZ(IIHBHB7@Zd zj;!u!V6|DwRv4|Ys5KLu*4=Dc2RYKZvw>D>idh(^YlQsvhOP}=})Axp85n!a~)49-Pa)Y%Vv6;gXii7se$lRPEn_bGeVrQyMfQJ%#xjoa#Nau1|*!$K)+;1m#)KCsb1#sVa zIa^Ya!Iz=J)b{|JRh}0VTOC%T0Jax*Yfpx-Op)z`EVpP21Fy`7t)NJTtuA@Pk=MKTL)*;+gk!Bi$$=r4-%^i|LQDIpvx9 z?3v1{(1XDqXG7e|F}u6j@k5;t6|)IGbma*)o7=>&+38UGrf#Jb@RmeRviaQ3kx%z1 z8U?WZ=hZy!tqeUZ=qWa(_i&_io8xdJf!2+R;Ai8Kaj}f}ZwE(Sd)mN?)G%(x=G?HQ`OlOwNgW*2-^_i;ART^xbBthQw~&H&^W-OPPE2HQTv#(Iz=R@Vz(Rmznj^xpa` z8|)#DU|qKaKg9PrHqyf!k-92;9jUZtO~Ufp&$F>Uz!9tKnc6UO`vo@C2RTA@X>G^o zg%{aa9}X}F>{On|51KyR*sl1 zpB)d@?8R?Jz+dG}t|Ih^*)wxlrW`Wj-f(8m)mS>zwr5y(N^houPvWueVBLwOL)V?Y znTeuIo4gTgkJ)!MmQRzuh-NQ&IZGKt8>-REd2gi#kC-Tz53y{_-l;b$GNs@(77yOj$BRY%W^7uNM$>(lvz5}+o3VT-^69^%=3@cT zn`M)kByurUAnMGP{<*ANLa~6T0vb3MOQ>l-dUNoyQcUA%39%AUm8fStmJU7f(>tCk z#L7cep1zkS;w`Mn7T-T97nRt)==Rljp?o2hPZRmflxJf3(B(5=$I!8hrn_i6NQ{rE zlw+!;K}3sU2~i}}Lwryy9h!8=4i-y?BAvb&r4%R0==;~;g`y&tl{gJV7g5jDoALHe z-QEZBL-MSw=3)_1MbtxlQ0$>89=gBgfnots1k^+Bd1C2Mq|8D{!vfXzfHOJ8W|HURpBj_&XMMt$ zgaxWS0nX%kHj_L@{x~*CePkz$Nm!uTi{MONU^B^c*pFkA@Jzx2)#kvNe2L8@&jCMV z;OuN+xY^TAVO9wXRa*k*a+=L0&sjz_E}K0=6~-kjRP9^9xxC2clIH}YO}1S&c`_@E zN?4@Yhrp?n*i`Zy)Z|i0ecmgKN?4@Yr@^V5VN=O-Hq)SOmDH!m!ia>$seK-t$V+S@ zc@Cbc1+esI)54g91*-i9IFkuBlRU?34cI10d*UsOM_8EJAA|Ea%jS{iEUnru+2lF8 zFe+h@YJUYzcf|%_g&1`vhTJ!a~(1!MU7gbIEfcTFo$< zHZl-KCM;I%Iyjlv*ktk?g|@YpBWMqsuwb=ia5i6Nv&nM++BTa_MhgvL#tDm7`!;Yo zue0goIqa>L_o27@5XK}dQ0>FuOuoWqlIM80TE3u3YZ75p!Xnjv44leW*;MizU{^b1 zHfy6Ij7wOk+Ao1~`5rcxJm>S(LfNJ*Uxbkfi>Aa57(GlgV=iVa+g`wWkrrB`j3! z8{k|nu({+pX0gU)vsOC7xP*nO{T(=$ud})2IYqK|#BAR7M;M#1V6{zeK&RN>V6(|{ zNM_A4o3$ts#w9FN?GQMZNj8@}$AJ1Qlm6&g7@M$QwNY?3-^*r`=d4qwV4d3fNf?u` zK(!0tOv-E~d5&_eF-dPzC5%Z}pxSHTOs3dO@*Gs_#Ia3UY6;^K7OJL$bD3sy$#V{G zExFEU|0Rr0ShU)AfYX^_)5&w#aLvimTa^i85*DcT5pX6IHj_L@Dc1~>(N;|uov>)N z&wrT zW|s8Udcv551*-iiIFl-yNuEQ^YnRbY+5ifp5*DfU-@vKV*i>?yXl~YwvJKfgSfJXr zBy?VVna$*5E%vxE8hYHUpqzp72GZ|TD|f4@O3JJmWs~-b!i*9YsrC>!m032GM>tYh zt14*P3Q`!EuvoQI;AH05WFF;6X6+FzwQZ#^B4KfA5;&20Hj$5WB(kA3l0TJAT9*o=5*DfUUEox{$)@rtj#N6e zlsax4LTj@sj7(Up+Q-4kEV9WQ=169(GNgG+SYd3!g4KQsoXrxO&8IoCSqpvW?Q4ZG z2@JFsC!CdhaEo5;Cl7XY9et~Mr+Nfk)IOr%e8RB=I(`(5;C8iR20CG&lL>SxQAwfQ zQWx4|puGm#XQ2HCy6^QWI*>pI4Ri>9^)UYRXaYTJpyv$qJpR@f@IUaPfzBq-xPc}T zXfi?0^k@oQz{@49_3(E{Qh62YN3_KeN>)Sb?s0$EhM#f;ostf7_%T-+eoSp6UKanP zU1$dX#Fy|d{Nww2-{RkBxv_6!(!*#-dJO4>WT}!W-!4!Zmq$eo%Qs^=R8rc&LOM;pJ{lUHuhwt=-AW8RtZ&WVW;8mSbYFQ z7lXZg=SRC{FFx|9nP37UvddK#X}esVjen4QTSF4SO;yA;zHFduV{V~;w$Kh6|8Q*M zZcR%sPVYqA#((*KnvF*zl5Nq){Z{Pbs^|@rLTLkK5=dz=ju}YeT@)!YWgit0$Y>8Q zVU3m~W0jvKrzN{1} z*E9?^kC;7jap_nUedcb}`to>HyLN9^SMAeC)$CSBN2+(LihWNL9A8Jm_lCHkGI=V3 zJ=1X|cwD4uDMD7)mn)Qc&24AbAa!QY_&A z`(l2hrL<@WzJCag@69&fWjU2qVzS#o_NU;;9?UB@lVy6v6=OdS2<4sN-3so!Sl;?L z+FEG;K9Wh;Exntwq9IKDN8niBVlkd9Ddl9TTnu$24`ALs&yCcb=Pc4sj^Xp1r2}I` z2dt0r@h*gx{3x83?5fj}WLCu|emPtMrzLHP^&x~l{Bt;c*eRFF!u)#L!PWlY8r~@`8|aFGt|rjjT54NY8XojE-aq*fPvtY0@;pqCTqdSb27O5+>mgFz$@M+E#1ANYiFb4JZmYMO=V_f|IB8#uCk zzYnl$(!-H}evc3ObUvfxDaAU%sNTk=dLu`w@AKjHsEz`1Khx)wHZZ-N&2+bLrlWv- zn@`6Rat_*g-^1p)ha=DXd}uw3?tI*SdrnkxDe#bN2bs`;f* zxr*??_q}YU`-C$c1>}2tzU;gWm^8#%e@ymvSJ#Fv^55FtdG2Hr-_Mcw2Ym27SI$)s z?`ZscefVprFR7VK7J3KY#io6LBkd3RU^mbn1p(~x382P1PBj2K`Q2>N2RV{{$cMRs z^o~cr#fN@2T-i|g?R*cL=^>6x`!_X@=}t%OXE+h=x*$Bmd)W+c63%d^qxPpsC-qzo zK6kc{P4i}sGzX_iBLV$hpTC~Ur}Yf{A#6XJ>@6J0KHx*_dF^Om_gl7P7kUB*WB08h z`-t|DSMViQ&_jCk)!OU&poeu*7p+&5X*)p zn~%gcMYX9bvEEQ+^Q*DmP-XMCCu4s@^EZDN>kUMU{;b>kU;llV@UIO!LL}#j>I5%`e0@MU~C2STa}cmCcvp`zfkyJ{HHtRM~tj)*Gs9?#6mUmCet@dP9|s8sGU+ zW%E7p9!{0b=Ut_Om=+tbnt8h|Mz3);K{dM*#L#pDmArzpp;b=9p(&oZUXKjwN?IX#b3ZI4M84cbIh|7PEgbp1>FAqc)WBw zp9T)DA7azYv+qsNejEYVbu8bM)%CYITAMLH%x0Nqo0~wEJ0G^6<%yyqF9X~1BW#v= z_O%IOIRdc#EKg?T5_BN)D4S)TJ#B(mjsR?b8;nUkUsm%K=-yKyX zY+2-QH0Sv0&PQF(aS3`qeuB;MHsKt1I%RZd9Nto_BS3o zujb`!_BL?b^%R@vdpHukKj4-k62Sej*LfX!n$j?v^Kj+BagB<-ougOKs)Ym%ys-iUqOwr`Q0m; z-wwy@_tP_SE|rmiZTJM6<9!@C4)W7c!0o?h#O23XJq;dNpJX$=pCi*j_l(g%?$3na z*CW6NeTq%{H%7k=0X#cJ}3!UmZ%_jJMjsyoqU7e2EpXs^`U;1-~&F}$^3U`9GOMX>Vve0vZUu2W~5J!@OEI9(O{VZRS%V}s+KFenLVZkg%0Jh&>Ps-qjsBt#Q zk8mV8$X|CpYCp&Gw+qnqxD#xS9~I1T=cD#}Ydjnme3toS9m(3p1>D=|vVpD`=xPGZ zp;0uSXp!SqdRzH5dgihWoxwd<2lh_YhgADJ((R0IS1W%8*Wz}#^D+Awz6#Iq6q{k5 zy{sA;?tILChG$A|rhre1=h+PNY-82PaOY$8Gkg`E;R|erdA6`>WVrJ&`?K>i6Gb@< z9b3M{=9p&-EC2bSwi8DHwV&my?Z7+DW|?Ont45ZifZBh8nACGQ=t8!OY?664vhv@- z*rpr-(DfW=b?D1fiOn(3E>=MtcRXnSP3k%D>a`g*!#q1!?ex9Yw5_<~A^W51IVGn8 zpPMeR3Fg_nsxhkWe9Zpp#Bu2I(*&Deo^7lAb=9^3cRFJK9z6AC1-y)WmQ66vc2$jg za0EctotVapMg1nQm%hv= zy&yczSJ^c4Y+B{7cd@tRNWk`6^ITajf?M+(n`Tjct8AL1fZA`(bGR!k0;hSNO*7BN zRgKmh3E2K~#kuw%zQ!h+XX7gW%Yj-dBoes&DWJ(thDiHWHpx8u zS2doSqk!5UX-~>U1>Rl1hfOoj7FLasb|hf?t@%Rv0zA#Hv1#Vn#j4Soqk!7a@=SRK zp5+BL%RGBoHL@H9)c#YmoecsHz+PwbEUKTCKMU6Bxc&BQ=SP6=F5Y1C%(I(Sqdi9f z^=f-2HVw>klFc*Ec2{ng_A^W(PGE**Hp4u7 zS~cdrIv=xtPo7aq@E6S~Hpe_$S~c#;Q9$j#uegAxkCqkqtL8MDXr4{28t*G20^IMj zr``lVQ)JjQ^K5I?=(9T?v)`KWJgBU!=D=xI*fjI(Y}IJZ5drSEX0lTOM_`L=ntArN zYP9Cg$LznesBKZeBrmZ^7S-FzK1f9Zw%?LT4J$Coh)puj)>e&{-1(UObp%%VDlo+= zn_`}gts3hHA^_TN#cjy&X>5vl_O)uX;?BqHw_>Z95!i~C*%Uw4Vp}T%Eg1+INHvgV zpk)JPS5VGCc?0Qps+GIdR3&9LT5$wG`(v(J86z;uSvJc@II`SWClU$R{&(rP$PJj| z9Gl~#969!<1?;%G<01QZV^ZG+OmLn}@Z%f_ZrqJKAG3cqwo2Q8Dc0E(Kf#gW#@#pq zp#2=rtJw^6L$3mx<0pl390Ab&h-*^E4ROFT)^D;|eu^W@jS*KQVEe0orm|VJP*R~Y zT}3w0!yJijtp14xZh!1GA?KHXH|7$X<)=Ba+!%XxKIXc8SzlJ5JGYhVDAs;d3D@6y z1uZrvLX3t)h<}HYZcgRP;1i*~qaN=+T?E5BTWAN~57*=UL$P@MJ5zG`W)dkf;1C%z zczH=O>V#0&*L^J=>}?HS@um72HGK7tP|)=(oY!uUfW5pVeRrEApcmSz1Mc#Y^f5RI z`1dhl1!^AGf`xPJN6a3%xOA+FK6AHfeR;g9UAwodtM+N6s=arKd{WTEuUFBdS{i>s z&l>1C13fQwp%<`vzi6Pd2{dk?i3FNVkc>2%LKlv{RZZNf9zhrJcSw@SQ#f`me8tLz zHyX%l;be7vxe_jGSd&dnAaYFvcf*O`d*MXjk7luQsO99ca{H!U%!G^LeJbL};IrXm z@O^MHs8a)Mrb2Dx-__a3?}QW1C*XwRuf(zyL@y{sxvUqtX~R! z5oAdzSyIZ$QaRjZMS!&2{TJ`JzWo=A3VDJXt7^-2g3E^!+>gQu?y#@Va-HCkSrrE@ zA)A=CBtS>I-VP_Ee-0<4Ax}tfp}ZBBb*&5J3d$sqVzhQN?@#7Zl}rY3LbLWgx3LG7 zq}^!7Ok|!}xK>h%rGxG5+qMR>XzCDTmtW;h|C^yGTW$Vkb zk}E7^l+n=>r_!l2$4`%(I(|YKzEQxvvoB%!;Q-e+!3+OJ%d^T_IqCHl{{Ve(hen)!{F}Dq^xf_KzhLMX1`e45buQd^=pcEdS{edO1Seu_+56}`a+$>6Pe?qi^o&S=-A@e@l$eL zsB^^ZE)~s{+WDfh;mX{s z<}1E1J(3&!EIAgxu+qI#K{MUHh1mzKjYVyEIgmp<{eLF+@eZwXk=qveT zMk$n0v;|@1I7?0Lq_t0w3Yd3ylEvIqgIShUO7THQz}zC2ahf`>5Pw&s^i7J!=4WnF z@Gz=kGObtgkrqTHOv1Ot-F1-M!DU0A8XK?aTZmSkdSAyzDnM3MG$&(}%qS-_sbiO~SH zFyLDvB|)-fnWSujZ%Why1i^<$kOPVUMTvsc?wM(zx-m07n&}Y;$_yksmN_zg;Rkee zBgYH*^Lic2NuWF&t>v4*d3bHpN#MlEdaXPlCz~5bSqIMbjlE`)#jWnHo)@M#qh`;) zdV$vWNhU0P5`X`5PSvTZ)90w1V^x(bATV}mD-;(S|6O2X%kgA35k&UsFnJ_L9;G!! zkI`MZkN)oyBtoLOw^38(!r1S{8GEt0j1%Q-U}`a@Zo`?{TEsIc`Rek#V8>?ttX#zP zHk`4WrGz}FNc5W$>lWNqcvrZ*p@;V!+iAjP?daRbN`Bl?`s2?0k5|0knFlWoE<9lu z(i4cBjKvjtiDy2Gy7GkJj91ji&V{-6;LP19(XRV3DJds{d1C9tnX%>A z!AB0Bl#X{iA{_}II2i7A6}L6iJ#hM ziM9y(7Nw||M!UzXt2vP)59P?o@Y{f`v3Sbri)6!kT}Gw7=V|&|fBT=B0jr6uZYMT9 zvaU$$aiR2CqJl8m7C zrt)#@-JA{Z?d%9OmQfTtycY!(+V`!9cUoZmcXvJyEG;M#;HrxZwCmq*E_sdsOXyE7 zc17TGdzk=N{qU}BDiPp4?gRinL0f}?*{XN-kI~xk68sbH@PW^=W%j@72U_jP5&;Z% z0sx;Xi<2Moj?>j?r^4lCP+D$|U2?Jb?Z9n+R?9LL`*nG+)?T!tfn9KGFBN{GUCTaQ z_=$Ecd)fMl-Ct{;r9ZjQ4*0NJtX(~xc(p%pCjs!W(`qKe+{f!@PwnsB;R7E4tr;#Q z`0iha=HBXSjptp30Ps<)Sb#b_k7@6v3gnAjw5^4o=;E=X@Dp7;b{BryHKyHD_-Xf; zcAxc=v#_+&pIj^~z$c<&RlR>K(jx8z06v=(udJ2;9zURHA95!F@F}6_D#GJO1?`vI z!2>VgtP|sPMG~F-F?#L9&i-}{Em4Q z!#>&Fc<~0iIYDKi=S5$FYq?(z&Ii1p(N08LZhCaZUPB9_&gbIFl#-0mDjM2SCaR~e z(3qZlm)CWUc3kRe@NvtfvRiCU*SUK3n`ks2O05>1?iTI2=bFkcThbou6C>2K=VyB? z7e|i`WxJP~2l6sU;(b-RoSE9wjuZLj6WgnImtGJnmkS@b1?K}x&7K32F`TMz8B<{C z%8#FB*+X%zTE}Q#Y+0Jumaevsip}5-J|A}x(PmW#)XsxLl}|f?oogRZ;lj>l{R+s= zORRWyJ8-7fOs%%66%TrM3TxTv!pdgJ3dqXKEGwHW2a|db(E=*U&FUPGt?h{BHdPLm z?z%4BW)%|5(3wFsB_%nXQUgQR)zD_O70A$QC1z;ay(vk*6IO=Im7Fs(ATWDf&2Cni zfy}<#9O|M(4fp5j3KdpP`-kA0PZt@RSz!k60MoErF>8yjm^l$4+zOsi3?}FYeiv*dz*-Yzb8~kL( zpbsgY6;wN&n^`ffv-?{=7Med@F&S8x!#mBAP>|_cicH@h*JaO)uj#iG)j|fge}H}n z-JT=+!lWZd_J>I)=VNNK8Wv>x;;?sn30q;qFP_g^Ys)ulO>oyEW??Q7W_d5jO+rOW zL`3J!ORIA9uiz&oYXa9%g6-iTIqXccK5DgkH!GV3*gmNz-Mz5aZu`L4bBt})aD$A! zM9L_J6gAv6_q~FZuV~hwuA*{Xg;~E2GJLbtub!pz!1T1@+WfV?#s=oDZ0>_Nb1$=t z=B%;Zu5Nj1we`YG%?{%%*}^Poc5jW*3;X((ye>?09>JN@2~0!DxI2djfqA8)br;T( zO)N0uav~DDs);vM>lGJfR369KvYFYEP6`bIlMLht$#>|>Rp`*?;(e@Q9VIF;8HVsGB}-hzSf??+0&dUW7ZOw_H_HI zTx&)fTq{(*Ryd6_cZ)L?G%$FMJRBxs282C|GdTPBQi`bb<}g^QJzuIH!5%uj5j4c*%%~4_58}+}?3YnF?(Tcx3bkeC-g(8kvV|F>37l1(AkAbWnP^%~xjUZ(rmgkM z03ByqXDiLb)u_9g-(V}fQYFfhI8!=nuep^5r%umLof(`ZouH&|qe}2H>iu0%7H3K) zDC25S=vRl!_92`louG`Q ze-(r5`L?yP-QW|(22$%;<~+{wtBb12(h5w-8r0zV&x^jyWH@2CKlF zRbT|?3(gX6RiyRTx6om}H}Q8-=lv|s(kofi8*+Mpe$*Ny+I6`@{vghv&P$zb(BLM+ z^P7wh;cV#~nub*+9uz2ff0OZHoGG1k_9;0{S6X^s?D9gRLT(kLOxz|xIh=u=gA=tb zomxaT*1&)-)Vy{H!6R*@ll)` zta04HkPRiFB&{xh?t1kH9^hRE$WfdJtaCg-O{C%qZ3UAEd>~AEXuGZ6FgYdgbDodm ze8BnqGLxWXI+hE#+U$du|0})xe-dZU<@EE*;fNv`SsK!=OzCDZUzlZAFW}7T++mvE zySqMa1wneHAbk;MO{a*?Y~JL4%?$#z)`zEGz?s&$u}mvQHXRh~cz@0HDV!~x8_Tq; zX58(i!HRpO75CFPQ#xTe5Z5EJyK?lvmRGXnIL?+%E<{@s$94L3fvYSxu;!Jl`5Bxw zoyeqj5PI6(*93truVl;5;%w=>3-zbz7hHis`|I-!*XM8sb#8~`xGHDrUQZDe&&(;4 z`aI6ojqEl!rUW~x_s5nm;0)>PsB$Kw1UqUS%G1Ayv!#>knzf61HfZcq2W$Qc&YDZv z605qas0i}hE9JQpI6FG!F>1eL$ZB1;%OEG3lN0?K&d|;c;1I2k32p$r&x(EnXG$l% zb^8H8h1Zs#R*_q)_$9nyjr4GE6Xs@&5#gkZ6v?!bG`1 z>U51ii8F5g7Aa2e1l?LUxP7?N?ZfZltmzy|tvMS(%IkT``};Ukn!{2C70I0BD9PS^ zL|66mn}u1g`!%FtX~V9JLhpMGLka2t>u`wqI?kBR!897zGfFJ5Y28wyZ{lp4|Mp3F zGOHw`R~M;QIHX!xQ_v)+_77pdh4X>6>^UwWr&4Ni;Hm<q2UUx&o(Pw@7PDN#L5dmX1U^*jy-Pw{hN_d7US zJGI3LJ(i^(t4H*hyXU?N8+Fy=a?q`!a<_^<$C-b*eV#V-LE6jFRg}9i{KC8^`7X|^ zE9kA)7R$8hEho$y6L%v;$sLc6kvqdKx)ZJ{Vbwl8($GLonX2npKu5NPJ!@)Ltepu%pLr@aPTEzZ#q70 zR6h1XL&Ks5^AECo)3ame$2O7>SxJ8tHh;M$OxDu2a_e&B#vHjRN7m=a2Dk@XW5 zY*UF~?{O#Cy*R-*{$-}@ZZh>s{&i|qv0U9Ha-A&vv~x^5RrqPwnD$8Fr`==PW7bdX zsZo1^{^Y_F@5c$dzOpAqbeBnRC1pnn3T+?LK2Z3HI^u^)^t#|quXf>j(SAtoE=?-w z^@V~$RIgtyQE0-QLLE4TO3qUmItnIgob@b7zg;56cif55i4&t_-Rf7*(n|(Ct+|vY$CA+;XfLV1M^HPPq?o>E}Q=x(z zm>qS!a)Za*3DAWT;Kt&u)^>xqoQT9^uOxWCI|+{CBq&)9Z3%Sx;^3hheA=A`-8c&K^TNqX5q`&=2oDJrA*s{*CJ#Mf+MNhJI1z51yC9gohUB!GaXB!v!uHtk^RBkX zQ#ct)76n!wNM&$)*H%G;+udn!8mB=?ioo8W=^cuvDjaa9!lO79O0J;or7@z?gxRYN za=@JekKq)kkRwn9&Uz=o1$PoWE?NS*MSA50UvMXZgp;5`9At>v?^&*V$(;hSPzC6= zXb`V_;2+&75XC7_@wk-ss?&qE{6ntN0tF{Pg{81xj(WHoyw{xs12_pPtOF^1$Yq^o zg}f;2P5~9CKuKQ24oe1YaP8&QiSAB?L7WN|)&kml-(8(Xg$w86a?MY;6C;5Wqk>Ch zvXM+Qt)|>9ooFWyL2|5?pyCT;A>P~?taSBuj5c)}yXPf0u-3gGv2~fcW z=xV8WH3Uh!@i|xNLKde$1sCveSetf_I{}7p0#tB;NLu!86*%Kgfnl5i6>e7P&fq>* zsIW0;c9nqhzJK1GCQsuuDY;y;6R3V#H9Yz5KGl*>`}bg%GrE zG2M3lt#D}hu{#l-#ffmsTqiQ*^Z+e|@N!35`(amG@&|D`R5-!gI=EVTD!9TPcM^OE zCqacxd018Ap50|W;!c4N;}ob63{S~v8V>Y`;_~&s!g{I=Qy~h)`sDD;Up+oC+u4iF9(ln-*czH zr*R5YZ~{-~b!(U1NidF+pu+O#@tA9EL(Wy=@EM#475u={VZz#d?j-muPJ#+2R_})@ zYmd9r;d3}0D&&x!&mz`-&YcXO$H`FgrLVm=csHh3`;0sOFW~qqtO%Y?x7B{nodjRR zNl;;D@OUV!_P6dt_!XQ8CEx$sap2i3RqeXxU2TjLIQ$A1cHWL4)!yY!gI~jGP$5nB zayqB>pgRSA1E)ZR&A{!`R)uq;rcwb4x7cxaa(qds9NvwB)IREt|1}(cg=^WmOiIC}gW6O{X#A-=J-&j|qryFt*W>!MAG=fGw{a>|*fl+#a;L5SNb#Dv zj{fALx3l52yWNTKyEqXlWD;JERMQ@Hr@-&y6ex*|dQT$L-tSJ2uL;t_ zK3;e`z)SnII}N^$)1X2+QJ1+_+V8lN;+r@rD!uI1XxP1PurGmz0ZY3Qp?J%m-h$U_5#bVi(TR%BMh3HQ%w&6d*300}mv(9sgwCx4OsB7&i zQS5GaicR4Zt8gFe`7j^tQFk)@iBK6lpMj&Db0@=ha57YQC8_Ut7;W60CV!68q&Ta! z*WS9#Ows_6<9@J6!&O0Eux5{!P1VS8rfMuTA$!fqIABJD9J?5f z?d>~7=eA_}dX;oS4J&7}nZ5%`X3)@6eZ6TpnK?1sN&jBP=nE@D9T~&=C9N7v^+k5= z+#^SK_V2iRYa|wn?B4QJN*yD|$qr(+y4U)*)BU?r3w&)s%wy7iOIg_b-&o-MpL#dX z{tvBgXkeouwuZ^JO=LTbnVmVZD@S%;AbYx&WFvG+#3KHbh^t!G=zojFs0WjRIBS|V z#D)L2o30GM&w{_gh>RNGFU*;Dru|?kwMG{my>Se}pX2i1ww}))rpEVzKRlPe8_VC+ z&vX8TvG}(xY<|+Ukazwk9$47UpIYGjA6Vf0S?=QZ%eUq?zoXiVW`Z~;0it_g*vI)# zZIdFiZc?k-{?!+o^2fzqw`2BdNTKGY5HxS<>RL{Z#kY@9yXB90-#f)w>}r{}Tp`WV ze(r|6kMNwso|Se*iVI|am~?U|P+8y)18p?k31QL0f#2}7Srcf(^Ba0ru5_mqEH>JG zfz$AuMmrH`!__7hXv5X!Y@iKSn~Q-qTy0(swBc&=n}If5ZN3p`!`0?518sQPxVmnj zuhSREK#q_cQFDa%ufDjr|%Bd8{T^J?neV{c-s8%wm=)6Hm3u>;jTBQ-Vyi>&u{L(J5|cz&}d(1zB$pTx|w} znBrNJ6jz(C1@BW_ZC(oUVy-sd3;c$w&2xd@aJBihz;C$PsKJ{rSDTLp zdpK8{*B%Sb;kZ!`0@;fi_%i z7C#=GHF;;v4S_aXziA7!;cC+vXv5X!bf67ao54UEt~MiqHe78!8EC`R=JSCzTy4G* zXv5WJD$s_j&EE#vaJBhqpbb}>WlscWP2O3vHPD9ZH#-7txY`^JwBc&=SfCA88$Hm5 ztIY=kZMfRJ7-+-Q=8J(gTx});ZMfQeC(wqg&EE&waJBi@KpU<$At^X(^3Iy?47B0; z&7MFTt~OnPHe79_KpU<$nLrz^HXjbO;cD}#KpU<$6M;57ZR+`zSc^GPLQ<2eAsKQc zu4G(&EOzlaIX$p-jC}67G1(q5QE@PwwjkzBlY4XIz8txq&NqL6&gpE=k$qv(amC>p zFPD8X=VoFl9U+n{8X37j^Hzdj&iMjfbhTj4Id2JE5Sy+x##{et znMUi+mA`C9=iGj|$_{JWRP1?UG+F3UljwP4%`_$Y{x4FW&JQ~hX*a_1kXQ>2U9ut+60p)_}cuiY~cykn|$q& z7EFNT`%N%)jIT{FJ&Lc*{lQcYZW8!Vpbb}>V5%xVriKH*;rdN51&HrAp9%bi>o>u~ zS-#(VGw>U(-~3ge4Og3g4z%HFbA2$$kE_j1fi_%i-WzDc)utoRhO5n~KpU<$!Bka# z?sq=$8?N7cJkW-#&F2DbxY~R<(1xqc9|hWQwfTOa4Og3g3AEvAv-F+8mx-LOQ?*+H zZMc53EzpLm&A~t$t~QSb+Hkc=1ln-5c{b37tIZ36He7AK5NN~I=C=cFxZ3 zzYDbCYV)%|8?H7@W)HjNw5r(rh#^E)2KB{-`r_LIZMc53E6|3k&5=MGt~QSc+Hkdb zGSG&r&4&VQc-pw?*hiZIUMOns%eij7*vQ)Zb{c2F9ey94)3EQ4cL%8o$4=Vc1lsVz zL;Fdf4Nsf8FCE<}0lhxY%vm~y_5@1@Z|V3*pbalPwDCY2t~S3BXv5X!>wz|0ZT=$A zhO5m?pbb}>Ywr&BaNZuiF3^VSH+KcvaJ6Xr8$_VaVCf>< zudgd<=Yt(+?;YWh-rzmy3e$TJ9qTwO9qExedL9jTg3bC254K**uLaw4lpdmb7R&ow-tW5 zeeB}3>W=MW?Cx>94GRd6?XrBlqRV{q!Gwfc_iWb7Wtb zbmYkXFzLLIeQqp54wA#pXTL|aYv_NLbkTqK82yKj(?98WGbg19U)B1NtB}!L={Fai z^P8i;o35@=j$>TKZ|(vatn{0^X!}J}PYp{MBkh%6Xs1>+G(0zUMdLrT`pU*%Vi|wY zRT-b7uYWC{!&!d0xvfbV#gI~Z#w){@tODFc!CF0b25UtA)Z=1}_z2EZS}addlSE0= z?ZZQFF?W(Ht`WfoQF(*-D9-q+3(JI@R+5GkSG~<20tavr{U66Uz)H&jB5G1kN&RU( zA?Ybsy9LW0ogG3B62mKGt(?T=1+>}a>_A|4_cxrCQf?Q~{vz7!(L^dRyKuAr0?zD9 ztwml*sGeO7&~<+IPUk+rItdhh+%ZI z2kd)idb~)=3B{Ekyq%kb;FY2D@ypr@K7+Hi)m`tn9?Qnv*}8@oKF(c9GdXrK9NXJ> zDx;(`eZ5LLp@x;S*-YO7B{OK~slMK{oXngU?xcS&WAufUp^l7U{nAhpslMI2_9)x# z-X7V$C%RqUx_$eWr&8+J)w~v7s43~YXziT`&!*B!CZp;}R{`Q)v~KDdkNgrn0I_FL zZRI9TnW(nq0s42=(h{(%d7b6h?y4W?Y7;x-=GC{hf3;o5b|h&iX*p`BPocfv>@67> z@`?qCH5$@-{W_FQQY-4o-r*G5l8={Ja-*j6Vv>B9bvd6?O%bN|B@O@EKd5W}i`OD| zKCDKr%7<%oVymjwapD6?KX_X?Q0~LzXyuBa`Jb+7-@Fe|~r?A)AbCwMMC@0YH~f+b(L+tr5_s?F=Ulv}r5Clw=` zMqk|QE?daS*2)QXaBD-<9N~SzX%7QApu`meeaugl8BqJJg&Lssyp^+uz0jN00d#<_ zF0=2(g=^q>yf)QybFqqXIKsjoSPU(fc;@LUbN1K=U{Nwa2)ITM%n&J#&P`W`Wfq-Q9=0 z?#l-5SYS)f;d!0=+`yxo_ZOkTD~H|K>FqQcs4+FNzA!mWRCpcOmN{$FPk1*g^P!4B zTd>hv&wcd z+BnaK^L^W?XCaGKG#u8GaXkvR@UI6JW?$Ra)56xd{RFKF2gmQ1%dA_+ZzQcd;r(ev z9t1N^;u!7fem!ZZ$t?Pa`ZXM;<*nvt%V101Uyc~my}Bt}u`=2twCfu@qy1Ky0fThm zWF2nFtgZsKeGkzdp5P$;(=r=x)IRzi&Q*lA0KNcSunDpDD%b2m(D|P-NH69g*m^Sbt>K zJ=?c!yQid0(8h&cMy~C6FK3?*f~CTUytlK|?^l!XSZSq8{k~tJ7G>R`Hfn#({Y+v$ zEcFZgBM_}&BPV);+xOfRKO?m!{hmt7>0x+`Zk!XN3*C$N1zub>inYdl#<~ z8GK=IbdD3x@2*Mny31lc&kfcK!jXP@@eKCRlXE7 zMc2VRHYfakxKK};!5Ou8x@Yi(ONN3i*Rfl|-X3hPb&7@cF-sk8QGf%V zo8!Q5@|LLiumI2JMk2x9QioC@Yu>?OB}oTY71+7ejNbMtGL} z1eBYabCZk96oMFZ)y!}u>m`CDnaL3)At?F#%tc{_ULgZeF+1 zp2sP5-CeZ9Fw$xy3!fG9YPpNfV;P)0%fCesHHy5@Fq|KuY_#LaM+< z+*BgSqn;fz+l+4wm%X!_S5~*x=gR7u>yTGg^*jk#9&Q%Xf<64w91mZxwbDTjQs@5S zz1b9eZi(46spN>TaK8lz{JYNn-4j=%=nUnJIsW~pEB`#e4>k)vcet0D}MmGoEk2e%8LHFQ1KJ*!N(BR!B! zC`ki7RKhGG{j*=EKAZ0xxp4FG*XDEVYG0q%bl>IC&HG&R9~LTkJ=bKb%Me|Y!B1zm z%~_47Z{Xz<3*d41zF@Mcy9S~5SJrV=MyC_z6-Y@sv2asH?F%~=Zs^u?ZMMF-GUuir zp$9VX0)2P6e`{}Wtvnyz#@?FGboF#n>zc#7hE6L)NoG_%3HH=|b3Aoke=VaOzLU4w z&WAYMvy($N?~gY}c;pM?>-&1HQP#ziHJPeY&YZb?5=ele;ioP7bL6wjb+3hH8~Jh z40vvJb6`j>dQn+9vTaD^$*huuS3174%#PZjT?;hLs%N}feJd?9AD2@p8nWP%(B?8L zZ`2m%6}K z`S*oNUeA+Y;qIe{e#Q>YNbWCNwHEFpSv~Vks}kJGJ3G+Z(t$DqZ`9`Xh1A0J-+C@l z1^?|vFHpzI{5Lol*JG5KRi$xEISVg=4qaUdbpNi{HhT3QQFiR?-??p%Tz2=q_Z;UE zWdWSDv}0WO%h&K*kmfvUL7JP}g7s(gKMQQZ`ozNKCtZ~*XE|GedGtPaE2XIBd1FS#(uhnCEsOrsHWmXu(|DXmag8UZo586TZg& z)4z3<@SgYI#x^t3zOlgh-{A6}>!%^Vw#%R1U1Mm!HLvL|bLkew-nIN`-rlt!`0II) z51F65N^$d`C#gx7lg~C@yiQIJY#k$?dv477<+d^H)T)LC_S1IjZz%ROi3Oa4l6!OH zz8txq&YXCFCO+*svM)?Ja%6v)baGOo+v#P;Uwnyrzf+duqNh_?f^dNh=14q861kED z`Jz?2Zs>zbQa$Ic;I7CEe7I@yOy~%U%`Cb=M&y3wFS(IoCF}m1$nzHA!_aI+4pDO5m=iATMZ=rks z*4H5Uy5$F!8%S2x?yioY!qLt2gDW1^=0UNV3)6lVXIiUn(ahiND0h|8xk}(aVJ_G~ z0#9p3%y)?mIE&lYFf5vBYp=SRd|}3K7tWfE9VZWlJEWc?XAZhDq^skYw&p+6;I&@U zE-t<=W5m?t17lv@8(kn;j&pBxT|!pTACS|btyk42Z`+<-^z+Q_{1$&jw;qh&;_A0%V z=FJ*rkKDKBNGtv7;12rdonaSw0%)MHi{IG_FO8qGjL*AFzMghCPRhW=Ps=ZUbnEuQ zxhY?zMQ`K9>yKnk(2406=n|A)X0!HzLF3+egy{q8)xDt4eIT&^YaWzO6t7+tnYCf6 zE(O-k(f?(v7jH<>Pil}O*0hhHY;5u7%6a=`H4f$dlu+KL1E-FkkoKQCgwA8WC=`21 zESpG4k!(M3@%jpsxIB>QMr}lilu1W{$lvk10DsBf;Mg3ckby zPeKQJX>SQ7rey^gbs#CxrXm9ha+;5JStvJcR$y_1jotXV$iwl{C>;+gQA;Budc9EO zWft<_5Ey#1P-xrEVAtL&6nTlAdqVH4j|wGTY7rZ01$ohRMkw-PdOZMslhA|$H(J$S zF$sGua!x4o(nL0Hs9-Zc?+0Y8m0uEye1mz2gs#@F2P~^o%dKhfuSHuHjE&RGr;6^o(($fam$d`P;1rN9-4ti$IU{So7vG3ebXxPLo&~?KKQENHF)k+}F&UhqyyOdJY*4=ji^LW!5AWi^8?o7w9JWUQ5s3Pq;P*J&$W^mYCjUod0stO;eN z)k1M_c70AfFxJA)3k6=9iK|icdi|0gkg-;NMJ%$Br8RKiNPgW9$XF|15{leNA1?53 z7jO828EfaagfcIQDN!99%$I#YjJ0v&?}$7rFO3q~I2ml@^?pFcT6wcjHufEa6IO)PQ0*@zNbL~zar#8?|YFO+y`LW;xJ>X-b0jJ5JB zqLJ~T{JI~Iu~xn$8ab(;%aq^n12WdiZwWq_gPD z&Go)u#@czaQ08R`sb8jzNWlTU*B{VWOCJ>qO(S|pjiW!|KI02!terKX%=AnZmC@Ck z=lp<-wes_#k)M*$RRk~j0U2xMS41OclqbP^^Xq;<##;H3P-MC@XJ{*Bu$kZR1vA#p zZwX~Kcjh>{?Z#z4AY-lE_*Ic7XL_O<9Kzdqy+5F_mfkEBdPzcp_p99N17fU=kBTOi z(M$Fj9}r`0tO+HiEA~KEPNT0z&iMlxYw72OLemT^0lyo0$q&d_E59NXnVzSpmA8Y> zQ?L7i8EfZDLYe8hO+QqRpo@0j@CP*3(r*ccULxZw@Gtv-7;EFk-xYaoULxbW|F8D} zG1kVLg%U571$?Z&*AK{8D<2h#++^*`R(p7C`R*CNU}LSV3B_)dF-h194GoJL%s|=bXGGIwtN=%^{SyHwgQ`Vz5>N9pT@n!94~Jo z1BqW3N_$H#@|Dp zjm!ObS-+a53v-kXPm2MKydDZ&?$Aq8G^+xec{7x_+{}$OG1$s`q0Hr0W|Ld7(R>t& zTyEyY_Ug4A7|CaZ0$)dg2Z6MjP+Dt>Db}CQ2?f61ytqZ$_j#eXY=$Y;!Y>I$UTlwT zMcVikvB2hg6V}473kAO31V-BTl2F|1Xm>s&?HfXAo#~xehki>a^Aa|825IHXLW$Yz zPOOm|e_!OexRKD}OxiV99Y_Mx%k@y^@&nTiCi70@;bF5--lZmQL`~``po#YiMYc?= z_5*p33gumFnmC$38u*M*;3X!o*;N#1VofOVa+5fLU#rgvrMB#xkf5Rbyij5*l<9o{ z(6L_<3v485N1T`f1b#&*@KSqtI5y3E9f~~X!q!Gc9wjb`1vW>AV=erKP~huLV5EKD z5{l~#4#%4KvQXx029dP@jej8WTzt(SvKC;yP*!U=I@Xal3kAO3oCc3vtM&@Ty-vkm z)gBc}dqWak@^D5d?{$C2i>TKl3So&g>f&Ow38FDorznp**ZpBD;j-By}6JID*# zmxLnQv#_x{@GDT_^7G&g(S(G(yn7wWTOP&K!je@101V?xLWvhs;;0;t1A*TV4jj>S zB=B28fz24kJ~><#&YM<{AMP}M4S57EU$d^!k!j_6C~NtCWIcn&mrZARs<)I5xia~uXSihJcZnpHv0j12XKwvD-_uFXyh7wR4A|Q z(HW#ipYa1Q(xWw@z_v#tOIpqe<+VLpMtbz~J^+4dCvc5^Nhq*&Qj!e=nOMFel$fp3 zPXbN+x=>*2xglZB^93Sb5{hiE)5r_>H-z%qJ{?7_({Bj{whgQU9s06RUbYbYPw&dj=%-Gt=jx#O0s$*b@=4#4iaYX7d5D$gc=RwifNE z1bvEl9ZFpO<(6HLC((2hn0j3jitHE}dPepIG4l5IEuqBD97OEmbs5TBzC$fSeq-DC zP2>@|9QE4NAo3)!UMTDh)*vFJaW@O)y~aTH58n%AE#H0{ty${mQDR30Gn*r7(9CCq zGB2}dZKI(zq0r0OFk&?IIib{xt&r|V*2h0D6xco)_s5Vs@=Jn=%@4bR0PE+^#y zCA~$WF|8Vs1cYzAP zfv&?E7PoZQQO<&QopV^)V&htVEJd=&Rvyn|an1Gk1Z~nPBA<8(i`wL%qL-&vu$;>s zPH-miIu@h=|ZPu&AaW@pQYzEmn_Y9WROdZ(5WU@lXU29m>n@dppRXPKTcK4FfNHRUUJ1Dv9;`N;eli9@BC&xBDJ9d6-BiX9`;VGH|ZQDe)lO1Gdj_k^j-C?pP zoQ;sRT@7Sij@+0dH|5Cs9NF;r7`Y`(Zq1Qa`l~zWpLd4Iy*YAUj@(cG(Ff?ipgl+S zg-J(_><^R9uvu|N4wA$4zZEwBV@I{`ng6k_t|oGf{=>)VpY;DHCvxPW961>#J@#*= zm;TF6<;cTfaym>N$&p9tf9Wy$&-T&(eS#D(;unf`tDIHuc41Dv+lqobVP)u;n&g~% zwO^-Z6QjxxZB?49sItgIRay$F97)D#u}$Th4}qdAdf0N6P!&cfmu~t*)*WRrI*dLp_QjC!9@0cx$b|$hpsUl9g3NxxPN4^cZP1 z$r<)4P?Qt4D66W7a)XDWtSv;&AzPIm+HBB&D{ah{W_1;57JDeox;fGuS7Wib?^YM> ztgX$OD%vdZP@C0rw4rI8@3!ZQwlHg}2(#2fVU`z!>E_HD7P!E?YzwlkiXe^k5hTp1 zEf6TkZ`y*~SVfR!9tu*F>v!sjgdfw|Z`i8bR7I8L9;&jk5H|;tQ9b6z?fEZlS=LvP zrO8WKx|HD|`syo%b%Xt~mR0uIcLLALFFs-&g6`nSV*O^kJuf#qvK*4*8HMv9T7#LHvyGRH?c zYD?CjG4u4@)-tlOiXL7blN-rj!cF-eO;g=KfKM7 zWOEfsygVM~*N~3PaFX*CvOq;n+fH&<6-B%}6&Dm4lGU2-381UUsdrdD@}4S+czG7i zE3%)~5par{1p3JRw_A$5w~8WO9)k0VbjIb3|CZJl?WoyOMG-Gg!7a{C)2Sy7HJPpH z5(yeO57}oPYZX1bJOdZ$QPWKc)IWZ*+ge7pRnf!C z!|!q@Xb#3z|2fD{Z3o$2MUZ9>Zv%=1$@p&tS$D?rkR4S733(_;K4U$2HmaojmyPVP zCD~a;k`@mo2{}P?NKMj;++p8c7oD~>*;Pf86&`AmUswY&*!FDuS%?P>}pOa+uB?m;JZ-F0zxeyQ@gD+Cxe5cOysqxAi_@ zhs-@y!BnC58<@C7Py9V-eWDQ_g0Z(U0vkx z--&mFEysOTOin~%oWTtOJ>*Mvz}#O&lAAn~B!3A&pJ?buVLsev*4Uyv zP(_sW9*UCB&FBlK?{d{aJ8s&m=&`{=J@Tt+ciMMyjM`5$`>M!svxjozQ`HlGyh+?- z$4f^QL2mI-ko?{1Nm=#bCBWD0H=6xb6uH$yMe;k%NyW&f{g;cpWM`|LRU~QkP?G$j z+MD*@1;F=g7dcQxkJ~)dBOf%UiCS9$Cp39~&i0UlRTR11Lq+oI>S;O%z;_$Xuh}kg zsEQ!(@KBJvi#)0-@tR6mp)R7@@0y3JDDuvFC~{mjqW<%dkJ@|hgH;r{!$U>#LDMPw zaO-{TG3(5Gq>3Q#s)r!vmwmolMZRkbav~msUk3G$9$Sz{stDp`c_tI&q(222umyRviXdJV zXfCro#QbcerVCZ5gFJ2Pai)qMURG!3^@!^=9s8krjM{oURz(jlYcrSH{&AqTn^dS8 zpS9KKtD=UNb(w5?=}{7@?{?eQY&jmUB8QhnnM-Wv=&0$I9qJq3vc-6!iWpwjW3rXw z;FHoHlT+TlkzMr=6-s>tDGH6}~WIua=#y2mGNJxCQjye!3JxyZx&eYw$m-WEiyB8Zp8 zm~5lzl+%hIL*^^CB3cziysX7!E^^p7>_y84qJ{?6*;^t$7GqRxzG4cj>EPbPgaqmtQhl!hK5BA<{wwpz}MMs zl#CxQM;^14Nmo(E%c4wn%sWh5BG4JxKHP6~Ta!!`O}wniWWjUrNgvAbL0b-^iX2`R zWil6`pYFzGHQ_@|UbHpIR?)=EvP|Y8$LKoZyY=;pwj57Yk;BuXOndibtBCIunY0xd zs-lROMVZV&%y$Xj$?+Xqj0)!uHSv<9wEs(;5}VMk9T`mp2{xH*yX$L6nUqu$os1(ve83DSjh~%YxbQQ zdu%n%S5ae=hib6p!@Ozsog7`Z96wh@j?Es*!Ilr}p4oSLNVXm$RrI*adp&y9c&w&s ze`wWA#@6GRDtf%fLp_{#2%Xj+`tbbnVOx=Bt0?kb4;5iIhzH|wHI-5Qm!f{kmgECf zB-!GjBy3IHFV{A31R66Fwj3X9H<5Ex>wt7lQ%Z8pt#x21DuPRxm3^@{q&U`+LrEOuf zW_oP>vhu}4T^8gESX3uPwlJlPV$hk-oO`Fb;Qn7&+?$zYOK_#QN;4|nM@V(S{v|AS zb4O2amzs=8$MsmYw&pvFT4~aUYKzcp{>QqyxHEjM-;B3y5mq^p9Lgr6hN>rPY=95d zikDpy^6^8b@~8uxvsdZIc~Cz&YD>bM z2(k3A!IvE(YRB3nHpYpODLowdNO0k$(qWYk&0-4Zo3F~NG}t` z%dQFeg>}E0tZlkARFQwM72(e3Wr}#&HzDM#BBzpadf11W{JX8mhAP{yr>zqlO*-lP znaZ~p0$0`*c5Bg_s|ey{>x8_M(8f(E`pu&6GikQ&{2nN=J6Ur*|efTa`PisN!W)g@P){q)%1( zw5`g!s;J^=YX!$wYHfoKT~AmW^gF8v;%RFIN06GwOF$K2<0al*MG-GsE97t2YMiA2 z)q~Aa*jPmmFFPybcO1Hk)Ho#`DhZnszp08Op7vI7f~NNIflx`<_`uCoB=NGhLjL~b z?aaD@io#}H-Bm>tFZ(Oxuh?oGW&{<44KsRA6+yi0u28s8qTh)R`tAUDzdd5&y;T(P zvcW<=Zr;wIc&MAOLGfFvh*H*O;i|eT${Eko3@j1XT~!p@v_lEK36-SM*a8r_gA(c z+@bMI5KmhzI4;to_)m|2w)No7jAwdy*=ix5sU1@@hWWDNyQsO|o*BoT8qY-Wvf)Dh zsf#*^FEzQz)`UAco@wG`(}ldFm@A1dMR~6+3U_!s6UEEE3;73~!%EWrg29jbPKPZF zcZ@s}#>*BA`3$yWNLKx~(4Mjt;ZBlgig?+DA+JcylR2&51gd_VP3Ghdl4pu|*@q$j zmSZX6%d_8k+fTTYlFSkP{8;w6u}C&@v5?r( z#>i=w3XqGSZB)Y_E4F;zjUMrvI#meiSwnuz|`$g zTNUn{b*9Q54^_z*$P?Kw3d3*k>^irNlsLe`H-#2nJStb@=z1=9--4XD;?A2ny&PJZ#S?r*&mz#v92!eOnd7$<85a$^Ge^; zqldPXtSPmH3i3C$Al#YuOb{a}-U z8?M32*O?+-cI|T%Iq6SD*4c`1C&n^GJZ;;@d}P0B)OMt^eh;WC`nzmFxHDs!AYOLv zb6kW9@`zs3As4DhyR8U!W-L?0)3$vD7wJg)Z=dP072%GJWr}#(wvQ=th|YLP`!N+6 zur=Y1j%Av7*|yKwd;RDlPup^EN2M}3ylmRHl(~ox7u8W)4epp!riPd8`W!WCn{sIV z22fkfXKgjOb3vIJUUuno)CkvfMFv&lHCqktR8Xddm%aHMHIDf&L;aSm26rYXQ^U)K ze0eqe=Nr?u8r*rHObsu4@i}T7_MdP3*j9r(3Y4kgWe>i*8vgT*#rIfeIqoD-riPcj z_Z&5j)bu)M{RU8b$_87FpRaPV^|JBaa+Yr#$%J+P1xuSP$cL&3;$`2xynEEt7#Qjv zowgd!RZ+vsu6vGqQ0F+}KS560f_%7&AYS&|bB-&1jFv%Lj$9QvyzIBFf^o^h!sM@a!j$ZHT`UE+4@t)Y;zEiZR zY^JYQNhj2>ayFakJD_9+4L#M@o0gNA6T_W-YBCzn#*|E-oH6<$v;=$0Q?&Qaar$ow zpC2P9a^#^LIoY*{^tc`APQL-ZK;pTI-vBdx4jt?6Kr8e~a!gzGmo!Z;N4>^-)FM~t z={*T{g)tuJwcdl8-#9Rv?(gnC1}1%hM|xddNyFXYgJ9DClSg`eT}eA1>_B_(i#*aB zyeBn_f43Yu)^S)m(j#^BJR0r< z&27ojq(@EE*h&H_$qTk5pQ|E?m&Jv7H+fLb)cTnNRFf~*n*66Kns{1ZXr;eWR8I|q zXQxk@iD*|>0|(Y^>V3g#zcV-WZn8nm8SyEdb6;GKqlq?+KNs!5`xRW$1imbKYo zrJ(dES9#g5i&1C6ptQP^PQKqFNl9f$l7OJ0zk){T>Wq;vGFyb|XjYYVfeF`QDQBzMAfUCgRuQP-B3 zRRr(|7TAf_SeDm>y)I@Q#Zs0=E0}d0%eut8*8(p{6Iew1L?eK663l5LidclEu$(Kc z(~KzCX)LT2pWr2E28&pTPcY{!mec&eeTy75yKW*6rhg4Rn1=Gf2`6pElG^4>r4;DF zr40*NWKJ|`JC<~feMe^9d&+6r{Z)!{du`Vx$?eAS+PkPkyIxTTmZC(BbG}!r3#^2N zU1b|Lq9*l})SuQ9lFk_-RTo-a2(6qQ5JEd5gf^N;385Xu(l*+jtR#37i|XRQ<5)=c zUSUFlAKNCxfvQPlS~!UXWv_}fLcuqJQ&>(rUy{s&3_5?9#*(u9!6Kz*1t&{0SlFf3 zs*66JVi}t|G8uIsDdO#P8hS)!Z>Pd=Td}yIJShAvu?Iu*N3g(7w1TsUQ7mO?w1Qd3v8;_p`UPZ56IjR=yT(BX z>LeC*nFR^YlBTefEJDSwPGeaYQ%Z1lG=n8<%7-VIa~8|FoLW*uRup;@dNy5|H>U{L zRxGR;o!|_i4NF*vPB3RXmU9^$1TP>J>c&#Col^{}gk@cBQ^J!W9gE4Foi`dicm1{R@I~Fx$LyE{5 zy0N6})mt2|gym(C3Qit$EM!Tff>B4XsLdx8BbydccQlFxWjm@c+;J>!C=Uuxl_s#H zYy}p_JBj68#z?`*(iE1G-S&!MoyM}ZFiH{W(hL@r)g1{0p2Y$?(F)EYLVp82u9ikC zn6(wly8PhTl!)iHHY_H4n-K)tj)iSvnDAVw8_UUV3q{dNSlXo)Cpb^iv5X=6g+>JF z2$r--f?H8bnc(>EBus0SCxWbS}u*j=Q?CW)| z@xl!aiyF*7NPCX#3zLo<*&imI;p}r`5ps|m-t_DkoiDeM9Mwj#*esc@D|}VvaV&GF zh!&h@O<+mcGp#t@Ni6T`B2p3g#uOHp9g_q@Ph+8rqZgcV%wS39MlYCm7R$TpNYYT! zGQG)qN<>5in^$3=_B!a;y$0!!HLIi_>$FacqhooLQt4cusf(a~c*+Y^b z=t(Se{;`4K!qcoNEN|IkgDC20EcFWKNy*{`Ct5RD)^(-NNg{}6vBYajtZN7uEExJb z=yCYw3MLkT-HOF7jbd=_(S~KM6vbfTb}VsAXI#!?#8hQMsu?UO`v^rC?kpBJlm~_9Poe(@dbnjT`Qmt6vAoL|DL8j(!&0&j zu*I;pV_91mrHH(#8;iLtsSHUHaQylx zmX+O2h$J4z60a;~g{MvvSXg$76^cBGMQ$#@f)l7IEGRqg2*aJm;;t%yib$hou(Yhc zRV?!?mboZ$!3jp_@1Y0UIgty-ZN=iQ=tw4o~|& zBJ;wLB`k7t!M@;pO2>jat8(79VB8Tb?y7=aMdVYXSXw8a${SY%^Ej5dD00CG#sn60 zPUM1dC$YH8PpbwIP<=jy#boU~1;I{ZVVf8xJe!!oayr9*Y!8Oh&SGhoT2=+;5uqPI z53{UMpa{}dENQdFC?aua!-BH?R2XhM7T1naaL&+;Wh{rD>}xI_y51N3yt>ej@twqjYA+m!GOsSS(C?ga(G zwqs$Jn3&+~s2hvO2D}RZm9U^qCZdQ;LC12klc^}$5iG40q2N?u6pL6Cpb#hW!kxt8hVpiWCr49QQg$j8$2*PXUB*bkDbfsWo(F)EYrm&Qy z(F$gr#`OPbUQ zW<|6Mn8Kp6w>W{o(^%jYMX2zEX$H&cOqeTpGn{x9OWc&VE;wxp{SbO)WhWd_w5?d$ zm3dAP$x|B^)|oKp1g!|?(xFcBH zP#zSXO^jkm**R7m?>Lrs86ySfP7_#4R#hs7brQ?k!YD-~5mQ)Hc9IncJdFi*q7|G) z%wQ=?qZQ0Li)CGDJMW>io)GXz7y2jY5tf~Egd(?Mkyn+#!n3C~EG?U@AeOlu%gl0P zD}upUR5zBiBsUhpD`9z87x}S>Y)Z%CuFn_=BeO*?^avKZIC{aE#weC_ZuEkA$FaOk z$7LfbVmQhKmXqBuilUvw(l$Gs@KkCF3(9U7h2c(PaT{$=Z~`@hg=F;T;m6RLNa1p?1vfz7&b$F}g?A@n2YDRtc( z)Q}A+B72y@lCCK>stDd$EH8^xaPkoPXXw$jBvQestyt91sid497LqBoVM$q}isNm^ z^0pL6;n`9*7M0y23Ivw0z{?#}aK@x#G1&{cAlMNs>4iMWo386B8kVb#QBH? zrxO!c%(93D!%kvhL!EjeC8tG{GEHGgS?(l`cN)t}-(Vff!gHq?ENcD@Rv7Rs7I?X1 zTX60a`hTHkShf-if^EgZ(sy;+eMRI>ZCKX)ySg~yb}Vr|V!`P|Hx{!jV!^Ny7It~3 z92YUUSI1&HHWdRqf`x5jHif55qgYPoCEYeEoOT>byVSBOI9Zy&GP3GY5u}q?(q@ZM zM4B{(1!XVj!f>atxOS9+bA}l#V{w#%NoTR7&HHsdF62=z^ke8L)v0q4h1-h74dv|$ z&l=jWq)uIgV^}zEJC=7Dvn)7I>cVAU?RRl%$hmbHahR79?%V^P^1ut4AuEU*); z;4ESkOIaGNVAgRgYx6NV5sAqH3ce?>pe$n&hC7MH4dp@M8N?Kplx0lfc&D+v%NQv* zinxVFg;9#gm_q*_^xVoaCV{}MSYRhw!C6Ebma;Tj!L03A)}|x<2hWQ5 zLarOj$zE$j(Mnj_W``4=F6mfMmIn*N9l_!@+MwWMX%q{|zPk~EI*vsR*^nYqr3ox4 zJJ*Qgoy798NChVkQ&`B7NCl%#V^NnMP@{!jOfNJvENU?SAj>yBJ9d6-BMFg}^jBf? zmutdgZC3+Xmm@dk$W1x2K1Vh@K1OZ{lUsA7mHz4u`sbZta&L~@mm~MnfAj&egS6+! zzA)*?k^N!P8O}a879j`8Vdvj@RGY!_vXZ3|Y8>n=7Pg6D!n38&zd+BcED07x+lr-K zYH@;dr8X=hD~1q3+Kwe{wircZO5IpccBB!8D`9c%CO$UlG?DS&V#r(;C3wViXz*> zQ>1PzEBoYFB(a1gZpyQQlO-L?$@W%Jv?EyBm3dAPY11ecmbLO0iad@*E<`Ojub9Ac zmPaj^b`nb)qM5&-Bx(vv%AU%_@lIoTTMDG`6lw;G%JO4@z_VCj^Y+k+T5tjt`YH4* zTev+G0o#g&UE$bNMEcZ*Wo2g`k;Ls-;(Ww{(}`{@W?967VI?eVi}{!=D0$McsBDK7 z2t0xXUQvV!PoGAytZX$FNj#1vwkp#^`2mJuT*oxzPWFo@v+H6%>M@Td~k<%5dQsRU4Lf zLq#LQsoSyCD@v>kzMAUBva+06B(a1gUR%N{BE!D~fzCuvPv8W*%Qbe9KfhA>mk~rQ;EH8^x zaPlyPg)E6wFzPfGb%o`*hthgNK&~`{Wo5U8B8g|Q#4C$g;W<<2GW5vGDk_8`w_=g) zeAtR!aPHKG1uf2pMc}q$aaR?bSVRuhjitTGey9`6EMb|8A{U%s=vdG>kqgEh!Q!qx zq^A?IVJNYO<#<*RkW`Igf!Qm&aO`m`_PRO1@bqc|OMHvHN{i>7#B#4HBL*j0Q&?KI z7mH<{#xmbnMk^xan!zI9S}~YKfX`yV%cB{bjfDOcdL*tK&0ywMEc1$^x|&pCJw{qU z^3{fAWj9(PiQBQnD~nm-DOWcZmfdIxMV7G0%>`I+qNQU&*|}I4?g$olRRL5)mNAN@ zW&5sJ=5Z`@QRIRXj0r60oX7>^PGWIabQnfjjbsfGmswL-R+dkRB%a0+uPkPT=TkFS zSe8!-MV`eXHy2>R`BdoNphsP{DhtDH#p13ifQrbc+OV`NpAyU5j%6;2TyTQXjRl<( zxnNugi@TyH8_7h|YD&acd^(nu8~L?mKjzA@d%bUAF<$cVib#67O`O1aV+d|a{!WnGN}nHCbOv^*hws`HRp-i6rMp$ zVL4gn3uaU}?KGBlsl^G-A7-$OY#zJ_(pfBNv&ASPX$bu<=#iD(MF_)f#p2pg3eFkY zu#Ck~3MOsGk~Z~bQ*jYhPu*Bfwv&pYm9VtU4ktWi(6OLw?G=VQg2ipLLBT1~C>D}+ zrV)ZVjztaGkRp<#2`nkQ*B8e-iRERH3QiuTu#hE@3PzpAqBix!)u@O(X$H&5@+48T zvsl_@hZCMBg=R&ZQH9~QVsRU7P;j2qhJ|FSuMpIBENaMx6p<%&V@aL*2Wz(x!7E{T zS)_uK2OSGp5~*O+5iIJ8u$)k02hXNNbS4dh2c(PaaR>UMdTDSSXx&3EtYu}%Ul$>-~=Pou&9A_bv2MK~$kt4|*(a(=%pBsy0BNyjHE*Q5Ji`(3t3hOZu7f)?iP-a(Q zxb0ZnP#zSXMs;IJ*@;#huY~1Y#z?^ll#ZobVK-M4!#aXxZDEumQm0WYD*Hx5An-UA z*ojtf7BPXPER9w$>m-(S&B3!#C1pG)Cu4C%#4XemmiJ~kW60UFTSQ||W3ktk^TP9} z87%NE96Q6gXR+KXOAQT9t3r#Qr`ww<8X3&oie+9`YG4srRvVW1){0gZ0p5-UFNW(mu@q9Z+!O(;ntBjAfW9m{$ni(-+;BUt2>#jNneV-ySP#II21aV&Fl z0T!HeOkhFR%n4pF?F6eM!}@xVA3vSct}r+Xp1?4C0)y+R2=Xm7PzHA z3QrrRu&C?i*cMJajU`_07#EyE%wRE{>{k%&ES7eKgDE152we+3t2$TzB9U9M$oZHB zrxa~i%<`B8)3#%2n>ymEEaIuI8_StLcI}?63=3ZR}`Vbvxv}jLQbzDkz29IO?g&uKGBBdbPhVAaNDuCEAyNp zGN^7WtW%FDlv%C_Xcv_h0*M%9x7@~KfQuk($bXzXz; z_S$k@cxE+$1$MsC6V5$}Bpu&~ZPER=Z~%e<}>Rz$WngC%yp(Gw3oiv=%> zWpE-Ax*mEIt{lr?=2k58isP~oC7p6cNLMK=>$-%=x$JC=B5F)KXZ>c+y}IM=*z zWC@GhT(B=V&C;=;tIKT*#vQ@pt}577M0PcbrM;=#xFVRxvCKu03r;X5u%L4y7mPcJ z#kF_bhvj%yL_#%%g)QE3MIldPk?ob)fraN6Gg#Wu4V|^AGX>ZD!q`Bm2UnBS-d!NoUyXRZR|(!<(KRqusDK zlA~H1mV5miJ9|uD6LdQkx;Tu%DMvS!bZ!`fc_l3GS}Tlu)Z{>1F@!uA>R8~Li{e)# z_6Qbx-5fi^)2&e~@hu!f!@0+?+;&o3aBXnfHG!oqPO615Phy#GEQ@6k3CI){`PPcT zECPHQ3tk@0;A~_DOItab!OXK*<~4RSD^F&Xq>wqtp~cXH@`mD27DwHRrDl0{fft^J zv|)iu@@#?F?O1I4%DTq^1}9(LSlHq#Yf;D&7MY!+9Q%sMKy)l|$vH|S_Xw7|ERw-V z$S4-JVkCo+$Fa!v1@>_{m79F_C!&%UYZ_ z3nHGy60=)q+q&=+BeWEH@-5DrnR(&JtypCH(Tsu?l5OGa4iX|=1l!fq)V|iPwN;``b zo>oj?QP&m~*@*$3!~!pOYzxk!rm&bROYI7VoyNl2CtK>iBC?4YENk(}RuJ(lmN*}= z;B+F?2tCu5MJyP$6$@+UPTeAIqS~;e#krFZ-gYdnojX~i@Z6~zi&~sJi2;_d!1hW^ zQNihij>RlqiSe)_SXeuEqL?Cbr%^0xaqc9DcpOWdk63UzF@eP_i&!x1Bo=nPTUJrDKf=<6Y+BQ%)~|qe zZCD096RxmHZA{6`r-7_3Sk`5XHKiznK+4;&l+1S}lTwOi(?HU#Skh)@PdWCKOuttL zg6_kDIwn;!k{nMF8Ay6U7->u$fG$Sw6Gke>li38&rYS6G6AM%7y+k<+I*lag`* zxv_o~i@LG|HJgYi$aLx3P}uCoiw>@mPz{OhIau5`p}2Wi%Z)QentoajT%vx2g>_bB z3sz4lY1z<`uH3L3dTM2vzqRkE=a36j3mEi-oTk@b0(wH+h6P=dvO$IMZpHGhV7%rP zll@EJ;oB=gA&XxR5*QJafVb$a8DdLPhI0zn6dfS}J{ zK|{qBrAZTz^kZ1kmBplSHK`_n^4ZCl&FE;V&BBlI(eeRXra68kFc!y%*m=Orx%MrCvIqh z9$@okm7`H5Wnfubu&mC}&MJ|J>dA~jPXNgK)7!AT>zswzJlom4{c&AJ5^u#4SFkWP zcie~NT|3vp5gnRUoe&P3)RWMYEfzSRFlQ7)iWeDZxlY3WvE5TI>SSlT&9g*37V`xz{3*)r8HN3pB&$FR6%ahuYI zpp~63V`=j_20JJidIEj1@hXDRnKrIMuOnNquw|x=q_H1C-G-$tyPcz} zGJ4P5iUrQ!+}K%0Km41DeOTTN7ALK}w|UKbo3uidWJZPF&z-B=y^vxH%Qm3%YWv4-#8FH;F)VGFLq8>_sY}xo8k%~% zjAbs{n<%gpQ~H4({VJCC_R>WwlT{7#!(>C3qC}0yusQWtvFtaOu^Y0XBRiVTsEU&a`4=)5s!+tytWA{90?al$O;DGJf}AY0Hc| z5Z5Cz@;d$m7PoA8n`a{Fjrq zFRRF#k8fj9%Witqe#wwkWaz$$nXQlVaskcOjwCtOCxJp_F;+3_M-l5GKzh5 zIDzFY&#U4zk;DSO4+~tj`C6Z>02k>LmNxIsR$pK9V^N6?)By56BZ$||np3i2D9~HU zk70SsHsNSo&nPik-Gat`8H-*1aHc$&Rp__?0pPDckjb=egj`@B+yK0LfB6gj3ub*u3)visSOu*hYX(+NG6rBwhCJ%&6yHmrmm zl$|WhUdF7Z&qxcmU}-m+Z{Lq?-yVr>jrHHXBeJ7^tFn9hmX4lYV@u}=BmKCDX3$s( zHq{^jeDv#9tOm8XL0m~fXU^@zO7QNgZa^~{1$wW40;|9sRTZGM%D@BK`>^=$sfsU2 zQ~>jm2^t3}tPIt?fOaVZdciYT{93$#3IO+lk6~q~?gc4m$JCdx_;*%a3!-sFM!qGy ziWQ)yq=;T%L07`B`cH$Ta@K%q@NKLHE380JcWf7N5O@>Iy0VxRp7H+(3tM7XbZXzQ z3VNh(DHs->!?$2jn+mAdWc@ZQ=b8ein5=v&mbb{R*z|iJmb1jJBJ%7LSl%MLViW53 zVL3yEctvN#m{jqs@!)oXex~ly} z6(TH^Z)oX`48l48KeE~Iqm4H=%BLPPNQh+od3)lfT8*mQbGQbxB*8;vpkQIlOa5TjO_~}8wgs}t_ zfP(-l0WSmo0Jye@;9G!40FMIR0=x~FR!lG*uo$oe&DZnd$R{{S7yay{Q$Lq0|5sCHUc&Q+5w*d z^Zz%7990)7nm3E*+SuK_Oseh+vH@HSx71cK3k$$%+6W|EIX8~g>3}l;7XvNO~Aha{{c*zNH7^t4OjrE1Jnan0agRH0JZ{>fD|AL*a0{Pa4z6- zz?T5m0j>w!1-KjV5a40Jvw-ISe+Ik(_z>`Kz{E)elK}Gp)qq++9bhG36<{-93m^eV z0tNtCz}bLv0AB=L4)`|UI>4QPy8yogJOp?K@GRhUz@GvC0(=Olm`pGcFb^;vupgin za1dZ6;0VBGKpc<&^aBO}p9h=`xD4<`z_$S32HXL-6YvYbF9A;jo&mfDcpdNo;9r0V zQwS;ma{==JHGus92LcWPYyunshymh&K0rU` za#v>6hRo^>*>eWtnKhY1wbjFk(biUxStq*T*Lu1oZ!(*9WscaD*}NgMg?`w&A#>!e z%uyRMpWKi+dROKcvUDu{{Av1od?ubr?8+oJWKz2_>0Oy^yE2(wnT}lZt8FdI+<*bi_pU=2Z5+&e>N&@_J91~?yZ z0pNDP9e@`AF9OCAUlakB0hR;S12zEK0iOZ%0|o%+0?q?`8SoXrjewg7vf{!y(t$_u z)2{$80A2*V3HS@(-+=!BCe9?71egby52yj`2lxcwK)?pTM!@lacEDMH&jYRlTn~60 z@N2+70Pg^*DhXx-4g?$o*apY|E(BZzxD9YS;90e0sjPypG`0UFdtA2XaY0?4h0+rI2Q0}Ko6i7a5mr^z*hlZ1Ka}mF5stt zp8=i%{0{Is;Lm{3lncZdz)V0TU|&EDU^U=iz>$EX0NVf=z)rx)1X(d|uFOnV;-{+s z{{+0pfm`Ouz?no6l>pSh;tIej+^zk$#r7sfrDG7KP@CSmd*m#5t96g_Y8Uwh$nc$~@ z?JWeIfb0PTI{+^&CYbjLf*Sxg0v-cA4){0VKY&FC5-bL60Bi*G0|o$J0eltkBfx!t zmjQnOlpI7b4p0ZE2YecE9N;{_F2GHI?*N_x{0=Z?CBaz0UVyy;`vX1(I2_Oh_!Qt+ zfB@cm;6OMuJZQQh+pI zC*WkjrGP=ew*l7y?gRW7@C4vDfL8&p0X_iy3sA9%U?N~Xpc>EuXa#HpYyxZpWB@w> zCj%}9TmrZra0B2zz>fis0Uigu2zUwb7r`h^q?Z@QNma1-SYcu9|Sw ziL14^x(`>!;c5}e$qBgHf~&J}bqTJ12V+kI{sedh@DAWzKrz`DC4gyw>3~Im#ejN1 z17Ia!6<`zK2!gCA-71}*IG=vH0u~R))s0ICj>pyOxaz~zK1&JC!PWV=`UNmK$0#^(7BKRJz&cM|J zxcVusp2pRfy$RmH)ls+_y?|g4SJQFz0Irtf>L0i|09VuYAvgk84Y*3-YBR2O;_6IX zosX+0an*wa>IIwzI2~{S;6lI^fUg5?0(=K>58#J@hX4-)o(4Pvcm?n(;9bB!0VP`q z#sQ`SW&jogmH-+6jeu2v)qo=an*pBz!~i{jUcjk<(*WlKE&zNDa0TE-z)gUA06zpg z40r_aEZ{l7Yk=1Q?*ZN?$ci5x$(bZmFP7~|KmHa^uM=0V;_3-peTb{Y%Lta>soaLE zDY#1F>KjPenfnslhO1+6^-ElR5m(RS>SbKLjjP2q1jP#pj>Oe0TzwH&`{L@ixLS#; z#rqK)iK_&zI&gI{u1>+#eYm<9S8w3zT3j7aOK=yix^VR$CiAPMLL^aIWS zoC&xHa53OYz*T^o0k;6|1^fu`2;fn`vw-ISuK`{Mya#w6P)ZL^lmTV}DgjFYdjgsO z&47aeYXDmSTLE!E0&oJL4{$o*48VneivV8-TnYFN;AVoXIAy1-S{}hqj{;CJk7NWX z$A}v;AKNwD@!@P55yuxA>zBoQY8NgxI9JhCBPTb1UbNC zfX4xgw-GD>Gy<9c2LsjswgQd>d=795;7Y(%fcpVI1-u4$9Z-=Wmwg6%$5ySz#fD-_x0Zs>80JsovCEzN+cLCo6`~+}6;3>fG z0IvdG1AGAZ7hnqI2{9G02(TE?1ZW1V2W$Xr17rxYV(!T@8=a4zE&zNTa3$a;fcpXe z1NbB0AAolNWh5!e39{nM)1;Dp@ly?8;b#dJ0oDKx0dxYo0G9wR1>8n3l02&>Ju=sx zGZ<5I9L=Yas^RD1Jt+^jlFR=Ga~w}2#?Jsg1pFJY;By2E0c!w<06G8yP;$`7l1EPp zA$`=05H9s}&}}12s)ql&q&gq5zW{JI;2yy9fENIxP9Yc#SOi!MI2v#a;In|w0lp5n z5^x{j$AHHGj{{x+ya;#;@HU`?QbvpeQ~_oK_5th**a+AJhymh&e!u|WY`{5y%K={k zTo1Sb@GHP$fL8#o0^SFF0GL1}NK^pk0pFlA;80cw*YSgs?H>s4Ok607?1_*09*;U3h*G{=YT&0-T+KGi(oRK z7ElK`0R04YEka1P*H!1aI|0FMA31-t=x6EN`{f=Ph=0JVTk zfFl4W0QvxffXe{)0)7N|74RBh!np($fPDcqfDM3+fF3|E;8MUK;10l@fad_u14f@m zFb1#`uqWV9z+nIZ*bevtAP2Y^a0}ouz~g|o0B-}P>>`*7s0TCvwg9#Q1^`*W<$x~% z?gZQgcpC5w;C;XcfZ6{=FbD7nz=42vz-Itw0X`4725>Fl0l$lfI+}zfNuf54Y(6<7vLel z!+_@i&ja2B`~@)TLW0qNsenBIivddj&43obVSu%OPXUevbOO2nrvgp`Tm-lna5dnY zfLj5#0UiYW9Pm59(}33iuLJ%C_z*DpB7!M^#egM%WCrvS$SIssjPQvs&| zE&*H$xB+k@;Aemb08av*0=xov74Sab1Hgof2`T{9fCYd?Koj6Fz*@kk0mlJ)0Ve>? z1e^u?1e^sJ1Y8FA7U0`}y8-tA9sxWGcmePt;IDwc0g5gqC<#!h z-~hlTz!88rAORQvWC1zA`GBhd-vrzZxCihE;8DN}fENLO1^kU5n=9&yb#!9^PfWja zWF5B=jm4z3wl=I#)xq#bv0Qf^FV{tl#g^_?{KQ6x55KQI<)e&X{`JTf@=&w_4h0-W zkj>^MwGXrp?ChnlitX%*_jK~EIx(h*2x9@a>_PBdf?N>}q8iNXE&fV-{w^KN<|fJy zWVG{#BX~PrHlCZ=-;?d5gBH~xW&Iu7+S7D;xm5c&N%G^Q4m^MG`o3IA|3H!!dk00b zglyoBzGycnJ~xi;igDL7$m_Kn)Y%aq6z5Kt#6CLLa8Uei2HlO@(b1dg1NDYE2<%FA zWwJzld$)JFQWti}AQWS7P0jA-pqnQmSu|hg7*@^QIJ` zaU8cNCd?;oMaDI2rtnzyB#K-;g_c-%tQlW{>K_#Kds1+*dBdUd=vi@nBSOs^4#ijC zNcP){5o+GBWj;5JoPL6O$GH;gZUVe+r!VJq;LHT^B^vqWO6~hBIZGd0OD4GF@3nH& zsJ79(kkK}VS25bg@)AZ{5wBmg74zanTM4gR5EIK5#Kf8fQO+1mf2eiBpV7RzlESdF zlC=B;e~NfdC27HsX8owqya?5HFmFt3E9G5@ZIgLRA_B1?v8|eSBhnviMQkh0=Jue} zqc7CZ=a_MxYdel*mU#{v6LOR5Tbts|u~_|zSVLn=Q)6;aZd0h7P8pIH$@q$w#`ubt zt8sPNs8Qr1{gdm~9LVd|e8ub5e1+O0H@UH{r72z4m}pAJQ|X3g+QNWk=iKDxL~~PX zBGFRcnyih-(~X025xNTIc@dhgcoCYfcoCYfcoCYfu&XgQxuq^u8*50X6Y+*rJRPHm z@E*t6(8PNj`HJ^A@)cJ0a+A}|v3To>))nc7rpBgJYXcPxS_Y=y)3J0*Z9{WQb8~CF zzP@EpuIbK&HeSia6(w#*cV|a;ic{67Cvww~%megkWPErtmhBv9$5%&@XL8NKq^QZi zb-lg4J9Q#u$KwXuM#XXkU-6P;v54HuwG7*o%KFk);a%mbpe%*4h2h5Nq(1*>4yjij z?O+9n0GhvZEko645a7ba3tQ-(`lJ@pN2;hao9GKJ`j{Q#RJ^2nOMJNc$)LLz@V*MWOJhNuIj&3`W*dBZKlrHo%oG*iSjX3;dW)2z9{^D(r&KEn}Ag zk6Zara0swc!%sO%G=`pA{`(Gm0=eW~Oib*;J2 zM5`E?RA(<$baNelEQ8`SI6XTMrx40Mj-J9Yr8rCzk@Mn}8{3gQDZKjCRPhCPuB%oOQkzb z@>~;_kj+$Xp`+6k5tqZg>PTZ+wdB<~8iy!2URsuUQm3GDbB?3bB#W=X!KzR@Qk`V% z?Pw_|GFjT`?dk78UxFHT?OARd{n#$^+5$(hBPPB9ALoY}G_*@vt)p*faucXI=;=$f zQwJoQ@;nt!(-@oI8_U#&l~zkgd>eiSOKS+FU}+7Jsc5Iu9XfZms~SWnrSD)WH_wT> zEhBD%e{+KAVd<5eeH~3h5GwCQCsB?AwR^l=n~H)EuvGqS=j>#u@~O zpTpm={R0sk1c-;2lj%e+H$)Et#G}mVrgLsXIS3GsgHzla%gRX1a6FPh;tAH((H-Zg z@+XaBA$CC!Pl8+2lN|tgnRtqBQT(Snx|t%LQL0ZQHj~2@pExL<*NQAUTqAxjIn%8Qc;& zhe1(iI%-vz_zRd*6TR8?e)@7;BGaDe=^mgNJfusmtfw%rOQ32Ts?%&5dx?}x`4z8f)B^y@M zwIo-xG&QtfN;FYpQ^aJ*6({-<4fV*L;wD;Y5I@3l!&v%}Jf7ibkYuq3B*)QBd*%e$ zfAnOREmAF!nu{zS=;%sObk#Ny`5&1 z_;`FTepQZ-A*4Ngzx_~gJghHvDC z1IF;e&C5ZCk)2hL5U`prJ6ptAwTXBWElwuuTI-vVsg{&q7oaV`bIncYigjnHGeYAG z>Nd%ixP$JgcSqh*0ba9%o|!Kwy5YinM{_7`EOdINifKNH8b9>fr#bSHsWN?;)W#jT z6Jf8);RhMTvIFNm*cpyQfG}QaQ2oABU}cUY<8n%<+hqAV(-Be(aRziwkSeU-<~kxF zr0EVxR-h}PwOk4qzsz>%4uz74zBcMtEn!Jy5xgYAui^{&lgQ`L#8>x@I_l}f`ZKWh zQq3r8k>=FLTUwGWtqqCBx@3J_vaZIYi3_2<(&c#T(AJvKl*35()>ym~Sz0YeUIGmZ z9Su>;Sq{@^MJ;1fO%-}3`iro($k7o=EpPAd?4junnI=kqj!GcSr8-&+F1^1_hNc;M zeLXU4i6fqeOv?*!V|z+=UQq=I=|z>J#;1xa;lv(6z0e|q7CXYx-0@OxU`|gu5t2#R zUr83%z>Voa)n?$*f{vJMx!3{=UM|rAvnH z>8Qv{rzE1jNHB?{H(}4tCyR&SjFmFM!2C}u$fnI0@(60La}bhygA_9Zt1$83a4c^I zwwTyb5$NrPHaY>0-Q37P+E+=Y3p6(-m29iSC%s6A*$#3n+bWRGM=5CAqK>7k=~WtB zV5!6B;W4J-U?1&a6|SfA&Jhq1;{eL*8(!#L}e#ovAA`Pjze*EI23p~r7C z*&B1O3U`E5ixTcl6g%JzPyf6%6mNWHIW4qw_MF($*O{belbhYVqOP^IHWp9Ov|e*< zb8C$eF8&VPCF$Q$9S44aWcgE3zFMnxN`=c~eIvO-ljG9SuQw@bWB%orEqas8`jDhFkm;*|<7o!uJ6CW9*Uc-|T%OkhGMy`SKE<7OU_GaPYA5QoC_B;RyEuG*0cQpMrWFvcx>dpM%R5$idzd?l`&n-46u*aQtF zvI_PKysY`%%1`mc7DyS7+xk7lP50 zRi94RHq#45P4&q{J^klrP_IF#SV!ys{_mm(nQ5LQ7{;n}Sl-IfW@Lv6EM)&S*O3V! zxr+4?kmt74t$!9f;B|y2o)4_oa53uJQ~w@jKi8R{pqr|$0y9N7qBl|%H`p}dGq zWMMx*oCe$T9nnx)*aHtPMCk{v7naV-`@k*MOvekFCBb@>$l!U8XP>N}+;nv~{2>GM zzc9ki71N8S+q!AgSCw9otgUZI)+N*R@x+QmQw`op-PYZnrLAGR$Y=iS0VNy6Vz~t_ zy))LgEk(VK-kuZdX-Z{KOl`-@T=Em$=x`8zw0(g%6ZGei&4U#6l2${)- zx=?X9?Hmd5WuzV6W%M%YbjK)fBJz6D*fEvLO)^x4g;zUTf&$`7jyTQg@`R9Taos2f z2xhDUL3!gVx#C-hFAf!^_~eSayHfNjlzOl;9hVbo&X0>ALG4*eX!UEN&SmW_vuF_DkC1v@0yER`RLhKG-qi8w|@E z-yj(ocoV&_mA~=`&C9l!_!<1F(CXNZA1|4s=7l|VRwL=+=g=`h>j*2!b0bwSTRdcW z5h#+;_EmX&6w*kNEuFD=z9bRr#^OPRri(30uS=_R;opazE(TpZq0@zb9CEt&Z1JS! z#Zc0Pg;lyd4QW&|tFp=DPCsG9#Rv$kWI~yABuF3TlvMTVR_+`wUeL};CB~1TPtak} z8&jCy9_aBi;Pa%Crfr^KGj^29N~ER*;2p#6xtb(l{QufQ-WP8pA2NN80V zPAzRuceZ0QwI6TvKyt<0-JtG{8-GtiykW;b5RfPS0p>Wq=RNm&?v&eTw>i;7@i&-8 zv6IoVe-ABVVZ=Qk$1B6wS?vtt$qCW26s6X!q{Ae|KjGCJ%d4Pv$=TP*RYMReql%x( zQhSe4`@cyR)%I^U$M}5lAw2VQOfV!*jtNpH$-ZYhtq{mJy}gc=tg+pWQ&2#RsU&AA z{TOp+)>kOQm*+{MP=QJ9{k^m#OJ!K~j3suFEl)#d!Yhlv?Lv) zvuS8Qy>?9Ge|jEYRKO$S=>0&Aznc+V< zOPLJaGtYAiq0@mmG_LXMJ-7cX31TKpPxMW*nEZ8q9+L)bTsy5BSjIvs7)23tV9uyu ztl#rhFc#7GS9Mo-;FHH+lZKv=thHoE42o+Yo5!w6^JA_1W-)ek;&uMWp_n9y8apeQzvf9IlU9x= zLIs)@SbTf4oor~ZL<5Xs9N<4vr9cL`O-wXbnvd_Kmx2nKmn_j5V%`iYWZvYK)0=O} z_JZaOmN>vR?*!#B?{LeL*{)vR!t0;iKu2ZKYCjJ0aG!!f7prVPoS-~@INWlad_wDM zDYO1^%^NInm~Gw(%46Q)7WL4E0ebw)#9Wll;+}M8Y#SxObUODb)l}D#YG|#mrIVmy zHB1!iVS9!XsJG4L#-x+9WJ|AP(m7Aix*7bj7;6g58-yuluGk7<@rix3fr15j+vWZ^ z#aha_HhnIPh$8`#Tin^7N})NB_C+NPnsOy4X81icdhN+^U-HGL;loTPlqzE^NsBp1 zAvy|yKIAI%j7+i^9UO<99Il|EiWv0L;2_q?OWIy)W4zGQxr0tvpf0jw*5iv5LlQ+dq>4~sc|x4XVb73R zqL1yQJrVD@gr&Kpi7aHsA#)`=(3Qv>PH*x$X`#c#NlZtUk@Q><{pGiR9T`m$pM^{* zXHh96K1aXALXzC$h|?fb+_hZ_$kHKt=*O_ANSZj4W%|055u|b~B(q6^I2-H|+P{@J zQ9c#Uz_R=6W+lZF=dq1MrhpAe5MKbhh&tK4p~5ZG93n1YPw2$J#16c%yo}Cw`~eT0 zTsIU+T+D9pou4_Rkei<*O$`_XB_!iiBlrmx=HGv8f*K1~~dj}~-W_J^r$OslUF_~r*Bzalp@JubeW4t5P zC#$}&BCpuu7RZk4-`P)_R58*EFIGBS{D4h$^v4DUu8h zMYIlCd&oxLEw}#mIN}$c%$AL-4Kv{~%n=VmrtFhz4_R~c+O2C2h9Q{?tDK6?Cy8G{ zYWyc5vt{ebtw(P0<>t6@22K20O0GR*%i2RXtXyYW43RWw;x`<-Pi|eac|FPc2Hn_s z9Pt!nrnIl=?$7q6w$N}YHL#Y>jU!>&vsIs{t7~XYCF>jNTjLE4H7-p&1Nn*VE3quF znT~&;T7#>D`L3|d5zj-itbG&C{5Z0Yj~&R3&C*4#G}A-tY3Qot%J`Dk7ILL%Ue(Wh z$v^Y426%7Van{o;UV^E~($p5N<7i)#Y``&D*GsSC)4>6`QoJw9FNM>@ZiGHVT)ZOV zeh9rPwyGz&lY;0#C-f;^MF9E~z1U+-wOdGP*izyRh)i>gQVoRX_JZ1si)Pl_5ck9r5X;9IUY)#ZRryA?(>zh|JHN|Q?s;GpCNmTJj+4d7Vy4CykJnEW7 z!8Fn7C=}2q7SOsx9o3>ky(0ES5I|+qaJx7wM;t&?=qwy4HWfsHej?U7^rqzxG zSC;u=Ez8n5FNVq0^qX?l6=SMc53v#)SgodWIG*F;bQV!3osJupMv6>dLWU^jDte71 zD(7BFX9qR%q0)*kwnCaFu?CRjG=Sq6^T7YR`_N;;n2x6{awT*{YX&slqYK$TnH`dT zo*r>DG*?hp1P?2|Q%!zgAT!UAvsvPJh!%Gb^kgtmgPkG+@=!n;#5uB(CSoj;8NdLP zWVj0$EhKp&1tC|Zo(@y(YiavxyjFe)9;q5y&2rrEIAS}LmbI^sZBMOCCNU|pOc+_9 z$`$pfq8qa1vd_78(~d?6=Sn&-(}^QJ@la{%1V^a2iEl`W6QC!=NoT9qCy2-;QXEKE zv?WUR=8cZp4ydYjoDSzrR6pBAaDJ4uO&hO-jZ!!#O48tHF{1!RiWwYwd96E1OD+6- zf>ncCsc5!19qFOtY5y7-Pn$MDClVi4AUdFMZd62NUX&yqQ=`s^jH$t?Q1+}E!!3ki zEG=qP7m=bC3zdpGPRCDTd1Q{8cMYyMAL%j0%L|?o8L%)ap&S(@=u>rLGlwe2ZabqG z;u4tDakYMojH|^em)`0zup2)kTwHD#TaBaQXwxXwSW%WVMSKNvD(|eOfsmSMw@a|B zBl@W_r#d1kQz>b2h3Sdk$WoIDd9%`rbWTZ$Z$OnwhAq0my_$aXk1Y$Uvt+ukfVkFB zu~|31tb(Uj52xU06)YgGg9=qjxX#AIhYC8JBO>2Onz+$0zDl>=Y}}~2qn;}Zh?}88 zJs-TqqgrxSas-7%KM%zg-!n9<^c!@U26;6owzw4H4Ih8hS(6>G) zzxjdUUPv!;rK6}t_KN;=N0P(EPoQ?9Z_xO4z9SM!!|RPG8h(}H$mym32Vrcouf_U( zfg=`96!-)S`VTk{I9JLqjM2t%D%!JxpJl1p5yNsQ%_WJ4$TWYXMN4u6PkqQR8K@JF zLINLip@_j0%^invQLe>f;No*H#6?%0P91f)tn}9);$t{exs6SC4d7kS;8$^K_-t5O zU3>!M0VY$2hk84ySl6KV4gJci3HG;iYSLQlNr>TdI*2Ow(Tn=BG?ESz>Q_RVDzyuI zg2(#_>o>|O&3^{0_IC$0_;i8q_fU%9P)J_S2*~zk@#&H7F`1T zv=n$50{Hrm?O~)8b)@Cmrned;m@DwzAaV~kVUHo5?v(rgB!fR9M0CWD=)sQ()pV&X zDzA~ckYK%+{5q_-Ryxx3YJ+V6le$4s1lEB;5%DjwA1XJ{*UhF%Ah%7* z(Ok52kp9q7k5bn4lD71)XemT5R3=eca$^!0`nVE!L>Y2&0wiuTBt!-M65*c|nFNt% z4Ut?)cPd5aR7M%%)R+RPQL|(MvTH^C+dFV|d!bK?kw|5%p`j@iU$G)xpK54qY{B`XIQar!3sbw3 zxkWDTOATZxqhkjNTCF4v(B(y{52hs5@$`s&$?4p3$4&u(S&o3w zr7}DdHAs{F0JQ|vUkFjG`eLFHuI%M#E+jFwFDthmaZ*gAQ?n>7Qtgxk)OJxV#LHuJ zE{>xZa-tPR%iHPNn4W|tu>xN2&tA`VWDNmvfUm-zp&X(LHA{IARM07b^gTLSxvFo9 zr((6~WKEjeQSm=ix#j5e!(gavEXAJ?Ootc-g1M0qe?wqtZ)a?Pc4>4`zRA&9l>w#~ zDh`1k`~fDl2cgm-lS}Og6l-O)`RP$d3zL*NIvX*dTlTa$T&#n{Wd9d0#d8bt$SIcC z7?jqDonKm|@Me-0->2G+ymZrw{7Vdqt>9q$2{m{)*+}M=6E`ujQQg^ug=65(*)jCqfew}aEcYpHy%X~ zsKUEyho@J0jq>%PDT(*4M+IS-?CY?<5My zNP;*WMkZ)iSxEjiH_D1BIL#qZnWrbD>UDYgOS#gHAaOSA&342bimMr&3rjQ7PV45L z$F97(J&HJeN=J++GYzk*RHxXwO+d zvmSTIsOY@HzlzJCH!`mnoLPw#=|(zptS%9&OC;*!_7kw^uR)<4@Coy%yq!|t=kVIt=Qc=GGYO5THAj8$EwhJ7Mbudk0hz31TLF%NMl-1`Yzp2jJbQ zz?Xe%&@oANY@@fX)bTF2L3gFY)AKLlY3dq@RZ2BaR6Ik!P#@J1+2P6D$^JS7Z%Rfy z52f2!DeYq4K~n`w9Jbu2Pg8BF1P%aCclKbEeh(stuNEVw{=5n1p6D1MjOnTzO*?$U zKZ0lD`eMnBm|S|K5AtoJEd|)uTG^0pNi?NeT9d8KP4!I;O*NV)?uXT%5>T1=3H=Ep zYenJ#*cjW-ou1t2lSuP4M>9gjFPNCvkREY#m}Y)F=Pfz?xN`RqKIhOT-J7cVoHVw0E4;o^_XB~S8lIb6H~?pXT3c)rJo zVDUOLu}2`!14poUlkNAPz`G42A0vm0w^?f}o;MpISp1!sS?bxQEwYThzMzLI#^W=Pz_z+U#6FptD{u$$M38Pd)P?Y}?_17Fn z+9ZonvmxJ`>g&qVmQQ?(xS+gA7GohlmQHnHIpiMkA^{D99lIcj67Xq@=85usUPHi5 z7iNhvmPo|&KSvH16TmIb?CkB4y*)#{oBt(EOkx?T8+*9DmIc6NOM;jxy-CU8kR-dF zClD^Cv*tc}VUCxQqBKi_sATp4O%UKn8I@sOKO{lSW0W(i5W;;{_>uU4GLlVR?wm>(iuOdq+hl{U_m+JS9QYc|IF8kjsY8R0lOO8x4R_wYh9b5G|5zSDGPgS!?bu*><%V!j|>s z0nFYOqp@wiSW1F82<)+`K0JSw)NUz7uviUd5nUQt(S6<=E)HQIP>&jVU5_O}tYyuV zbOzbg%;91kb17Z&ayeXVWG-nwt|f23;h51^wB$R3K9Hqeuhts*nPr!&lLj?Hry8DIhw1 z70Her!&4yzL=RMq=cpkcnmS}8=7gt%B8xuXh3?cgS3DvaC0As9Y07g$mX=&`k}usA zJIRzT{1Bvo_^hF#qkEVtSU{W#6;n6`>9Mr;(~@Vb&(K7x0sNEBSPR1w)RGlv_(~~* zx=O{FL{Ql*LZKxm&W1wyoHI13XZWYIL_B9j7Uw};mY8IZl}!q#wGfSSqA|xXf390y!)dQb2skSAhaK zEEQ5fd=)At>dJ|}e%u$68}IGvNUgEX56^wbEK*W@-PcF)9HBm6QhdYLhde$q|9nYt zjjxYVV1)X7N%3vyo8;AiL4~LVRoYdDryZ(7B_(d~ouf)BkFKca;0cNE_^PP39KI@F zNPO2T~H6C+#9lHo?a$s_wZ!Iu7iLj=IDEIqvfpJQNoEoe=0J&05Nvhfc)!2m; zNONJ~X$rdd1;i^@9Bc-Z%Xa*h8uBTR!M9*2x< zP`Wz0v3bF&gK2mjZdH-R6NY^3q+!TQvUt+>nT9F_eFjH7?aR=BrJxKr;yGW2`rZX) zz!5L{GSmkzC6e`|SY&x_fk0&Zrylt?fJpmh@{M}$jdjd8*c^B*o z9c$VSnc^(M`^a+hB9liF#ruYIL;Vn?HBo$MNH;eQQCbtls5#PenMy;DHi=@aA*~&v znlC!uGI>?JOAKl4P(f);6lIVuM=tE?YR}4?INMEXKU_?(BxD|lmOw6;WJ$<;5G{e6 zFclJ|h^F?*EgfE{m~OD6@}y+Ln@WQnl_w<|p3DZDmIvs36h0@)=&{oNpwNT@QOtu} z8RY2yZSuAAV!6Q=8~o^?MDbo7CN!%;bx0wx09wY=3Jny+JLJh&mvkP#awe#84B(K9DOPpvm3tZCM&UQ5{BY7=6Ks+OSN=Hu^rH zJg~)m(uR!Kk7F254a9cDNR@mk0!LBzW@uzzgaDeHb0cd?h(=aItwoQo1gA-L#j)qq z6*ie-1%xN?oRTlSOf=EYqM3m9{X1!AvBd$5|d#>3#$q&Ej0d7CIUa&%5ib;PrsR+<=3!;MaWFE&HV ztXRA@9!u9X)}<0n@!ER&nybH%ueLi(+M2VGpyi1-U?I;RLiBFP2v5k9ss)vsD82UrUk2wlFjyN4Mm8sfvZ7iK?NW@}wsm9i3dU%0N z#Or7~St>Un*^$8a$7P`SJcQ>u!Xczt4#}vZR1udZDwMR|@_Qa^%yY!USYgqi{aL&h zTIC-d0r|7Y<&A(zD&~Wi(eSe-{(K}gc#dC^CN6^Fa_J<_R34PS%y#$=WsXA${l2aI zcoShrFhB0<);u0vd>__jg%kKOqQVKV z*fQQ#4~==aWu}WeY|F-vc`O?&wj8I=S`5Q7)5Q;M%f^p+EE}vcG(I~9cJir+R%PgB zG@mMd0<$us1%HjmXhGUECp!=$5PkX8;!@5}2o(>)totAW1UlD9eqh^HM{}EwO^+!a z@)I)fV?;s*Sgvkr66I&3z3z_J7^=@nKL(o->OE<}tT6S#FHCFo`is#|sIa=4qb5Nij_nPeHqEfbHKRYB`%!mhPiz8`mTq0o+4-hG=%dvFuBT=U`iA zzu>PC*)K>d#(~P{RH-~Kqw976B#m}TlR?=5Fn@7tL(YmOrI>1RI%?E1lq*HVX%>v% z5_2LdCB&b6o8~VOHciSnlxNx9R2`+tctc%Xys;(SKxZS;A&Dz$G)24tGZpPyNhI*& zJVz*mC0?b;ATNi{a741bv`uYLyv>n8lxxgiW;^^KMLeBfKTX>}|37^F<}VTYO-ebv zKh`loL&lT&FfKVTapeq_cpt{-iw_hT=jZD17&*Ms{u5)pi5MS0sUFfSN7Unp|H!8V zlYt*Yo>B;_m^y*nq$^wQgOUVMG#5FY<7WQiCWu2RMQqY^QZ8lo$QXGXQ3gX5DiM{S z{4pX%0nu?C{W2$c*4#|4DPkgwO<-g8Z*!eA4p=rweEz*=p zB2)dnG5*d;9#fJc_B2hIzeSodNr+W{qN5{!0!oV5$24XB7HP^Pk*Pod4trLrz}A_j z%-EqRJJ5y$#kl=CAFfpA)Q=N>(4o?rr}|30=mM1 z-{v|pA*5Lj$(@JbcmLM#d`E>+p(i6gj)a=$=m=wlML|s{JkG;CC1m~<83mIx(=o5U zcP!q8-tny0`e}|M;c})q9PU5A43(u!_wU_A3=mv{<{XCjF_cbb8Ta=Ejw2C7*JB!; z4T=HZWB)$FW1kS_F@@?$mAg%kgTF_593;|adtT+0JqFi*1dGkcVlu`3`w0Ji!VD+X z)LV3)h3Dm*gyt`^9lk?xZTcgOC!y6V9BOdFKSmc0lNF|04=b6+3>KYr8 z&FQA5*2ZK*ytxsRnY#RLMCCF0C@jBqqyDgdU*HHv5UFl$@9yCPwsni)h-!*R;CW8c zn(Uve9kFm;35m%yS!HjgBd8c619KA%H9T|0zs`4r!f2u*ZFJAw#3Vy%mZ%e^yu=Lr z9-Wv0Vj10g(?=?LRgR}VNt^()Qw-PjWDo}|bVQ?=NL1?g`fYJ&qJklI1QXT&HE*K& zG-MeyMU^khFhzV8=FBW({G2z-7(5t6k@llk>7Fl6EXpy`j$!4DnyV=jZ>L_xbs>GFep&bn>!FRZC+c+0;m<&BtR+ zbli1IjUOy7gt78=YAz{z(W$uPU~aZ6;D?J#*ggKPWjh@4xUo8sxTP>*+v; z+GM)5A>NR#O*PlotlYAdp3`wuo6BC3mmii4jW4c-wWeWOQynZXlK-Sui$1)W-=yx9 zT?>o#!?cM0muF6%u&^M%IqtDt2V46O)0WvS3)ozq-=--kZX8KG(J8ZRVu`juOd%s~ z9$8HNUYcXIU|fA!@x7766&*M)zZQriclK_D6*~WCSS2HH$ikxhPf&Fe?;uNJSwtz_ z3#IffF!qjM>MQXA#cvAhQNxIEJ$j7s z6!f%&`;(__3a;!dWgiO*h-XG-FBq4C_H_K7CwrnMqEy$SRKEyDT?C^6jF;eZM7gIv zab&r-!of7%nXlZN1o1~`iYWI?j4bzFsCWfBBFa6p3YL3^C0;M&SDtdu+PK`m zS=ckbJV%s!<(tnFZx`|{q};O>F86k6TUAKm_;SrM4Yr2S{^~3esBog&Lt8-1guP*mpR~Bw^YFS8 z(W41RMpTX1YOpdJid9|5%_Xa1|A-pwRKzg#dncGs`slJXxdxE}h&`;mgqyv-bEuQ|tQ!rI`=$3UfJ+%Sn zE7QIB0IL{dV>AJqD_sr#!Kw7%rGv{iBQ$fkSV=0yrX@UE7MFjfF6X<|aJp<|clXME zem_7qN(!FcxmTGLUd7}4u)8w#Km8b|_+$;xTcy%wC)+#$neMt%&#ud$>5Be4vwx`LL@E6sJbz!W8KO-LeZ) zNtY2i%1&mAu{H#K^fA}|OpH$WpB!sSt%$WYq*f&34YduFPqMiZSysGqBG&jxbhtPL zNfK5vmWg#9PZow?wk$dfA6=CRa};sO-Gl8sPq%iSKgL%XmeVPLy}X@* z`<$1D_u#c&m3_6|=@&8 zg;u!RX|46DwAOl~(>g*xrnL?Xco|G2j_UIc`f|{QT>17BO=GXpk7VrU2oq274Mj<|;PeeessnN*!S?%h zSr6xZFuar6Oy{-Avr_qB=$1Y69?W^DZdgF&iwJ=!sJ&~YXQiv@)01?d+JKit)TZT% zw&Oh|q=r^8&9+%dF}$73nUsKApxjFo)mIo%j1RYCOt*H7FAK&vLO{j%LC+mD+`m-* zYZ(GCmZD>ID8s3|Ir z1|_AtFaM@q%m(?~RReF77gekcIdPqz-iM2Ks241Y@lD>(;ugB}%Ih-m13v`c>M{zd zm)q8>^qM4NLbse=s6~R(=y%HsFwi-0TXL;+wykxJkv^KDl298aN=nuX;tm;^A=C#& zYfkDl`d#*8%k8z2w!L>JtGj6cQ9aO8J&;LNTk1;(uP2PEPhs+;7`Cy*q{@&HS|}xhEtJ#wJIbym=+>?#{KQlFCqh6~6G3}U{?X#9#?bc6 z8bec5Y)y*nsjtj#3wC^Y;%a!==96~J>DG?9(?g07pc>tnavHlbY0OjEEimgm)Y7HHz62J(|-(}KW3DspX|s!D9Wg2R}-bR z`KQmE5_7CFsd|cZ%O=rN$dc5SYb2>Ol3ZwKfX0o^^g7ohd&3Y-Y;rrJoH- z8T;srwIc-P>nh6cmusfVWQN0bCRJ3r#AY0!G1Y5ERJMiLYq)c znl?d?AR@6M1gdpnQQ^=OHNmNM5@lGu`sl*ZW)_avK=sL~zMg&K^s-~Jn#S0vlTcK; zsV85pcpK%sP4&GRf<`W`NNIRsEDcI2HkSRWUa3QRTsbr)ZHe^ zSK19#T^OW7v#H|d)AanBYRO~v!=_vI22-Cry*KQ6Ypt+C);e0@L{i9WG9#V0)_PT8 z(t6SGa(-}@T_OZzI_toImk1ngQ=nB<*%6+n9dm{p5dw=yz+3Op9QBClmLCf^g(l2L z(??~^iMqJ`gz1)5jc@{2Yg0u)Yx72wPNNbbz!SJuQ*X>DX&Kcq(njd%_$j10DuqlA zcMyv|ndzX_E4{EMXC8us%V1B{FCMB=NvOnA{TsUF#G{U`9v(_#Yx_6Q;SkDLyuff# zE1e~Cj8-~V4i|N3z$Arw^S*^@+F-P9q>hd?tDaQRQr#E27rZqrh;O}wO<=440Lgg0fClQb)1%_I*#I^0|Tm2 z0lM=C(aEM9-DW#Vx9li&sW1bOcM#<~0-nSh`cVROgV9wvSrx za$E0Sq&K{Mj1bt5qpt%4UQ%Fiie59-P#`R!^5!OI*s@AJ7PT{hZuzn3oe84fo3m88 zDMG;9ld!`dU&?(5VkiBA8QRs#n(7G9EnB1R3Mwldsx~1Qk+U`-h|j{O&k@-EQ^Xv|iOFXuVz) z;q=}j1Z1_Y0|QuYlSKnTH$V|wbrZB zTI-EY>j(jv);ciYWiYKZO{KLqI+V07UQIoE*?Zl>APHeB!I_!+C6{=`xg}a^D zTCYlMtv5QcBLrk(>%f4Q!Nk@ymDt+oP!hXr9qkniN$~UR1gBe0aCBToHV)JZRaCUX z-A-_=S0%XC8=c@00y4pMV8F{@f@_*eaBXxb30|^^7CD2PYIfPFO}CudXDQQfZosvDS;J+Uv}&%SW`&A*T{Wjlt-a6D9vXhhbN_+KSrupsiq) zaJTvrTJL<>)75%0^BUgMjSyJEJzX6b@R9<(v52Oq-5J^-Q9h!1+$+sZ8L@u36NBpM z>I7OwOw#tJI@5aLqrALY{ac%s>mnWf)v-<-yT7wKHb7@VWM~4I_IAX&cUEIV$3Co( z&Pwl0^;Oe$+0IUy0p8KGJ;l;BN%|l}BC~9Hb#GrsPag~N9+4W)j=vM+e3f(5u;?O{ zbEvOPz2)dYXKq;TTw6s4%bI(@Ia_eh7<0#V!@k%lu}l=2y>V7)E>_;E$tt?#e2#U4 zp)c-hC2GD_E1}6Kj1Y8azyzkM3c2eni)vjeD{4zve;K~Ji)880N@y|6bT?pvLQ~O^ zq0q3o84RB;Q7Np3>2%8}%DG>|Gd_$Ep!N!}4WAa# zGOEefM$E-|O;J%aDZ3lR%j_u9tsTYb!3P>4prV*JeVwPPb*ZRpo-2%r+M&obZf`e89YS@V99~IYWY_)w6tm~wK=S@wyoEJDw0N^HNS4}2*2!^QKLuUA1TnC zay4W!6xc(i|9muC!>>?jr$&Bs%V~$*1wZhsao$+Yb;ighO|+FcvZQD$$Q`>iWYT)8 zZN1oh7(Qf*5TGJUNv{I~UYg}uQ`EDkTTU*bd_+U0nzh~islEX@{!v4wbVpy*n8_c( zeBCYtbjzN7oMRRp=rq>bsX0}zpYWsUMe{o1k;;|IE7efaEqgV*k&0HLMk-o~8mZ{e zfQb=}RJ1NNjL?>bH&W3`)JR1uQ6m){8ZeRRXm=bEKjvDz+wNcf0Xd+p(ovJGM?YK0+Yx zNJY!2?z%Q&j#M;7MbV_}ZWO<1N0DyrC_25U2!RoeRJ1M?b#2@msrcPqHByNXz%C`- z2h$XlR$3=0@AysJNAQxyH7ey);iX$nx#*Efgn%(pxtA7I3+%elO4J5?ZI#+UbTM^k zz$dhjYFkQy{4%_**tIGNRBc4JoCG1m7WMoh1n`m_x8P2JiV&DR#6G(gpC@|^+Cg(< zt0{pv5M`+2oPxdcZ`;X4w{|i)z4HhGs`Z96Qqkfnk7#@5OB$M@Vr@{&Y^2JN5jxxk z#2KkvXV*7$Yu7h^kyj&?2m!QsH2D)ud#AzD;%e4g+rvgJU1Mm9imgf6y^+fGc3kP! zj;k|Li4Yj#NJUGlwo;puBNZK}B54HX8L1e(WHmrB^;^n!cjoe>7-4f{om8&!&_ zB^|ou6hm)eIB$?f?=`>XU|uGWD-rl;RW*G(ySl$4-r3Q;jg}d@x6`77`TD58OtCUe zXY%usLn4NE@b_UQH8@CSKP+t2V6%m~;>FTx!fHOfCzY(J-b$~i%7u_bCf3ni-Iwa3 zKmFBoR6$P`YaL+=6*t*A=oXb8a-kwRuwY9UEH+Lt{jM^s8WOtY2Qj>!yjG%m@>+@N z$?MR73H0Pcwoqc4{(H(PRcX;JJ7sr%wOWJwN9dVy@!vs*LkZ-a<$WsZaK-R`z?D={!)>O zM1%nP*lK=!2)RxxQ8O>v>SCGebZEdQ3jJTnb+_5Mj&AK-=OjUd0BRa8sZO6GLI88$ zg|-ztHL2F6l1_Vz#9`x3u8R;@P6E2eqA4oZX`MvTxsK`r{Zv#%Xp)SY!VUe1tI6B# zYLag4YSM{+guw8sNv%XxliI4PCUvN)CXLYll?;1_onh(L&ah4rLp zRn?>s`oEIv?y_?o-P*a%sU{-?ylT=JrbY-*P8ohRsdX)uBX#ZVGF?qNxh_IrU!$7T z6qW0=PNEpqq<$)@A~Z=n}db_TbsQD3X6_Xzn zc^#^%Nh4He*kSc;hSyuWMA{t9mO!06Xwh3d&7f zhZcAx&Uocdt5k~t+G$k*=+HovjDAwy`G(=8-w###sii);<@7@{8lHX;0yNbYOh47= zLlp8hXp>))xT>%l8jQlObF?bX z25Gk^w(eEwtyI%3r?=^67U0*0%N~|lL9}oqe!=Q z6#Y6{MKMAkZxpqRilR1RMp08#6iv$RM)5v7igas7(XVw>6e9%G`d0YfG%ceh>a-Em zRJW_`cbcN2Xi)M`*Xao~HC<=O+0%6kKa%OXpQzMQldE*gsfBlBKbq;fdUfPO9nO1@ zvu8N+t-m^T67LA^p@ZN0PVDGU(RA8Cwy(Ro);Iy;e*0O{Eqiwm*D29~1snE)<>aTz zuxdBymJJVY@=PmHlV@6qnmp5?0TU6EXVxA`qq+K-a#Y!%TXvM%2&zzZpsG-fK%+v{ zeyDtEkP0T_@S3v+>@=lYFHN~Q^T+V2b&n7j-fEjxqQ*knD)(^P*6UF95R6dWKeAo| zH!B09>3h(A2y|;a1Rbazf)Qvu1nq}<2nH$o1!5x?{9HMpx+QeW4$v$fr>;1#^Maq|m?C|^hkBY30_Zw%mFXYqqnWA(G#s{Tz-0w%z#$## z^GlU@>ScGj<-|ia`+>jQ%sZ+^dZ>>!p%P1*@Dj^8tRh0d9FS{@I&VPhB+5s$v#DLx z+&G!juej;Oj_Us2RHB1E)tUT=4*GdWJpq+N>6V{B7iZt-z=HKt!D{|tWmpw|x@E(| ztLC*5RRwD$s+!lK0TV;1=KZ639#MWO6Liadk`gN4I#5+GMxar_Xg5?68>B+7AiGEP zJZe8Kx@B)hepHWEsHRo4!reZqN9$E3TkFMQEZ0%a%ia+JGM#l`z)J)cIH?*OqdDpkYo*{6c+1>9KIB*SBc@w^#NKPqd0T#`t!rJUIUJPk+`js!OhoprCn4q&X^yOwJGd6IMcZ76t1P=kSroRFbLVa_E+m z49hx0pUu%q)UIr;gqJPa*6YxK3GB+%C$Ycdw^&1phJSF3YNj7o(NJ9py5(qKK~P2G z5p#=EFj<^Kc(gt>7}WaIAv`)XU~R;Q@cdeNuNp{pkk+LR;nBLhl@EUwCBJ|Dra(xD2sL5l7}`%Ua`?0iqR zoCK(H+ScnprP>IzyU@daHCcD!_Lg(zx)ZmL&LJZ`gh%V$&(>Q@dc#}32!SS!z77m{ zNrAzxyJo7cyOB_K*S)4-*WKxRhwL?a(k|_E%g+p33qP94iSsZgoZ#nOXb#^4_`&iXdh(Bd-%w;^KoK<;~Pd03*<-ytN-HjSW)4F3`Vb1zym7#(rLO%ifHz3#7HF6w=zFyFd{FdAmSbMsKN^5OMzwG!3K)k;(^ zSBC~nn7!QKB3rP7;}quSmD{TJpj&o(h&?eat+J1nmOU{Y7*IXJp4bbvqjbxTj;JT5 zb*Y}1))n0oix4n-Vw$32t99BvG5rKp1~f=^Pb~VesjlIRDmB#bfNnW8xPvPyIamK0<0@(HtnAg-y)j0}tczC{^rIKf~?B&rdC(jr%&Aq&S z8Vp*;twsn?h3$Pcafdg6q>pyu%ZA4Bx6nA{yRF=cX}OFkp2G-Ys&vWP zpET>rKO&}~bncb;AFvJg4?W~UG5r{QI@pTocq^vkrFSE$RB|Ovh;uJ~MEy^4^ zuGg8(lK-*Ho4lWg|CPPA3i$wKua53GZm2hd%YOXmLl08OTXHWz3uYWht_{kiXl)Qj z>4!g2<)2Nj+1)3qwAOJut(~aXPB>3Al-|NmG}J!|(pzA3eC1@UHU&a3fw{gMK?R{a zSZ&4SU>z5y(hsG#xel+e^nnm`_{1uDwCr%O56fMqkcYn2(s`t7bbXL8tYutx(l>9` z46aDEO_XIp_ND2L%YrvM;neb>bZRd!UCdi9i&oR=etOs7GSP!?o#*w)NjGIejuEv- z=w_g>gZPTwJvPSq6BI+*)>VL5_oQ^N8yGIYn!75ig#EJL+}u)DFGY{hbNAeK&FFq9s$ z2hZR2(xyb@Y!}^e+|ZQkxP|HjVRz#;#fsaMK-`?3LMWZbP3{x)h1C;O!m4+#Y#Dng z+d{Q}1e-g>n*n76tvyH5uYpyz z2&K1jyBz8+1;zZzPf_d?T|vfl(NP3d`6+LRU`?&qhhkBcsTx?-ee9QAp9%)kfySDu$)UB>N}-&K)e6yr)`_ABa(%)e46CJn$M3R+uF&Ug zC7oO|T_%EDR%n|p6Tuq{`ejt*nov4Mv|(%ep({aTgGbJ)MNt;zcgb{^?G4UZ4p{}F z*TFSkjV_cf>hAkXI+~&~qE9KfE;hV$oMENoj6gd2t(8j0P`dHr4)=k^9y+i_cY!EM z>f6sF@=N7O<(IcS;M7#gFPly^6)n=Wh5C$IOz$1B&RiH)jqPO1nKC)m^vX<`oZi^= zG*kd)jU7ryat1qXp+ss4D0)#rA8|&hlrd9t5|uJ$)K8Jsw3AUn>FC9(0=L&<nLix!VkRc$ch33U`+Z;LmsP4NF|Qrnwkp4S&)v>F z`#JXyV$Yd_WJjp9QgHL`cax}+>=K**MrmB){9>Qt`-x9J_|YLy{E|qEnJk~TR)j{Z zxh;0xZnNw5JwVdyHmeh>LUY2VR7coymF2`L+$o7|MVgtH$&*lNwc-rCwozpuOKc8j zHCR&O{Nz*9w)xQl0yZBdhEavYxhRu2Dc&|D1oc%mgpj&Y*x_ir{2Wa*lWFf_t&?rC zyGSt2JlSov_BGzTLo^UiLlU<^?29ho*PQ@yo?}XjIma-yRNVZ0o9^{7P}F**$o1EWK$E@ zWB6R_Q&nW_w1`n9EdDsQgFm(%^tQ*4NIwkC3AZY-xkzB1b70X?-DQn`>E89_`Z<)z zkBMOMX?l&9Dj_xA5MW&6Re^U}jki*1-KM)F^whs`zvgz^Cp!Law|zpK$*h7MudMp{ zQ=1YMzMtBZy!u&X$VqHIJN1(wsD5%ps-KDAr%^xIo)R=+#nn$XApr@S%)~ScR}bW# zOl8u8=}h0q4&Htua1g`yz&1^GVGhzNVbKOkSYqN-0jJ6XlGq$VByP;C*ml(&Cg3}a zxN{z2cGr1SDICKc{+(O(I8^gVH2J~1jbCV=<>KZ_mgpH&>}tf*C$C`#BoXu@^}T_Haw zwv_~>c_|r$YQ@dga0U|MswYz=3@0{+tp@}zaene?1|?&5n8Z=6xQm;w;HS>FiqR)F z7aF0>Pv7k9H^lzL=8*NhJUpk#b{g7qbARbZud-Hf^mud8`YUg3NPOb+zArY=uVdnL z;?g9f!1E)v;Kku=rNtj+@Dx-|?>|=Zqo2k2(a-D(37XHuk9^+88iJs}Oc0V_1I$YV zFaDAm)_%4pjUz0CzeM-~n{Y3}CiC{#{yauaer{Xgb&L=t$W;=XLqSXOxmRsFJJY$w zv4l-K2AK$58dNjz*&+TfVypZ`#VSK7jH^s+UL&%gO4wm%3gR3~Lbco~6QQHQ^a>S~ z94b^1upjx`fWYMc<%&F}v!>qmi$?1DkjGTG5Vy^-@PiwGK`a~qB7)JuDv5&gi8mL! zj@wfGfm{$HG7D@Ey$TrKERxK`=Ce})34)l%5h)@kf{%#Ev2rezMz~6X zS{0K-=;VSNS&DMds2-D;eQNp|cDvKq1iK+YAYu+rgbe-)GRsdC(b*fHB4m?INH)VJ zGs#}tLR%k6!d)>6a+jUvHCW*s#A(8!YlN`G%B4a;mB%8nIqph=Zd!S8(^APQ>5l`E z4{=_#Jt>LJLj&rzX$P-TlnJfgaDju@_M{{>htV{GI*IeU3{OfWwpXU^uOVQ1LpW8D z=qr@;Ic>nw*aj?fSW%^ua1!z6kdAOM66Y8D6hGpa)Wy!cGF+UrsOG^H8&&x3$d18W zHZ?dh6xUc5#_rBSyE_ybDlxVKre)ehEwuzjA%eifz+1~i9A0HoT0)>{h!BJnPJ3Qe zw}oIxeh8*^1bAX|<@(-ipSZNhJJ)O2fM>%YrNOk+d)j5aTqzqbvcsYue^JQ#g*X-d zM9ubbqkUqJNRUG1kv{wL3iA*FP?qM92(^sd<-{?--+}G?#7$vuW&QuVMYjIG_@643 zrHX}7g7}49KS~fn%~ZtjMYx>gLOCoPZrevuIc)gK$YBk37?i^r!o#>yau^4oV8sDy z%VCMlvDaP>V*|=zgeMIuCJf%CjI$Cqs*Z&K8U06q3#&)8vb1Z$23J(_tDI&POK7x% zqP@Q{JgE7Hvk){19zlDzYv=_cbxUjxvLuRW;w*(^)lf{?o;G6+jXM#Mu-JsRFKjZS zl0Gd}s*(PHa9qVVWQ)OmjpE(~00~2-9MgXM3^=!ixJ-*o6BSHkrMo z+H6}zNX@oYbCgsGi;^l~)s|Efn|~9MDhHw%!+F(~R1=%eSyCmmdgBxvytbs8*gP(& zCeH6lNU8)(NtIKbx1>s_6g>%b8OVt0FIAFiVsjHm6XzHE6hC5-L%n^Fo#TiuEoLyR zZwrG4sNA*0u1t$vnePFT@~HWl)Crq$JA^IQQ8uf>q@LJT$kx0}>V!)1iZk#Gq{^h8 z*xceA66bd%;&up_u{fNfhz+$jDc&}`%+)a>RSEz{;|1nuVuYWTCsio`1j9fag2BbM zYfx)n9#myOPHZmcR-xUo9nUwMYW#fvW=8Fr9QTOUen9?^$1 zE$2_x$@Kf2PJvD7w$lxnGMhNo0jKKR7uA`ekl z-};M4>PhnA34&1y98oM*z~@Bp_~w-C%a5>~-BrHZc7eLu-L?yI#!3;Zb|JC3gl}kb zy*N>`YhrWJxQxqBFFI9`9YSN`DCg=6K2-U}5}U{UM2Yh=KT)ku5i17IjI5UPLGJ{k z_v{Yk9y=5QzQ+#5=X-?wAqSAF=E!RzNR^WQ^cRx&4~*q?C4Y{< zm@jv^*H%x!_uA@fbC<;C({mSgA$Q>jQSOomQyR>7ZOdY7TUN2Qs*r-j<_RYoiFjle z9xX?Z8|scW5hfZ;FT#?Wk#mM%eXm_V*MbmFMD5vXm)(J1#GLh~wsi8tKeeSpr4{PO zZ{ISxEQDTN?5uEIOILfktEDBKZt3Xh?a8K#quVmKf9qR+SFGQrkDafK&OpA@D0>#8 zsL^Y(<=sE}*0&zWr3V+I=tdrITcaRtcE><^dtb(0!p`IeM(|WM9>4BMXXJfs6tcCF zLk$n+wm+C2NN>fr!F>OY?fId>$Iy*{@weD*`bXtLz0fd3iH=lho=fLI#&?Y_}$ zc1OLuqn%zP4`~miwPeQv4`g6;`|uK-;3ItlBaa44!++Py0P&U$>A}I=K(@ZECH(!V zC3wwy1RVub!`9qLebWM)@2b442OqI6an}t8^|^+v4Z*Tan}gp4BMr+pj0`PU6bz<^ z@e)ygZo5uxX_wUTO+S(E%Le(LZKzHc4EOhC@UD2c^8Vow&N&LoPd@geu3}NpWfLy? z2-@!$Vi7fOFvR+{>JYU)&1mcy6uePRMjCr#Y>*qni+cr(J%mkLJz z^D_1jDoxFtL2a*OVslugag!70C!eBqso01o#^KOt#$$P=@>t>tBdl65$NFf5#bY2W zcMRLAl*7d4V3DzvCeBY7?M&9jV&zJ2jv*j3_vaXyO;}thVbxw~V)M$CCeH72R{CM( zN|{+t>|m0<@c-FgwW^w7gw2%`HjD};zgAU&OKdK#^LgDiLajG$$4Q9Xs6up=2{5ra z43D^NiSv_B(c8vG@%xK*YY!s1B~R&5+iY+i|j ziSxT09Q>~NH<+7g?KkE~+CT}HtO4-IAxpNOYHg$6$k zxh@8AJ+uRi>ME*KD_@ln7B75VA+{yv*uqCArpL-4vT5m8l_i9bX@_O*uTTix(yA(2 ziOt1)L`z6i0fFb=rRK34BW*Z}Bn*UU+li2c6u84;1M1UZmU7(8UwbR*Z~3taAhee; zHx~;Ag7Xtc2tRq{P=cwdjIlg&(%7(9oQ7SY>ZG^Z>{*?Z*}g)AE3ep3PvGLS<$rC(#0^$&yB5^G-eD#QEWq$1*mcUyVaagUSt_D-GiSD~v*L zfR%17RWvNI`P%9UcgNtN!Q5#Whg=_nxM3z5HZ9qyvVs28@R(PP8Pwi5RwYX(HV4`# zW!_YgICiF1$gzYCJIay>T^dwV>e;O_h^>-I#eS7lT3}*xxb>!SFtH2Q#t}s0b!$t6 zDGlbkwmV{LyCbwD=$)+6`x2YOTvxTW?|7!cE?gT&h^{RWrZo72x1DWEtfp7VB&woz zn6^p}6Vp~BE~D6McQKw9iUNc|3npRcir1`3gfG@j#v;!5aF{(v%R93Nz2*IErJ9h~ z9R7`2ix*W9tb}}r(GpI?i@^UyWi9N)<{|=9yztTDi47ak(BXaJlF-2UJ?4%7OxNQU zGoP>a7AH367SD)|?95%{Sjflst4)Ni3Hu(`NNOXU=Zj>CseGQgRhb?Wo0EpmPlhFA z5(;JqdL*loVH2Cfq2`cmRv~XyoQ=>I7{+rlg2EMak>Y4#^LYm;5-NifISC)67~cQ* zB;w7XwLm6LoS!H(q2$gc@$HAa;IWeph=H7qG?*_2-WlUTcUJJADr-n$b4^>WC~FZC zadzR_I6{;MCBj65>2(H*SkxIJU}JWVe|tqDZI}i~vj@`v!OLb5z!6umW+wwNrHc9% zQ>uJ?LMQ_f6%(6V&>BAxjR*;!VzDyQ`{Jw2cibE*rraEFNUf5_6Prt@rm~$dPloMy zzTs5kI^iE?Jm1T*Yb~-{z#V2%j_h!y%JP57cxra3 zn#HA@I7?Be-5$ShV;NmIN5+mRDV$#O4r!5|Vjm zck~2I0g3Yv2S+l~O>8dq1hrDkSZIpfnOMNlVCTefB|;Vxs1Mv{i}?0Si?1;A_K_$lb2v!C;z1IYKgcRyPGWO4?oV%yoZYE%6rL(4AtBN=Ojp8Oh z#pj1l5m7F2Pc~vOkG^aXM>=US6D_aYz7U9vMPpNj%4xxjr0+DMvS8>WbJqZgtKA zZe(I}VQhxj)j1+nM?nZI7|#Jkp_(1)63ovGbqPikEuD9$Ajan%Z{CdNl{axtvuKUY zLM*yEiz=~zla4nR)oEV0m{3>5Ch>rqMAa=$Z2qv`;>7vkQzY?&P2%|S+i35qPxDsA zn43eu%+2xUknpU@yAqqLajg3Bn=157%oGy5I?WipMCj6Bz6xiniI`kvtBII?m7!qA zRVFqUjRgWvB|WTSC+y5rFODUtUT&3%(9s}LOrO#tRi+4x8HA0(cQpL1s+dJvOyO<| z*RLW+jkqpOdDx4XeZ zIzpb2*!=F8Op`djdjL_9Y|T%h9%=dhO6;A}yzest&v~zM^RD7DoK(EIn8fDAWe9as zY!V>+c5+o*Cb4-giuv*R#XiN)8=oR#Bmu|KyBG8DVkBFTFmb!2MKy)i^qlW*8toa* z4D}8A=d|h*Xz2QSr|S|u+GF%8%p%EX+7a6hCir=aeTbxFUy03c!7TjE!5PH7Utvvk_N55P zpg)REd;pjBk%0HawPz}Vtk(2iNfbAO=?;TWe)l_2cX@N1Jt%V zCN}qWN9-vZkdqP~8qCTZH-k{HExcYtki_go*`~RP0|duKFs*Uk;y}$D%w%4h*xbZ{ z#Q9wbae#nHFS+pA;y_~aZ%iEEXr%X?Ty1e6vH6_E0YalVz`<*a1BuP!;y~j3E<+rs zlLG+ig|dJ&K6|poT;>kT2{9G4lLT<{Jb3gy~OA+Z9+>--w;uLI{wX047^|`v42EQ zD-kjXFlZ@1aUtxFPci;frN31vHzdj2RFY)5H_GHgUlH4pv4z9M8QY~R<11peBZIh^ zxGeFTSBkN50GiD>fcM2$c?1%hOAdjPgxG*`1mU5-2-7w+Y=w&U}YPqU0Ju2LmACaFf4Dqcg+O>F*+F*c6I3(CpWW^9Sg z=gim$jf{c#N#zv@QY=l~yu_ZP)?v*&d*r)gr<5PsO zv3DFrV~mY0;>2K{jP33iW4rtE7#lm0v9VJnV@rf=jE$eT5cZ!vVCaI8XFss<`SMXsF*Nl zuxeA4@@JL2L4Yh4N`MR9v4G060gHu(4Zc}cy37uSNXMM`xwBG&Q>?8cCN}@ZSSd#%o#o_ev(m)ob7rN4MpnwfYqQeC z=5bb(lvABID{I-R@hQSe**lJ+F;>bJabh4X zs?EN$QxxxuQJMQf$JBI+B0JI0%TASs-bBdBhF;w9sEWy+Bq{_CJEzxe5<$;s2qhUO zTaAE?8A89lGWy~Q+gIv~D{Nn{q`t@js4sGW+WKN*^QgYa2Gkb`Pa4dXtrB31Njn7C z8aYKaSXkNMn`NsjV+g-8MEJRxUI~tDmEh*hRtc3ifKY3*)x_q)JJ+m9oS%G}FIy#G z(kxD~Hd{?>{*AF!jz*fx$<=17iOuKCRtb%4m4nx2tBK9yY&CIySAwk)Fxe`nI&Zd0 zsAQ{zTAQsVHaFgxIKSAZ_z~k%gsrl797SVnl`Y6tInyh_R#(NS%&L&eOvhH)iENdf zD%olx`9_R@KLs!2zo}gN-|Ei8UY()tH1dPJj@bxvF%gucHDLn|9rIQf-x!> zO;YjG2W(pzM)ZK+)>))v)X&ouygGKWt8EIkUBQXXy({>pIs_!wbOp07Su%&hd4Q}Z zf|awJwJY-1vGx4gZ|NLekpxG6NO1G!hlEPhCDhvdFtNEXy)|nR=O>@$%MS^d#D-I> z%?}fse`EZRqmfv0a<%zkV)HrkLqa1zDkGCPiQfWhvKuq8c`l0i@#Vxm#nA(wBD|D<LfvDgKZK;!40-aH_z&z>gRn@zlojH zZz@izDoZ%AIb@P)PKsTaCCm|i8ab&%n9?9dR4PsURk`IGZ6%~58*L?!N+1yM6K{L? zDIT;?8RI&wkxh%vMh#j#O$u^6&D*gGC1aJduX0eZJ83Vwi)b<97~&S0m#dsZ|IBPO z99qPbR>zGvhY0O8chHUC^(g08cp=S+U#jy{Zejn5?B95SP%kR{GiQTYC*k^JCllp#)!^yLTQ*X2eg4@EACgu|unHb0RlsC+ih)FA9z&E>-#Iid`EO00hvQS?q$Rw^q z8qC@Z@aM4&{BzsD>i}tPW^sb!T_m`9n*j)wW&lF1Z3akeZf1bQ`CSP!00EO%bBeXi z0Ex}z0Kbt0C5}ctkCUry21sl!WSf(l-4!J?ngKX?Z8Jb(^SBuxaekL!2AJ_i6EIa} zPIV;~J}*_CP#-XcN~miAHCdHUZ2lKY7ZT?e`xHN7e2S>@>>WqZM=%dhrrCmInlqIa zF{yi688}RNAeH+Wjp z&2~2xM@I|S4nKx>BeJP%K9ky>8%Y=OWJck-w&u?E-sZMUdv8y!x3!}QzZR}*YHI23 z>FUU&+j`QinJ#O3^X8%Sz;Hj_!&ueVpSwRdqJI~+?7(vw6PM0So_w+V>ht60PXE*S z!sMl5>CLwT*8#6blumvsdV9` z(%74&b7yS`*_l)4#?PM*wm*(G!Qw$%iG3}7^?QKDh?B>5kDob9k@q2k1+AIh3_(HnCkqeBA`FimJGLts`o zxboglE2d#{lig@?h#-%o6bsk)jP~_sQ}Tica9CzjEZkXs`#G$$H1_<&p66{VOJAR! zc=yEkrMC!I*9MG!a;R@42RuuS;ka|4kkQ?Fbqo&C^%&yS7_j*b{MOkRAs z^n7?$iX5_?*2ZCvY{K?@cC!`2!_6f`I{bC)_gfzUP#*4On&n*(m(EeMwf+4n6Zfpn&>qeE^he;AWLkf zeFK^P(QIxw)zdeS9@-&TPP*ae4$56Vyl2`K%skbEaT2GlbB`0Vgs$@Tk(*4hM7X7ix(&U{%rZ3^Q4E^|EjZ!BA>tI$Hx4~~^SJ77Ce zg;PeWaJZ%8uT8!{Tm}0n9sC3jILUQAH&#CWo>61$d{bcDul(9OWS?WNP8HvnJb99b zdu@N;z~g$dpaZ$5KqAkCbN~!;VC%w#!PLta%lkng1^1K^pkWdvFzS^^;gn&265W#M zX3TK^!y7KM%?;Ttw^>!)a!xvS)7g!;J?yBr-5)bs*(%(**tQwTRVp%)8y;!E2E+z% zXcR&J>2V9FW77cZpL*lD(hKiQz4x5aE!`y99i3Pe3WUrwiLBi0C_A^*QTL5FRe}c# zD}iX(Jr~)}%*RorpZ4~Eyb2=~epH*1lui`NuY5t;fBZGv^zk#l z_lpw}tuRa!@qY#tvdDk3dlZ?ypY%VQ%X9V6=s;?)Z!m}L0VVv-zxdX-%6pDYzFV+O zxBD}3;@yd}my*bzlM(-UUKPLHbH5-WW66J}!5%*f+supPdSL%QV#s}>acs;DkM@sH zf7MwON1-4$XS;LlU77A|wzWCkmNl)pCEL~7+S8ipZSQQ(wD;JL9i6>h&CTu2&0Xzn znXWGTv8%l`oyqoOdo$fVEu9(um`k^}bTxN%wzjmj^%7>bqp78{rMEYi>1=Ch&Y@*} z;o4=RTbB(F_iY_`AU%+UGE-PrdhhMh`LmN>?k(*+U;5y=iG#br4TJiHOBV%;@&9+> z|8pamh6Vq0{?Np^W92=Uf(QGa>Kh0q_kUHo_?l_z0d)3q;rXeT#)^eoDu!rqBQ;Vr zjf^*W@_6aM(V+gRVBylBc~P(fLk2Azuvqwh3U5vJ??|Obx2E!g#lo7>*&<}6=!_x7 zjGrx(c0D_J>EOhP*T50WU!ItF=IdZ#U=zZR<-;fC&sV;HRPLJXk+W!S>S^lfZN`pv z^mcc(x9Aq#kfK^VGL+6h@f+wHDHc|lYG|rW`JFLQe#hP_9ot(fyeeZp{}Pz*>&c7hc@-@*I@nB&=i^o1I1H;Uc3z?zKt6mgX+^97%W}y)w=tBn44|uD~2f+ zeju}P79A6>gm;cObU*TZeL6`-b6~ zOl7jUUT}>R-iaL^Ne=+={yi;5%U9?ZDw*ZOM@nbTz|sU63}%GV;m;tU8#lo%9zS=q zwC`!bfw9vN@r}ESt>&4JppXGz`MCqQ%}=EJM}c9lpA1@C0$>^RDl{z}_{weyP+5sq z(^ISXpJ4p_Ap;{4NZsOQNUw$deE#v#!9e%_qo6lGI*<*@?>t|+^qN>j#&*}04}V^=1?>IfkCKV`<8D(1}Yypirztu<=c|YW@v+mRU9qVakJR;*o_!XFQ0&X8xDAkdV|bX_>SsCY zh4Mg-|0!J8Hyj_nSZK4}xc%i%-wkSP zq;0^5wm;YdDC3IW#5G+>v2c$ecHmGjx+r(y!}5%=d+XQ(Ef%hI=jB)TKRayaw19zz+qK3_#Q$22 z0nOh@e*z5R?;5MR6nPme+v=_(c`R`4NkQDZFSCFr>lll4T0PghqH)-sk47+WO*mD+J?ih4t6Ry*K@I1LJCMdoCS^4$-HZxG-Kx7y5PNm4|`*Tm^`XP!P|HqwA8-0S; zr*z@Glu5^AUzs@iOq^{w7{}VaC4k0P(A}JO=hmcTy`*0v!LTHeO zh=rAC-6v@lXCbr_h#kAWg3r!QS}lEV0-;M|Z;;d)sKcL5p8dp59T*@^N4KfKHaV)z zLHW%~V1?u+n;TMU;LZ1@QuPah|FHWd7@J38KML^?eY#k<-E<4Lj8yMXetRmsq{YHY z5Rd3ZH}okVI4J6eqNtfD>6}}K)i*91L3#9^(UDx^eSHJ##RFI@+yL{?5S$9SV=SLu zSODVbfq3d~R8we)Tvr9yE<(^5i+{R`PKm4^wtQq=6G(7YpC(O^@ILJeyz8NqGQ_)~a8;n~ugUwD2{I`|?ea%tCj zj0cGuBk7(s!WjZ#B0V&s|H_HTe0YyJi&aQ1lwUh${5Xirv3>v!qea2?;jIgT@pJn^ zDq_cfoi)`%;hH)wV@*O6SIQOy6MM!WOX&$;wLJ~JP$yd~^a@)99o_QOQ*hX3>>vK9 z%dfvv`s_I{us}>!0?qInzS3>aX@UyJQ8a8V@_;f))s z6PCEd22|YPzo9wlc}L-@h=%2Yu+7J%g*DZw#^BMgb96Ni9Nlke}EI{F!ghk;}A#An6A)u2~{ za!-5m*&W5g-4y1j8NX~mWKIZlhW)HZ)Q`ma9i)_Kt|`6lJyU1SWQZ8KM)9H z!bgreRh|>Z%)pKe1lW;WN9%@h2p9r9yzq^Pcmi!xQ)+X2dq-dRsEhJzcr>?rd{&XIp277|wqvZdlt3k`aU^_e%M#cO4RNgJHUbl^Z*6S_kBI2u&e?t^N6)Gy**u3`AgmdrUe6uh=DTRZRa27*9tYlvw-YESv7#E zv( zSa?K)ZpZxbkEyrbQ}=~Ln?fI(diEnaH1yE0&15w9uiO9|FFkEFNB_ZN>dlPVZ$Q_< z-J8s%X}jsIIA#LE8tf7qrWkR9aU+9E1g`buPd$m2?2YeW3)50!D0T55&0VSq+ zl+crEQ7^3+1;7K(|xFR?#2pekO^DU);i1T`jZ-&qfx+A92 z9t5Qt%LaMF3B+&am(4+MU8P@=Eg-HKXX(J1iAn?Udam{ zNDn`@IgQcXm6qF(!3{<1ccg=Hz4F*sW}!RC~F&D1DC{+g%#2RF>VwuIl z^72>b#K^3xoNzjisV+ioPaGQmdXJbMUn<1K@|ZhV4D_~fZUBg%CL?;7l#F#C9EukR zZD^GVC6-XXi^(7Ua|d%o_6FR^U+5619<0)850UZSfT4CR&I>X9LlCuZuW*`&kQ8;C zqg};0IP|s8o$TXwM_9Xax|>92cn6Lun8X3i?|ZM|a5#)+5Rj}utTCsrpF7R|x*L|2 z0HDSeCGtOIK$lcZ2)qGl3AKO{M=Tfsxc>-T{*>j^ z9z)U2bZZBZO5D>$IBY2+=uFVq%*7_YnFj4f!&ygmHUkedZSdgRGa}hQ(ciuW=+<$!Z(LXuCo5qripZzg*e}Z@4T+!HQk*nNMN8fXV>0$4mhM zJUeP=!6G3lk$Q9Hul!@c7PP~Gwu(1mK6llADKk@O?Sf}J!9sYFu(h1X7Ee*sNOUE4hHMjZ-||$W;Dj6#A~ozfC{&6 zX|1gjU`W-Wdm{!mx_@@aV*9mF*86OVzGHdsQL$^L^m8f&bwm8}F>uwhyw1T3=Xp=! zJZAzOu_70))~yuC1Gy)Qg=MuSim#VD&ua-SoaWurOtU87=qzuM%NOy^IgtU1k`Wn? zmBuqvnDpBz$QE&>NV=xTkMK?)`~uutbOWOwc5znAZFWk1VBWo8lexTLu#kuYkg#^0^;}g32I_piCaAR#-X?-mZZ(xAUkVt!p&{3wYdo(qkC#NI*_k5 zFO&8jrfxkg@wpNA#{mi_R+Ii8wYR3EJ*ZIuW7i7*b-YB0(j`_ja-P{Bw}|3M2PXw z6LL8?ygn~|_M(vY{9yX85lGIkIsqi+VD6S}yRdEHKW@7U_c=vFGL*@H-+2*RZ+j?S zM_q{|89NS#v7+mV$!dZlqR+r9YS$C=E~7uGHa=?b5`csZ6ENx~GBW zcE(|UCBT~n|84!wxS}vuB*OIKU(DDNhm9~2EhvHQfjcz>UukcFV>fY(1S?FOJ1NhQ zJIqaiIk+{~+11*f?#||VI-1&A%(44@3DkK4am}VJ7dlI0A3(tL5?G)y&whjCcOM8R zh5(C<3*eqsf(YlIDx+$#|CLQ0oRL;lppt$@T!uto0*@^TVd}Nx@XtdTa-Ksd3Sunm z&m$siDE*{301PLNfQd$0TdEEsCY+Z|;R=?hmCEoQ!yrsabRQM;Xy%m2C0iDno0KgW zrNR6lL%4MToc5VC+$rMlh=c@Ei9NU_Lf{O+ac#w zU-<5-{E$0?dwQitkOt$MZ+Vu-fRpyne5&G|bbSl#K1AFGFx+m<)i*RWEQpO&EZiD) zMjSa(70uO(WG*=NO}~UpY%;DPva^P-A!`_`wVPDAMS}ws$D{{TeS}_`cz#uVaP7Co`ogYmmIzc+! zYEJMWD;nj*1IXRc87e#j$0^>!1y47{%YX^b_+@Y6#+jFF&@O)$rw4frO>PYE^VxAh z81p9qsgl=WhYf*JIL(Pe@aS7yAE+Tj5;+Y~mErq0bm3`~j+_S zv4jkz_iw65BfjmW0$xn2Q*Z2pxtScqty5G6Eem5pL+QlZNPZBJ$b@|J%Tk-=Dc(!L zz#|&?(*&|rPrN;yRvT#mA_PL(w{aH65j>%lR>cuJ^zpO1gL`qY z6RZbO%f_u>+xbz%;83gX$-%QeG%_l2cgrX>tHI513aKQMCy!dDjH$XICV*W?!MabB z5|#JA1nw-$$mT{+0Lm%v$SN2ag)QI?S;m**ag72l9TY{=0E2fS#>!G)^j2@rZSRrL zAV`d&Mp?4b+bBMAQ4AR`zAh)JN*UZd_$oFTHJz6=vEDw39SgTdW|51fo{-{N*JwiFG3$`xA|;=;G3cJ+p_cHp2DwFHQi)w4n+t?uz_Lq2!5yl`jgdqzT`;t= zVu3NmWnHK&LL()@si5OEVP1_CTT(-dBu7O(2iP2NQ!LCXFA3@$`~+8Z>cT-p`DU}o zFI2Rb9M0SfI>^Rulr1kPQPB`iicgCA8MfFTA@GmSH7h@Anq%~?`PW1q-LMB*&P>@zx; zm8);tpuBIiGE0llU_n8#6qu-ZjJ9s zblO|45@)Z~4IsW6-nf~|kb~(RqH+fnCQSR&cE|7_oEt<@_$-%i0trBPW~EPhY}%zu zI>p4fBXHrm1sW5zd5c(J(1BqYl=w7ncIXtgv{v|JpBUKQfNXMP&)5RRPn#ZTkd!Eq zI+a_)8!LvpD4zyN_NkN>VgFwy3xp7fi~_hUN7PNwY|c~X053$N7>?RTLBxQkKQP-_ z8r4hS+uo_w#WGoRw7?FO7ifsKkZ`A+$0ko)ntJVoUZ>KV?|A3B&BT0{F=8%4i`VoE zw}m+D7Ab{9q}*(=aKE9jUj>45%5Pl)T@~O5_dy9??xc3(O8BMx)=|kHRO>8tYX}Ut zz?O$-=IS9jcoc4<+z?JUuNc5l54n7a5UJ?jn+O)Tn=rk^$QmeJ5Mw1Z%TGE)=3?P@ z7U^qZq3y;J6lH>dyfAnKeD={`@!k5j{$XcqQYG%9FI-wy+0vh{7?TcvCNV6Tw3I$N zkBqIb?b-KGO~wn4nSLB&Oh|aIy!WfgFW%z0tCRsEVRaTTgk{FsSHn-F%T}1#JpCRS zR5~nm&{Sx#4oa~kgFkrW&dql|s&i3%OiRgH*Hq=)Xj5zl8^c@xf~FH6+B&)&P9br; z*t`S8f7?%?Om1_AZoD-J*{`S|LWDLW1%=S`WWYC3TLGyI5P6GR>V=HyhE(DxZ8#B8 z*N$f~lZWjzgDxK(Lic}wVQ~U(Wt2>gp5?|n=5lyC*OWd(RV$m{sJYrVAl4@Z@eJ z2AjY~FWmW8P*n-LgKTVA&>&f(NI~g?FTe>zokJ9-;>pc&_qV6vGr~nuHB3SQsOY%M z#d30X*fftDeRBq3p-{@CL=JOW?QKl!Fl`lvXQ`_Nfe!u@;cVe1O6ZAqDF2?7HuP)) z$#Ep*qQ})`J^=9vKb1l)cv$x#o+9i!WoWBm2bWbLT{3UA@K>;U7||__52T0J<(`!P zSq*rsDpU71X_y)#Qs*$qx})k76I4gBIk5pFB2QVi|LH2D17z=Wf46vZ$pysAPI(8vTpTQitEFCMyVTD_4c`kSm0!kaNcTUP z-XZQ>DXD;}6p$0@V!zeton0Jw0KThK<42~r^ss+cHLd3$k_FrF)KgD|!|E>sFfcy} zIZQ#gKMaT*eHs}%5YjY-R_0nP?7+qL>y6hca2p9NM)Hk#@4dKU$V((~?h5b{Yl&lV zb&-W_YGDYNZfq!BzpxU{NAK}UnTb0zKU{#C+axnaKSg*#3HXKhpUfa4%ptJuJwk~} z>BQAesxxciz2NgOPodTVs6O%mEfIvVm3Ri={7$M_-G=hR0Fp$G+z=ur1oYijPqrbTIEXY}?Fjb8ulOq?cWZ3t@hJ+GP_-ad7pu zq+7Gyt=Z15j;3sTHe>l;?P;Wl;h~S#)?9OQce6U|uGf@mNXYuK1k#IP=M0!j4QuHJ zi8(easw$}_28i#oy{9YF+uV|F@9Jpj>0pLgJ02Hl$u@WQWV&;m?P;rv+Ma7`ZA$0b zdwM(5y{&2Sk`}J(XvGYh@oGs&x~U5lQq@m*^JdsGH)w+h zg{NV5h&}n@s>ureYNl-ISh2k4b$ZGR*DCY|kqJ0XyH6=&by^Tw%O(^@^{I1Vcq>Fw zLpq@*;MyHMT_~xG3cJ~kTrX-E7&al=r8(Ww*3;J6i~qAKyPfS#O(@BmY3pfe>get^ zWbEvMt1;V@?a6d?r(3$^y_>>yotgG*doI)7EpOvArOlI#hjlueyIXtPy4rf%P}o;7 z^atLuEh#d_xb20KUkl^b$6HLHuyQe!63pR0MpXm+YtO#s4&yC2&x$%UAS^d*ka|rI z5B9Ad7|B1VkAc9#Y9{{ZAVRXhq>S1rZIm6O?I9)!_wvoV21jB zv2dSUm@oHY$+GFreF%Yyg-x;X6@msD;YTN8Xe9itPL^~dM7$wuFnw6Vqtm7@MC-(Y z^q7beEN5w1E9ccH1gKF&zQ%{-$qg3xx;0{!(fV#+!d8q3!Yf1fRIjuJ;ZBhVsDsKR z2BT7ug+<+0LT|LK7^$#lu<539{W-CxM1~g2N@SRD-?V5HD+*~29)uX8LIU;)5BD`ITH4AcoEz+s`qGJ&spQ;3gC z@xRP1JP7f#9)iJa*f5ln!idGfyhPDhy%nLyA>8NrGXjPRHQ2Qprpj(QZNyT zg1BqGBZ0elcT;ut-|JDQ4C=*F!IVW2Bi2$x!z>Ea8Mjmla4e8Z(bd$}neIXGP8!6p zJ!hBV`=Xr)p`d5vcG-HRF;R3S)zK;?In?ApT8oPDI9e^v`OBF2e1V0$%m*h*k&~?b zaR!+>Oz|(9n(7dc`VCapxlxv-Q|yH+0UrK@YCT$u+zgQ5eX(jikx#t(P(;7SyD*|o zSeEyNsf8gWxB(KPOFL!sZsE%!mocOJEjLQ*SRyx^4nA{PoO;Ic%9@r+ypjI4NE6g| z;&=CV%TlDC`oFP_D8`PdSul`Iu7d)4Y;wya{Aq^i-KyGZW)zWp+g-8)3ZbM1wxdi$ z1SrHKz!p2Hi#av|Aph-z4Sa>a)C@d6P}uK_*+D~t`}N>bLlU>$s{{vIgw0{8M}6hO zyeJw4jcqoy7tqvG1j21LN{et17tN_>Y`@?l&g64afe_W_Y>Y))26EOf175@y%4SUuV83lcSmok7&4 zlU@}jyus8kNO#@sZKB#`h9`elt%$j=_95Z5j7!Cp4YeVpA|j+f^15l+vtl8b7$z^d zjEz0648)H>_InY=Al$@^XiD@MG|(zsUR9lkwXhTL$8M*2nauw|GH+%zp-0!4ZCL_l zG&Fb1fAk(kZ;_^{Q`-1IWyjM=iyb2J!Rj>yf0y>qw7I$ zTM`QN7>@ZV;%H*CbX*$aNK{XLaOoqUOA^fEChgaYVvHiR9(doT&mLNkzolUixywi- zka`#p?EGp3nRlHYKliHjk;0j{VY#6Jy~C2J?1qV%3q+Ve-BFFpL_`mnr@GNXM)XK} zQP8s}$ULg2Djy%&{Aj%#`2vU#W+MuK29QS}N`z=nq@_h%#5?B=lS>z(aja8cFSs!h zPHigVXOQ*%tnU}ps};Ae7jG)Syq)Vu5E{(2_#X*uARiihtk3ca4_kyg3~S+>BpMlF zyx2xr2uV`k{Qx19zGec6bsrTeQ!*tNxcTjr`MJkC7C*HpScv~eed+-J^PfG1vw}hu z4lnmyx>HP%NR-ctzB{S_HRk0-P`TGfjsr2vr=GEBAg-+sK@UG>S)^gB8Y}viXZ(v8 zi~%d>Yyg~h5SdYWPjQ+R`=m8Uw8)$zKW5#qt8VJy#PN&JL6|Y4MVpO(yLGD;8>(vq zkZ&b^UG6-z91}zU0N2>$4tX5o;8-{j4W6Gk`yu8i!vae_IEJV77HU19m+-vPLUZAH6R4!&%jsbu9ynGi+c}); z@3q=6E>kB`9S(*-yMry>b^FrwzAI zA9xa}#P(7U-Ky(Q)QzM!YDk`;v@s90@#8%|fE8m&+=d(X#v)7mal{E|B}mw<;DlHb zlbscmp>t4grz6sUCRs_b9Jqkw?|bDS7pPH9YHEvCA}@4`&CZVa|K!ffUlH|kM7Wv> zvpjm;LI4KU5c_?j6di0_z9K)0VqSq&(lo9#dFhSuvv0Zl$>S{cr{-VuiA3j=DcpM1b>W4ovp;hjv7IYMfrVp5kRHub&jemra zTYw$4kY`dTaT02Id+s<))@Bwp7G&-`i%$zNA#$evAgr3d%l&nwSFI_dn&ojX z!OV0flauat|cwOo4&d&C>Tz9TD)6zqCMOQY{(VlI~bT;Q&x?4NMhf!bn-fvL~HRr5?%bt|K zV!3a#=8QK)Ao@(ZTaD-j)$rAv*xT8e?dj}p>d3XX_cU4Z@ztA#GV<89CU-;i@ozo2 z>U}q)#7v4@##Q;D4LkH*>|$YkEaRLHSNjLCpBQWmrFjYd5u0gW4wr;V5uCjuh00qM zmgI)L-#9w(AWG)-$p{;U@wWT{UlG;{ZxZ1kABl(s6IallQjZtX+IBw!`#9+%wbjw4M-PyLLHssp1tJ78T zFvDZ`p~VVe@32p{0q#7mlH=H@uVKQfW9`&fcNmY6Lwv=LG#bI|J0KJqy9(RCvAt+} zJfor4yZ{5Z#i9leF58k?wR-K!O<-CdyXO+GvD%0@E46*g3uGE%5Sj(EZ7+(@^`1(jeB;_xkTTb_eMkC*B#;nym10*TUX?H#zs-Q6vjOjl=zUFRE& zgf&BJf!sq1NONJ(%1BxxWz&+v>m8h7qA}2F4Z%FW>E2v#Z+lk`1#z3xogEs6@Vy7qBbmqC4edZMU*@rd z3u;*jcoH3V-~Nrl9=I(uBOn^0r@6TWrFJ`ebGfcwjIGna`>>$d-8~)PBRP<3`?0+_ zm&>#?!4uh;>FhM(eU+9ESLF?I{#q&Xo?LeSD*d+HasqC#h8FD?EzbXguvJ690Aq+C zd{oxO9JbMl`^dIJAa3UI6yT)N+4SIuqVHN*>!)@;gETivpMDq^39ubV?UiIit-bFG z!xiku$z!`AKT2i1!mFh{NAc7XXn$l75&WQKRl?Qi3i$?!L2AhP0ktxszIQ2N1CAc- zu(dUfO5~kAZFq*)PPwP23*P+Jo{n}rtlOaxD4@it;r_l1tRCj7f7VPwc*AgF&-30G zYB9nM70!6pikRHFYx0XDlV7|Kn@vv31*`Ex9X5A^JD@5r+!`!Pk3Q}cJf0aK6K9|VLkLot6gx))y| zlu4+ORT6;h)t*e6*pJ5@_gJ_Fc1-Bz1t7t`(r%QFkas8D>e02l?*tPg#7CAN9F_c! zO|W=8m>%4u1t&`Hep1@C3oEQJ=s6%l-(`BRQXeaQhUaF^Dsx%AZu#1WR;=8V(xu!L zGvG%Pctnj@(4@TqL7-xP&{`D!JTsxk#H%&Els zNos_N4(?>I#-tN1Zn@o1F}658WjkU!ANTSM?YA~tV+=tknKXzvX%Zji%}0xsbJ^|I z{Rbnb-bk%k-n4PE^vsWz&eR4NmNzrpW*xNbdWQs!u(&JjSb$)9$s~0k#Holh1*DlJ zQxCN=B5+&Z@-<0Fw4g%=oU6#aG39+C*t%sJ6T3Mdy$moam>y#r4J4gr$AItVJCOu9 zQycHkjR-isSj*!TmsL5YB;@AlPZWp`!P$b@1i*be9?WNDZy@f0ruZ$Saa=A7Mvt1Z zB_vEDM|{a($V=dG@(6JZ;HJ^u-agds{0YP^1gWwLs`}h)6w*15S?&U@$PI#S*2iy; z3Nl!QJ?Aa^5C4)L7KB$Dy`sNRNNvESxU&xlt-(V7=w`yl1{(`%7tq4#$b~$K!n8hD zxL%PHn^GKp-B#F>ljQG?GUfCA;zbh)w{E;vtYqzHUQT)#Y&C{n=k{C0`TT0c5M z_^Su*8--Ew0WhH;3ise)B+q(4=#7iZf(7aZK$sm+6pO;mf~OT8W+7JlaeZ%z406BP zJvqi-CXNv`A)0;91{0Sp&8AA7Ey>1@iAHdtpun`Sr8|Flr$nBGi(9Wn>^5sKt*-CC zOB~y>o&xMxW8&o70!dQpo zATf1mrqI$mCDTqQ+PULGUF22CsJvk%g=}jj9LW1iRJs(CKTPbfACigTRZ-`_3vorR zknUe-V$XskI{XpGk$UcMw!j>SltxbF7!e!13X-<$qM{(4RnEhg=8Dfmu_c0q)q5&% zBLx#dB2#N2j4m6<8ZX-fnH6p=tK(*56by5;N1o?#*%>G&{W%_?3Lb;qF$b4$p|t-T zUII}nd0QOZW;ptZ+@SnxLAeQ2Udd6}SY00uw{afsid^_K{83Ol%hj%f+&grHn3{9{eY{sTl7o~|tgL4*jYtP)LPI#RL4yxTZ}w4B_) zKLT?Bkf9o#R-}&RH^GbKAgE?zWP4hkxkzBT#ftED$D!ukWZjF}Gw&6MJ#2XXcw9!mmT z+`t=Zalg%^ZM{9#18GIq$Lo)HLiJD)VC3HFQ_N-?kSdaTtwlTj>J;FZ=wCj5bn4>| zNaU_n%m!)i0UOJ%-iRv=u|(YDhd;ICbWnDNd%BSXqZZ)rugyzcq=ugK0G{5K zDxa#RVYeXv!TU4y-s^JjUw&(H&+p|GfwL#De`0FfykR-&B}u2io;G&nWkgTV1u0xH zcZz|VuLrL)rUZM7dEWSLEmcE2Pw*aM(I(!wARZYVTy|CEBK*S|+e-@AH5~^Arr0>h z;~LP|-pY|CkAGNt@dc-Zj!ohC&b~5r?#0BBtZ{s#Z};N$IY>OkEq^32H(EN_QYXZ$eN#X;*AXm9C(Kr3{T zcOE37NhG%rntXqv4=;@2sjPg+Zx34T6|+B3L~OMgDRpl(qx zG`L9Va5#*B>d$X&KLFrt~=qmgrZv{%7!;^F_q5~iq9R>Ch9{#fRT`WJSg>11n1(Y@cxPudCgWwf1x(<;`rqnI=@? zO(P8tzaiDg+(Xc+VXqrBKa?bG^!8zZq7kLiS4XjCyekBy#Uu~RlWie2Y{R?^q-+X7%e$ z>s39p>}D!`T4n@rqx?a{L>EcyFRawYLxc>9_cbVVElokf=6*7m*kO0e>3&?uazHMK z%@wWDP!g+738M>c^j7Jso#Xpu>p}d{lHk|F`2mgm5f*l~2&Kc%)rPOJhqV?6FfM>4 zV92^3O>Nw2X+slmO77X%s{+hqF`*Ek0=DgDw*J4d*-?E{7==S0u{2xM7$!b(?k%t5 z+pHG{4UNLl7Y3Upj8vo(`G@?byCUDkv|H6cesnDwx(8@W)TYO9zNnn$n_QBfNjkrN>0AJEkc{z!%t#Eou0 zdfT`TPgSg0frH^R5AFv}Y{rJlZ%c!}b>II^w;tctkB*>laMf2xHu$*)21jOqNC{m% zUNo{Qz;Tihz*`6o;XaXm%!4NAdjalvkxe6!!lF483rCD!`Ll1Zk91%9({X+IJFv<% zG#j8ltBQsaP9DQJJPZ0p)nI~rkyZpvY`R*xx2L*ra?1-^mNRMO6Hij9(@4~BT~w32 z6t(XJWpilt>OPX3l2@3B>)kcBLSYA)mNZICbavu_>5i_ZCV6tR@NLP1UE2qZ_#b>U zJ4hh3VbjpfAnS4gyctQjA}W49U4*$nteN5t-zi2Rr_tBIknKH70+fn;3~r+bbKCFJ zWCfEQ40H{;cGHTdoDZ){c&@Oh>xIium3rK7D7d@LuON_SChvO5oN+)QNcT zMnz{7hH>1(W)8g&<`LRPT;pP4ow*bZtT&&T5d>Fa^5nkBi(liRiKvwtx6cZmVK>Lm z{C@J}N$1Uk{&1~ECrJLO4N}~4BZv=+AV?tgV*4GIOYtuN7VV3SK?!?CmSEdXGm>JZ zP)B$?t=Qg@pw2wEV%k~4HOjxOc80da*=u3Gnr)ZlQJ59?vR@5EVNdKr?2GUtUqOw8 zP)ocrxkH~xfp86y=fmOc9^l*gXY8nnlqs6|%QT zg;H2wD$%63@)b2eGx2Bz%t2A{$UJpw(UwqH<9qJWO;B&KSV-ZgH!m^MuK{QbIb-#9 zdA)qt1%>?5CN#%d^|!^KF>K3zD;9oAOQGQy<4z(6QY`$ecK21FDi5+U!2JXy_bSX8 z`STD}{IabwrC55*|djZ3ANuqYY8iiZS=$bMLtGI+FlZ#1O5bm%GN8WUoxW zUY{_gUlRhDV1`GzTnuT8vRxI?Oy7`C8uo_BQnRD5uZxhJlfB_?1ZGx{*b@{!R4bRU zBH{Cx9jeXZbwzctNba}zPVj8xE-Qz$U{TPrRP3Pg6CSLXc<1TR(nRSc;%9@4-9#6b z)3Hy?fyMO&0z;~bb!cahR>aLDwkEAG68av1c6t<6KjB0cf;(NK?mtkf1%P8w*iDwAH(<+s6)uDT3yIMQD zvmLO;<2j(toJCq*t29o_$@5LcyF8(@n(`(zf!u|h7%y#)9W1?YL;@JaF00)csr)0` z9lYv`muDoT*(&g>Ac)fm+grJQ@O0~7?PT+OPmJ;6>n1|-+D7X9Bgp~<&JLma8>wPdMIJXCL~XDMgf5* z*d%HIh5CsH3;Y}GkhOrj3QT@Kh=`@^OZFfZ{bFISiN9Vh^_q(+ zM3`J9&ad-&h4Gb%b8iIV5PvX-!V*IbYpX+{gkVLSldy}J6zej4Bf(;~CCm{P3k{{( z(jx}i>7uDHTd}2JeeAQeE~Vsa7@kgjG#6SZ>N-lkJY1Qwqr-JZvPe-?;%x9~$|`b3 z<#_RYZy)S!uq~9(o}jK_OC45-+%GA9bMpMeGZGYmsVFsv*B>z^{tKor)V5B#6fCw% zb!^Man<}1Ah=Y%BRiG}>EV5>&Azkj?TNs)@0oi+nCjU5~B?$FT%-BJOZ{F)(8Pl^E z$bAp>ujNQFg-XFfdOmhfNz9mF)j|!pQSOQ|E|RZ!4ps!QJm7-FVK$SttAA;c28k;X z#q*DPUt~Yx;|UQ85m|#si-pgiEX9>sLu*_KF%zO-smhANNiC+2x}9ptkuViKGl;wS z3Ke!qFn<0WsFV{QJ`GHXs?y$tPNrObeLvoi^w+7;tNu12Y=e%0C`2V;x>I51=9W(d z$MK$mo33>?XsZ!P_P7{5dKcwYk$jKhx!ly zBF`7QWy8Bkqsnvi{yA{zk$hhWtgfpS&)%gwTXJ2fN7vNVfugPWF3=JFUIV($*5Z2u ze?w(&B!WkIj$l*cfOyA!y4}RNS0utlBX5lMO}%jtK_UtalZ$*1$L)zPp)O6H{v1{c z`_uZ!!+p<2yk%AmT-)17fq2<&-eM{&y!#X_eB+Yq7jQFW`h;;qHJ zlo-xrnad66V%hPqz@f;-a1PF1hb+3Of&k7$w+#*^m@cFh z_ByVr>(2-S3c^MXhfuVkBJm%CwX`**yVGsW?Va82-RbV$1`pTU=S&nr1zCAeAR7oe zIFPb;$}3|#2M}qgz*8)g$t0~djh=xBDb|2*_*(owwyk{lNck|6h=H@h?f6n4EwrXJh_q!f5Z*feST=|`gQj= zZd&~pD^r^T$voDlJ3^%soz)nk5AlYC`$wtVc4)j>6Aa=R%J%}Nq8gkydQO)c$*Z;7D4Ez+3`Za7EF*>f$jh=_`k(`C53e4deE*r)Rg9L2u~J(Q zm@*A3r07;X%0MhoPodFIs=x$AazhS=f;?(fc*{Hn|1Y2LRn1)t?)mh3=#)?^?AfV zQ4Vu<1P|KZJc(!wEw5Wq%Sa-Tq&OdV%d$-mrjRPLd}G6wEn9TeR;nCIfr?pTkU0Bc z`K==%TuE!c!9$cKB8epfkgb;KNL#M3imBHqS;G^rwztSjvTY63O}7G-A+w@aa5UrTtneP*dTYmrO?)$CiQr7WTV^O z!tFct#x7SR46m+PcO}3n3p2plWOohGJoPiiOe3Y**f4q&fejLffX88>NK)og(b(BJ zJ=R1KSt8NXgM4t~ZU0a!ln83Dqxtq^(hn6K}$ZSc*N3ysI944Fgnm6vvbS z!zph0K14v@Gg|owN~!1t3d`#G84n_NHp*|C@B8CNJ3%~iVRh1EK7d62BOx_n_ea=w zXOnjj>3R4m{JJ6`bJUKb`skAIZ97m@;jN-b z2~tS50VH5k>-c^kyKum;JqpeErg#a@idw0e7ZbzS?omO3Z<9rUi@pRZ_l~A88!023 zEnP(bQ=f!Y6V^>e83XqTUtvP#4Z9BM(C+^ORZ;mFGi+77yd8HfyIM zLW*j$q*7Y?6a(m>BO4fGYBqR5|k zpB)puG4(j&p0_FiGeJfC84sD2uC(iOm?*JQJ9W7dk3WeV$E`HhnKm1KG!5HSb(atI z^8m(BeYFKgcWY$Y5nhKm6bnrusfbkhQ>=^4Vq%XZR_KZSC<0CikUk}&3qpkD55%+v zD{Xucf>EmJdg)nssorkmrIvhRUrqBgLQ!F@3e8dmu9k5M3{Nj?FOpvDeU%2F8D6Vw zRBX_K_!cufIwa|JA$@T2kvjauQvQS{w>G?8?)^=X$s7yy zZ|9k~VYp(CS;{o5)b667%k=Y9N?wso{eP`pOOTz#btXx1Y~UU2qP1*P*hi%J7|P7cRUYlxhfSUl(2-y9)Sm_f>6c|Hcn9yb~zy?AhYr! zi&Tlo47N3Cl)twe5eOd-NE~yUUe7adfN`{JaQGT zJ(qq!Q&cL!u>B|{GOab%bTz=uE<8q4m3Z-9D zQO3WJc zpecnHuuRfd?&4ojUt?FVB;Nn>-IuLZeOU7#r?f4Eqj|WKG@sJ!8EdcXCI?44Fzt8Y z%?lV~a{keOysy)i}VGgKi zXXhWULmd0I2LW-biL$q#P&vvc^Y#b9?>w${SA80tayS3K`_|fB?4P^6wdKdwBs(QW z5C7XcuYn74aYCHm!g=$Z<;54^?9#1`I5(bu&&7o}5X!jXI8b4KhTntCbB%%t-%DrI zL!6?_lM}P0wDN>gHCX!KrAt_BQ%Ny~SHobqqCVDzS1-dS$qTj5piHphHVKHEN(2uAy)?$5Z8APZ8D^aOeeZnlq1kO>K3u?V_JEG7cQkQ#o=&8^WtT5Mh4}X` zzPbGUD{S_AY9j|nu^D@H<*7GItNY=WExB;`U|zp?vZY(ocRGiY(8=u)ERA3C5$W4g zG=;nkxu98dDHd&lr}5;#4Eldw-8<9do2~Vk$vQ+REi}J$*&jzTDzuFiE{vCcK;@** z0E{;QLB1{h0Ho;0$HKb(s&98f>yTow^uBhgWYlFKFIIZVso+M0d35o0)-#n zKH4~kHtWjwv@84iB1SYOIz5umbvdd<2r{xE{;6WX%NvN@6Vi`g1*I=D;`fKajmLO` z_p%-IV!5*C7!d_-^4Boo1Gv9oEISV@Pv(AJCzz?YRL+~^E<4jWJRZq>O`c;)f3Psv z&5iR0cB`X4ln}Rgm!JJ1PNWa4JpUKqfw)2oXJ|HYH|q@v&xo5UtjMr(_Ii1jOX{?9 zHB{X5LH9k48({{r1pq3r<&YShIR6%LDihB!Y!m;doeqpFG|>~| z68~MmT2Oh!uLXoEuhu!2AeN5waU7ays878}Oh#U&VOkrijNEBC+Ux|+od{-zo1b2^ zgK>ZP>b*Cvo`>IqABhQ}iR^vGFThlKcBlQs4nx1d6zQ}*4V|n?^&yX3=^OPtS=zF} z@@C3AI=rlnK9VQ4OZXgL8eDj7b%~l?e}oFWn#UPsq=nTpH`T)La9G(irS91DqOrA- zH;&X!tNJ%s?cN|(YL9$LEj3l2o;}%w`s=qK{Kx9>xOvZSkbsZ=<3?zM$3i}_Cg{VE(B~!``u3=}m?)ZyjlpTy4EObLOniL2 zJ^|0;|g)% z*QbdyYV6F?6Rn5jf5obaiS3tQwJO;YwES(ia3$lyRUDSjXTF2&J7j+|3V>Nw%7L0j zz0OK+Zf3CIC8XLUd|mYj%bK_!<@#!!u}!PD6_gw{b&MJExLOP^YpNsYl21IxUUyr5 z6XBWN$eu7&0FY$2=9DzwivWrR7EV#Xlvmxr%WW1WxC0X0o#Q98U&w zRA*sS!%%OnU2O2`gwkQCHCrx7zL5+QHqq-QhBZ22bn=`s+6V@2*6DZF zi*e7dGOsmIizL(|NI3k5K?N4Tn|Lp8RRtrLKy^eEt3y85Qk^Oh?*fQGz3|lXh1c-Z zXiHmWO+y|Dxg#j9csXka4%8lLHsN-##SaMB$!a=#sn&&ur_X0Jn^35X8JOh>fguZT zxa&;_%9X1ci2Ez9SL2O6`%g6L!@Kv@_w4&AmT|7zlK8#hCJ%-sxTbO?X%U%7%U4_^AAZoVAmnt>xrZBk3MZk+XYCb@Wk!6@523TcV^c%I+5h4gOd|G8>j6L z-lO~#ug3Q#y!@ES4U%-$K7?H{&HTDZ*(YRuRI8j>HG*E|+ux;ZPKf|-wFLD3gFv;xE^<}h1rSRi)q`ZH$2le}pe z;F<`XM9`iTjK&+@TOtZf`4nCx{WLE4YcFps&Yz)Foz|poC$%~J<+G^vk{Pph zgC1{-HR(1TyT1XKju0D|JG93mG#J=HLEi4j8SO~R@#<5wAJ|^NQM|IHVPev0z6t3q;dpj^jON*go72rP z+=8RA7q$TMrqq%PAe_wA-z(qv_R7U)SHATew0PJ-;Qc1|l8BRe|8WOyOuwvNS)x(B%ly;BKfljE|Hwbvk@ylG_KGja{{P{2dqLesX_hR{ig*+|wm#gaeV{%C zPbf1(CYOLSg(yB$0AnEC)68KQX7)Px3eAjCni^~lX3@)%`q2$09H&8S9GEJSQf zZ1m>NvtcdB(zaoU4?O`r3FKk^oTCnwrcU514AU-*3=i0A2ulrXb^>)i zU|vsz)u&K^O9>3Iaq7g4*IjpX=~UNm@V~)@Zj}CED7jOUb)~SkSN`mc)j0LJKsR=} zemv4yxX@WJ(fw{5%{pc= zImy-nWhYXwm~`XSp7H@B3>6P$pP%xml13wrt?%{oRxJrMb_+-zr5w&qa|X|?dMyea zy_taBaLg9qbQahWYp3%u?K~VA;K?jFpNX;N!DAIJ^*nw!h_U)&!^YeW2@3hgAON?S^;|%i)n|{qmilGYKq2>!*T0buq6E6HdXj6iwV% zXg5goj(1Ie4wi1{D{-mGyGxWc@0Jp-G-XI<%~nYlnkb~R=IAYWs`@~QDb=h*rYhM& zW-N4M7Oy)@B^IhsWTA?3rrfPi;>$UlSTh$x;(l~=LYQ6n74Z1MvD)z~;n?qlF(Zt& z`N}z_kD7v1J`Nu2VU{i?*)FGJwUdaGc zQ!M~Fq5_a(1@L15wEy1Z+)0(Y$9@Mg|0s%|i=yL^`s8e?YOe8f z>E_QsV4sxy-<7-*b!yDarS?=P5Tyj7`?Z_ITJE<8aT1+Ekxo&f+akJdXrpLVdRmkN zIUHz9B2nKW>h_20v$LY?vEPBpKZ@djC^`;8fO=iKDfd}{lF z91f)2Ia1UOQFpp;!PGPg1nXWm7VYK`6X;_?VSF=H*B<&z)%8H2?C=;T zIyr2-oW`*t=&|1+eY-_i@`XTNdK(XaK98gOlNAAsu5_*V9 zIdGfG96C$^lxpaKfUVCC+~uDWY6>PuZiETh^(DG=erQ^t{V5n=a}o#cNl6lPiAdnw zE*rQMtO+~?BY27vcnW6l9Ff4eaVK~?k4{tP+3x`BA04yPJ|;kg654muz&(ilVs3^$ zg#u!yq71Wf>Ms-B7wczm@~U$5DHQ1xCAz;!gLQNQE40Xw!S4 z&mx*kM2}52PLHR)^gtx?7!mz}hq=;KzQFz1^RrGZ}W`JCFyoki3lh?B~}1$CxDSTSREgS_gLo0_YmU4GVY=Q2zZX7>IKck^ZMh+d0xj*JHl}k$)6L`=@-abR3?a z#+_C#X|D$YjXsO$?2O^Qjh-kNnY-t*&Krg~gT!1_x5Qk&}_y+-WJ~aIx z?t_TBPoY4X5{T|z(GA@DRch({NGN4~eKj(mv?LeUW2qL!Y*xKnA_7QHi50*Z0kq+Z zs?g1!fyh27`5!5H*B2URzXG+ENcvMSkmV#IeO{y;Bc~_pN!IH1Kp@j+5&fBnx+&L= z;*PB{9LV87S`vx+il`whoWU0EB>ZNTP2Ba>$bi$5Twu!r>oHO19{A`~SvHl301}c3 z;J*aWYw06j*&Jd5L`*1*Zm83_K6{>HcuNYKmb@?BW;i7_V6_qm?w42DpRl%8;sR7Pv5-cEQsIydpei&3FOqzp@ zQB6^BZQW(6lJp1H*6F5%MN{};(k5+#6ezeb7ZoTBmL77QsKuqOaK(s41qF)8Rw+;{ q-dfRhqDmKYRvna}R#hyDliS+}DA diff --git a/Test/NewAstTest/output/b543bc1dfb592119.deps.json b/Test/NewAstTest/output/b543bc1dfb592119.deps.json deleted file mode 100644 index 5089ffc..0000000 --- a/Test/NewAstTest/output/b543bc1dfb592119.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "base.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/NewAstTest/output/b547ac4f380bddb6.deps.json b/Test/NewAstTest/output/b547ac4f380bddb6.deps.json index f9b2b67..cba3591 100644 --- a/Test/NewAstTest/output/b547ac4f380bddb6.deps.json +++ b/Test/NewAstTest/output/b547ac4f380bddb6.deps.json @@ -1 +1 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "main": "4175f14c5fbef360", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "ast.lexer": "8219423928c874da", "lexer": "8219423928c874da", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/Test/NewAstTest/output/de3357cb9182715e.deps.json b/Test/NewAstTest/output/de3357cb9182715e.deps.json deleted file mode 100644 index 08a9566..0000000 --- a/Test/NewAstTest/output/de3357cb9182715e.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "base.tokens": "b547ac4f380bddb6", "stmts.base": "22bc0df83b3f0e62", "exprs.base": "22bc0df83b3f0e62", "astaux.base": "22bc0df83b3f0e62", "match.base": "22bc0df83b3f0e62", "lexer.tokens": "b547ac4f380bddb6", "parser.tokens": "b547ac4f380bddb6", "parser.base": "22bc0df83b3f0e62", "parser.exprs": "b543bc1dfb592119", "parser.stmts": "657e182b27c2a022", "parser.astaux": "4337fb260448bbe2", "parser.match": "4dd6b3f1427d1cc5", "parser.lexer": "f5d13f1be34f417a"} \ No newline at end of file diff --git a/Test/NewAstTest/output/f5d13f1be34f417a.deps.json b/Test/NewAstTest/output/f5d13f1be34f417a.deps.json deleted file mode 100644 index f9b2b67..0000000 --- a/Test/NewAstTest/output/f5d13f1be34f417a.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/NewAstTest/output/fde6db0747bdd959.deps.json b/Test/NewAstTest/output/fde6db0747bdd959.deps.json index 5577876..929801d 100644 --- a/Test/NewAstTest/output/fde6db0747bdd959.deps.json +++ b/Test/NewAstTest/output/fde6db0747bdd959.deps.json @@ -1 +1 @@ -{"ast.base": "22bc0df83b3f0e62", "base": "22bc0df83b3f0e62", "stdio": "285b6aa29a34754d", "main": "4175f14c5fbef360", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "ast.exprs": "b543bc1dfb592119", "exprs": "b543bc1dfb592119", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "viperio": "c9f4be41ca1cc2b4", "ast.__init__": "de3357cb9182715e", "__init__": "de3357cb9182715e", "ast": "de3357cb9182715e", "stdint": "f5522571bcce7bcb", "ast.lexer": "f5d13f1be34f417a", "lexer": "f5d13f1be34f417a", "viperlib": "f6ab8989f3545e83", "memhub": "f9d023d1df2bc9c5", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "string": "ffaf70367668b227", "base.tokens": "b547ac4f380bddb6", "exprs.base": "22bc0df83b3f0e62", "stmts.base": "22bc0df83b3f0e62", "astaux.base": "22bc0df83b3f0e62", "match.base": "22bc0df83b3f0e62", "lexer.tokens": "b547ac4f380bddb6"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "main": "4175f14c5fbef360", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "_list": "7cadfe07e983fd90", "ast.lexer": "8219423928c874da", "lexer": "8219423928c874da", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959", "base.tokens": "b547ac4f380bddb6", "exprs.base": "91497014ca775a64", "stmts.base": "91497014ca775a64", "astaux.base": "91497014ca775a64", "match.base": "91497014ca775a64", "lexer.tokens": "b547ac4f380bddb6"} \ No newline at end of file diff --git a/Test/NewAstTest/temp/0c212981c180e7fb.pyi b/Test/NewAstTest/temp/0c212981c180e7fb.pyi deleted file mode 100644 index f432b06..0000000 --- a/Test/NewAstTest/temp/0c212981c180e7fb.pyi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from ast.lexer.py -Module: ast.lexer -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal - -LEXER_MAX_INDENT: t.CDefine = 256 - -class Lexer: - src: str - pos: t.CSizeT - len: t.CSizeT - lineno: t.CInt - col: t.CInt - pool: memhub.MemManager | t.CPtr - indent_stack: t.CInt | t.CPtr - indent_top: t.CInt - paren_depth: t.CInt - tokens_head: Token | t.CPtr - tokens_tail: Token | t.CPtr - at_line_start: t.CInt - error_count: t.CInt - def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass - -def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass - -def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _is_alpha(ch: t.CChar) -> t.CInt: pass - -def _is_digit(ch: t.CChar) -> t.CInt: pass - -def _is_alnum(ch: t.CChar) -> t.CInt: pass - -def _is_hex(ch: t.CChar) -> t.CInt: pass - -def _is_space(ch: t.CChar) -> t.CInt: pass - -def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass - -def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass - -def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass - -def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass - -def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass diff --git a/Test/NewAstTest/temp/0c212981c180e7fb.stub.ll.dep b/Test/NewAstTest/temp/0c212981c180e7fb.stub.ll.dep deleted file mode 100644 index 610b274..0000000 --- a/Test/NewAstTest/temp/0c212981c180e7fb.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|b547ac4f380bddb6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/22bc0df83b3f0e62.stub.ll.dep b/Test/NewAstTest/temp/22bc0df83b3f0e62.stub.ll.dep deleted file mode 100644 index ea67498..0000000 --- a/Test/NewAstTest/temp/22bc0df83b3f0e62.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/NewAstTest/temp/22bc0df83b3f0e62.vpi b/Test/NewAstTest/temp/22bc0df83b3f0e62.vpi deleted file mode 100644 index 7d08ed0..0000000 --- a/Test/NewAstTest/temp/22bc0df83b3f0e62.vpi +++ /dev/null @@ -1,183 +0,0 @@ -""" -Auto-generated Python stub file from ast.base.vp -Module: ast.base -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .tokens import TokOp - -class ASTKind(t.CEnum): - Module: t.State - FunctionDef: t.State - ClassDef: t.State - Assign: t.State - If: t.State - For: t.State - While: t.State - Return: t.State - Expr: t.State - Name: t.State - Constant: t.State - BinOp: t.State - UnaryOp: t.State - Call: t.State - Compare: t.State - Expression: t.State - Interactive: t.State - FunctionType: t.State - Delete: t.State - AugAssign: t.State - AnnAssign: t.State - With: t.State - Raise: t.State - Try: t.State - Assert: t.State - Global: t.State - Nonlocal: t.State - Pass: t.State - Break: t.State - Continue: t.State - Import: t.State - ImportFrom: t.State - Match: t.State - BoolOp: t.State - Lambda: t.State - IfExp: t.State - Dict: t.State - Set: t.State - ListComp: t.State - SetComp: t.State - DictComp: t.State - GeneratorExp: t.State - Await: t.State - Yield: t.State - YieldFrom: t.State - FormattedValue: t.State - JoinedStr: t.State - Attribute: t.State - Subscript: t.State - Starred: t.State - List: t.State - Tuple: t.State - Slice: t.State - NamedExpr: t.State - ExceptHandler: t.State - Arguments: t.State - Arg: t.State - Keyword: t.State - Alias: t.State - WithItem: t.State - Comprehension: t.State - OpNode: t.State - MatchCase: t.State - MatchValue: t.State - MatchSingleton: t.State - MatchSequence: t.State - MatchMapping: t.State - MatchClass: t.State - MatchStar: t.State - MatchAs: t.State - MatchOr: t.State -class ASTCtx(t.CEnum): - Load: t.State - Store: t.State - Del: t.State -class OpKind(t.CEnum): - Add: t.State - Sub: t.State - Mult: t.State - MatMult: t.State - Div: t.State - Mod: t.State - Pow: t.State - LShift: t.State - RShift: t.State - BitOr: t.State - BitXor: t.State - BitAnd: t.State - FloorDiv: t.State - And: t.State - Or: t.State - Eq: t.State - Ne: t.State - Lt: t.State - Le: t.State - Gt: t.State - Ge: t.State - Is: t.State - IsNot: t.State - In: t.State - NotIn: t.State - Not: t.State - UAdd: t.State - USub: t.State - Invert: t.State - NoneOp: t.State - -CONST_INT: t.CDefine = 1 -CONST_FLOAT: t.CDefine = 2 -CONST_STR: t.CDefine = 3 -CONST_BOOL: t.CDefine = 4 -CONST_NONE: t.CDefine = 5 -CONST_CHAR: t.CDefine = 6 -FLAG_IS_ASYNC: t.CDefine = 1 -FLAG_SIMPLE: t.CDefine = 2 -FLAG_HAS_STAR: t.CDefine = 4 - -class ASTFlag(t.CEnum): - IsAsync: t.State - Simple: t.State - HasStar: t.State - -def _copy_str(pool: memhub.MemManager | t.CPtr, src: str) -> str: pass - -def _set_pos(node: AST | t.CPtr, lineno: t.CInt, col_offset: t.CInt, end_lineno: t.CInt, end_col_offset: t.CInt) -> t.CInt: pass - -def _inherit_pos(node: AST | t.CPtr, ref: AST | t.CPtr) -> t.CInt: pass - -def _init_ast(node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - -def _set_parent_list(lst: list[AST | t.CPtr] | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _append_child(lst: list[AST | t.CPtr] | t.CPtr, node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _binop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _augop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _cmpop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _emit(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_str(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_int(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, val: t.CInt64T) -> t.CSizeT: pass - -def _op_name(op: t.CInt) -> str: pass - -def _dump_list(lst: list[AST | t.CPtr] | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - -def _dump_op_list(lst: t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - - -@t.CVTable -class AST: - parent: AST | t.CPtr - pool: memhub.MemManager | t.CPtr - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - children: list[AST | t.CPtr] | t.CPtr - def kind(self: AST) -> t.CInt: pass - def type_name(self: AST) -> str: pass - def dump(self: AST, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - def accept(self: AST, visitor: t.CPtr) -> t.CInt: pass - def append(self: AST, node: AST | t.CPtr) -> t.CInt: pass - -def dump(node: AST | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT) -> t.CInt: pass diff --git a/Test/NewAstTest/temp/271ea3decb810db2.pyi b/Test/NewAstTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/NewAstTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/NewAstTest/temp/271ea3decb810db2.stub.ll.dep b/Test/NewAstTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/NewAstTest/temp/34548789d646f432.pyi b/Test/NewAstTest/temp/34548789d646f432.pyi deleted file mode 100644 index e046b0c..0000000 --- a/Test/NewAstTest/temp/34548789d646f432.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from ast.__init__.py -Module: ast.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp, _init_tables -from .base import AST, ASTKind, ASTCtx, OpKind, ASTFlag, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, FLAG_IS_ASYNC, FLAG_SIMPLE, FLAG_HAS_STAR, _init_ast, _copy_str, _set_pos, _inherit_pos, _set_parent_list, _binop_from_op, _augop_from_op, _cmpop_from_op, _emit, _emit_str, _emit_int, _dump_list, dump -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .astaux import ExceptHandler, Arguments, Arg, Keyword, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .visitor import ASTVisitor -from .lexer import Lexer, _lexer_init, tokenize, new_lexer -from .parser import Parser, _parser_init, parse_tokens, new_parser -from .parser import _parse_test - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass - -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/NewAstTest/temp/34548789d646f432.stub.ll.dep b/Test/NewAstTest/temp/34548789d646f432.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/NewAstTest/temp/4175f14c5fbef360.pyi b/Test/NewAstTest/temp/4175f14c5fbef360.pyi deleted file mode 100644 index 209a287..0000000 --- a/Test/NewAstTest/temp/4175f14c5fbef360.pyi +++ /dev/null @@ -1,17 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -from t import CInt, CExport, CPtr -from stdio import printf -import memhub -import stdlib -import string -from ast import AST, ASTKind, Module, FunctionDef, Assign, If, For, While, With, Return, Expr, Name, Constant, BinOp, UnaryOp, Call, Compare, Import, ImportFrom, Expression, CONST_INT, CONST_STR, CONST_BOOL, CONST_NONE, OpKind, ASTCtx, FLAG_IS_ASYNC, parse, parse_expression, dump - -ARENA_SIZE: t.CExtern | CInt - -def main() -> CInt | CExport: pass diff --git a/Test/NewAstTest/temp/4337fb260448bbe2.pyi b/Test/NewAstTest/temp/4337fb260448bbe2.pyi deleted file mode 100644 index 7ed88bd..0000000 --- a/Test/NewAstTest/temp/4337fb260448bbe2.pyi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from ast.astaux.py -Module: ast.astaux -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class ExceptHandler(AST): - type: AST | t.CPtr - name: str - def __new__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: ExceptHandler) -> t.CInt: pass - def type_name(self: ExceptHandler) -> str: pass - def dump(self: ExceptHandler, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arguments(AST): - args: list[AST | t.CPtr] | t.CPtr - vararg: AST | t.CPtr - kwarg: AST | t.CPtr - defaults: list[AST | t.CPtr] | t.CPtr - kw_defaults: list[AST | t.CPtr] | t.CPtr - def __new__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Arguments) -> t.CInt: pass - def type_name(self: Arguments) -> str: pass - def dump(self: Arguments, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arg(AST): - arg: str - annotation: AST | t.CPtr - def __new__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def kind(self: Arg) -> t.CInt: pass - def type_name(self: Arg) -> str: pass - def dump(self: Arg, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Keyword(AST): - arg: str - value: AST | t.CPtr - def __new__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Keyword) -> t.CInt: pass - def type_name(self: Keyword) -> str: pass - def dump(self: Keyword, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Alias(AST): - name: str - asname: str - def __new__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def __init__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def kind(self: Alias) -> t.CInt: pass - def type_name(self: Alias) -> str: pass - def dump(self: Alias, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class WithItem(AST): - context_expr: AST | t.CPtr - optional_vars: AST | t.CPtr - def __new__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def __init__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def kind(self: WithItem) -> t.CInt: pass - def type_name(self: WithItem) -> str: pass - def dump(self: WithItem, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Comprehension(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - ifs: list[AST | t.CPtr] | t.CPtr - is_async: t.CInt - def __new__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: Comprehension) -> t.CInt: pass - def type_name(self: Comprehension) -> str: pass - def dump(self: Comprehension, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/4337fb260448bbe2.stub.ll.dep b/Test/NewAstTest/temp/4337fb260448bbe2.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/NewAstTest/temp/4337fb260448bbe2.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/4337fb260448bbe2.vpi b/Test/NewAstTest/temp/4337fb260448bbe2.vpi deleted file mode 100644 index efa527a..0000000 --- a/Test/NewAstTest/temp/4337fb260448bbe2.vpi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from ast.astaux.vp -Module: ast.astaux -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class ExceptHandler(AST): - type: AST | t.CPtr - name: str - def __new__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: ExceptHandler) -> t.CInt: pass - def type_name(self: ExceptHandler) -> str: pass - def dump(self: ExceptHandler, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arguments(AST): - args: list[AST | t.CPtr] | t.CPtr - vararg: AST | t.CPtr - kwarg: AST | t.CPtr - defaults: list[AST | t.CPtr] | t.CPtr - kw_defaults: list[AST | t.CPtr] | t.CPtr - def __new__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Arguments) -> t.CInt: pass - def type_name(self: Arguments) -> str: pass - def dump(self: Arguments, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arg(AST): - arg: str - annotation: AST | t.CPtr - def __new__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def kind(self: Arg) -> t.CInt: pass - def type_name(self: Arg) -> str: pass - def dump(self: Arg, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Keyword(AST): - arg: str - value: AST | t.CPtr - def __new__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Keyword) -> t.CInt: pass - def type_name(self: Keyword) -> str: pass - def dump(self: Keyword, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Alias(AST): - name: str - asname: str - def __new__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def __init__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def kind(self: Alias) -> t.CInt: pass - def type_name(self: Alias) -> str: pass - def dump(self: Alias, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class WithItem(AST): - context_expr: AST | t.CPtr - optional_vars: AST | t.CPtr - def __new__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def __init__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def kind(self: WithItem) -> t.CInt: pass - def type_name(self: WithItem) -> str: pass - def dump(self: WithItem, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Comprehension(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - ifs: list[AST | t.CPtr] | t.CPtr - is_async: t.CInt - def __new__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: Comprehension) -> t.CInt: pass - def type_name(self: Comprehension) -> str: pass - def dump(self: Comprehension, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/47767b5026a8ee15.pyi b/Test/NewAstTest/temp/47767b5026a8ee15.pyi deleted file mode 100644 index 7890f3d..0000000 --- a/Test/NewAstTest/temp/47767b5026a8ee15.pyi +++ /dev/null @@ -1,241 +0,0 @@ -""" -Auto-generated Python stub file from ast.exprs.py -Module: ast.exprs -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, _dump_op_list, _op_name, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE - -class Name(AST): - id: str - ctx: t.CInt - def __new__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Name) -> t.CInt: pass - def type_name(self: Name) -> str: pass - def dump(self: Name, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Constant(AST): - int_val: t.CInt64T - float_val: t.CDouble - str_val: str - const_kind: t.CInt - def __new__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def __init__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def kind(self: Constant) -> t.CInt: pass - def type_name(self: Constant) -> str: pass - def dump(self: Constant, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BinOp(AST): - left: AST | t.CPtr - op: t.CInt - right: AST | t.CPtr - def __new__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def __init__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def kind(self: BinOp) -> t.CInt: pass - def type_name(self: BinOp) -> str: pass - def dump(self: BinOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class UnaryOp(AST): - op: t.CInt - operand: AST | t.CPtr - def __new__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def __init__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def kind(self: UnaryOp) -> t.CInt: pass - def type_name(self: UnaryOp) -> str: pass - def dump(self: UnaryOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Compare(AST): - left: AST | t.CPtr - ops: t.CPtr - comparators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Compare) -> t.CInt: pass - def type_name(self: Compare) -> str: pass - def dump(self: Compare, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Call(AST): - func: AST | t.CPtr - args: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - def __new__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Call) -> t.CInt: pass - def type_name(self: Call) -> str: pass - def dump(self: Call, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BoolOp(AST): - op: t.CInt - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: BoolOp) -> t.CInt: pass - def type_name(self: BoolOp) -> str: pass - def dump(self: BoolOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Lambda(AST): - args: AST | t.CPtr - body: AST | t.CPtr - def __new__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Lambda) -> t.CInt: pass - def type_name(self: Lambda) -> str: pass - def dump(self: Lambda, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class IfExp(AST): - test: AST | t.CPtr - body: AST | t.CPtr - orelse: AST | t.CPtr - def __new__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def __init__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def kind(self: IfExp) -> t.CInt: pass - def type_name(self: IfExp) -> str: pass - def dump(self: IfExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Dict(AST): - keys: list[AST | t.CPtr] | t.CPtr - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Dict) -> t.CInt: pass - def type_name(self: Dict) -> str: pass - def dump(self: Dict, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Set(AST): - elts: list[AST | t.CPtr] | t.CPtr - def __new__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Set) -> t.CInt: pass - def type_name(self: Set) -> str: pass - def dump(self: Set, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ListComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: ListComp) -> t.CInt: pass - def type_name(self: ListComp) -> str: pass - def dump(self: ListComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class SetComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: SetComp) -> t.CInt: pass - def type_name(self: SetComp) -> str: pass - def dump(self: SetComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class DictComp(AST): - key: AST | t.CPtr - value: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: DictComp) -> t.CInt: pass - def type_name(self: DictComp) -> str: pass - def dump(self: DictComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class GeneratorExp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: GeneratorExp) -> t.CInt: pass - def type_name(self: GeneratorExp) -> str: pass - def dump(self: GeneratorExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Await(AST): - value: AST | t.CPtr - def __new__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Await) -> t.CInt: pass - def type_name(self: Await) -> str: pass - def dump(self: Await, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Yield(AST): - value: AST | t.CPtr - def __new__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Yield) -> t.CInt: pass - def type_name(self: Yield) -> str: pass - def dump(self: Yield, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class YieldFrom(AST): - value: AST | t.CPtr - def __new__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: YieldFrom) -> t.CInt: pass - def type_name(self: YieldFrom) -> str: pass - def dump(self: YieldFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FormattedValue(AST): - value: AST | t.CPtr - conversion: t.CInt - format_spec: AST | t.CPtr - def __new__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def kind(self: FormattedValue) -> t.CInt: pass - def type_name(self: FormattedValue) -> str: pass - def dump(self: FormattedValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class JoinedStr(AST): - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: JoinedStr) -> t.CInt: pass - def type_name(self: JoinedStr) -> str: pass - def dump(self: JoinedStr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Attribute(AST): - value: AST | t.CPtr - attr: str - ctx: t.CInt - def __new__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Attribute) -> t.CInt: pass - def type_name(self: Attribute) -> str: pass - def dump(self: Attribute, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Subscript(AST): - value: AST | t.CPtr - slice: AST | t.CPtr - ctx: t.CInt - def __new__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Subscript) -> t.CInt: pass - def type_name(self: Subscript) -> str: pass - def dump(self: Subscript, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Starred(AST): - value: AST | t.CPtr - ctx: t.CInt - def __new__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Starred) -> t.CInt: pass - def type_name(self: Starred) -> str: pass - def dump(self: Starred, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class List(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: List) -> t.CInt: pass - def type_name(self: List) -> str: pass - def dump(self: List, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Tuple(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Tuple) -> t.CInt: pass - def type_name(self: Tuple) -> str: pass - def dump(self: Tuple, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Slice(AST): - lower: AST | t.CPtr - upper: AST | t.CPtr - step: AST | t.CPtr - def __new__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def kind(self: Slice) -> t.CInt: pass - def type_name(self: Slice) -> str: pass - def dump(self: Slice, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class NamedExpr(AST): - target: AST | t.CPtr - value: AST | t.CPtr - def __new__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: NamedExpr) -> t.CInt: pass - def type_name(self: NamedExpr) -> str: pass - def dump(self: NamedExpr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class OpNode(AST): - op: t.CInt - def __new__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def __init__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def kind(self: OpNode) -> t.CInt: pass - def type_name(self: OpNode) -> str: pass - def dump(self: OpNode, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/47767b5026a8ee15.stub.ll.dep b/Test/NewAstTest/temp/47767b5026a8ee15.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/NewAstTest/temp/47767b5026a8ee15.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/4dd6b3f1427d1cc5.pyi b/Test/NewAstTest/temp/4dd6b3f1427d1cc5.pyi deleted file mode 100644 index dd15aa2..0000000 --- a/Test/NewAstTest/temp/4dd6b3f1427d1cc5.pyi +++ /dev/null @@ -1,82 +0,0 @@ -""" -Auto-generated Python stub file from ast.match.py -Module: ast.match -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class MatchCase(AST): - pattern: AST | t.CPtr - guard: AST | t.CPtr - def __new__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchCase) -> t.CInt: pass - def type_name(self: MatchCase) -> str: pass - def dump(self: MatchCase, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchValue(AST): - value: AST | t.CPtr - def __new__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchValue) -> t.CInt: pass - def type_name(self: MatchValue) -> str: pass - def dump(self: MatchValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSingleton(AST): - value: AST | t.CPtr - def __new__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchSingleton) -> t.CInt: pass - def type_name(self: MatchSingleton) -> str: pass - def dump(self: MatchSingleton, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSequence(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchSequence) -> t.CInt: pass - def type_name(self: MatchSequence) -> str: pass - def dump(self: MatchSequence, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchMapping(AST): - keys: list[AST | t.CPtr] | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - rest: str - def __new__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def __init__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def kind(self: MatchMapping) -> t.CInt: pass - def type_name(self: MatchMapping) -> str: pass - def dump(self: MatchMapping, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchClass(AST): - cls: AST | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - kwd_attrs: list[AST | t.CPtr] | t.CPtr - kwd_patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchClass) -> t.CInt: pass - def type_name(self: MatchClass) -> str: pass - def dump(self: MatchClass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchStar(AST): - name: str - def __new__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchStar) -> t.CInt: pass - def type_name(self: MatchStar) -> str: pass - def dump(self: MatchStar, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchAs(AST): - pattern: AST | t.CPtr - name: str - def __new__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchAs) -> t.CInt: pass - def type_name(self: MatchAs) -> str: pass - def dump(self: MatchAs, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchOr(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchOr) -> t.CInt: pass - def type_name(self: MatchOr) -> str: pass - def dump(self: MatchOr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep b/Test/NewAstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep index b3836d9..2812636 100644 --- a/Test/NewAstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep +++ b/Test/NewAstTest/temp/4dd6b3f1427d1cc5.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|91497014ca775a64|928c0ff6d8c69ec9|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/NewAstTest/temp/5dab8cb390496d22.pyi b/Test/NewAstTest/temp/5dab8cb390496d22.pyi deleted file mode 100644 index 7056767..0000000 --- a/Test/NewAstTest/temp/5dab8cb390496d22.pyi +++ /dev/null @@ -1,182 +0,0 @@ -""" -Auto-generated Python stub file from ast.base.py -Module: ast.base -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .tokens import TokOp - -class ASTKind(t.CEnum): - Module: t.State - FunctionDef: t.State - ClassDef: t.State - Assign: t.State - If: t.State - For: t.State - While: t.State - Return: t.State - Expr: t.State - Name: t.State - Constant: t.State - BinOp: t.State - UnaryOp: t.State - Call: t.State - Compare: t.State - Expression: t.State - Interactive: t.State - FunctionType: t.State - Delete: t.State - AugAssign: t.State - AnnAssign: t.State - With: t.State - Raise: t.State - Try: t.State - Assert: t.State - Global: t.State - Nonlocal: t.State - Pass: t.State - Break: t.State - Continue: t.State - Import: t.State - ImportFrom: t.State - Match: t.State - BoolOp: t.State - Lambda: t.State - IfExp: t.State - Dict: t.State - Set: t.State - ListComp: t.State - SetComp: t.State - DictComp: t.State - GeneratorExp: t.State - Await: t.State - Yield: t.State - YieldFrom: t.State - FormattedValue: t.State - JoinedStr: t.State - Attribute: t.State - Subscript: t.State - Starred: t.State - List: t.State - Tuple: t.State - Slice: t.State - NamedExpr: t.State - ExceptHandler: t.State - Arguments: t.State - Arg: t.State - Keyword: t.State - Alias: t.State - WithItem: t.State - Comprehension: t.State - OpNode: t.State - MatchCase: t.State - MatchValue: t.State - MatchSingleton: t.State - MatchSequence: t.State - MatchMapping: t.State - MatchClass: t.State - MatchStar: t.State - MatchAs: t.State - MatchOr: t.State -class ASTCtx(t.CEnum): - Load: t.State - Store: t.State - Del: t.State -class OpKind(t.CEnum): - Add: t.State - Sub: t.State - Mult: t.State - MatMult: t.State - Div: t.State - Mod: t.State - Pow: t.State - LShift: t.State - RShift: t.State - BitOr: t.State - BitXor: t.State - BitAnd: t.State - FloorDiv: t.State - And: t.State - Or: t.State - Eq: t.State - Ne: t.State - Lt: t.State - Le: t.State - Gt: t.State - Ge: t.State - Is: t.State - IsNot: t.State - In: t.State - NotIn: t.State - Not: t.State - UAdd: t.State - USub: t.State - Invert: t.State - NoneOp: t.State - -CONST_INT: t.CDefine = 1 -CONST_FLOAT: t.CDefine = 2 -CONST_STR: t.CDefine = 3 -CONST_BOOL: t.CDefine = 4 -CONST_NONE: t.CDefine = 5 -FLAG_IS_ASYNC: t.CDefine = 1 -FLAG_SIMPLE: t.CDefine = 2 -FLAG_HAS_STAR: t.CDefine = 4 - -class ASTFlag(t.CEnum): - IsAsync: t.State - Simple: t.State - HasStar: t.State - -def _copy_str(pool: memhub.MemManager | t.CPtr, src: str) -> str: pass - -def _set_pos(node: AST | t.CPtr, lineno: t.CInt, col_offset: t.CInt, end_lineno: t.CInt, end_col_offset: t.CInt) -> t.CInt: pass - -def _inherit_pos(node: AST | t.CPtr, ref: AST | t.CPtr) -> t.CInt: pass - -def _init_ast(node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - -def _set_parent_list(lst: list[AST | t.CPtr] | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _append_child(lst: list[AST | t.CPtr] | t.CPtr, node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _binop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _augop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _cmpop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _emit(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_str(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_int(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, val: t.CInt64T) -> t.CSizeT: pass - -def _op_name(op: t.CInt) -> str: pass - -def _dump_list(lst: list[AST | t.CPtr] | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - -def _dump_op_list(lst: t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - - -@t.CVTable -class AST: - parent: AST | t.CPtr - pool: memhub.MemManager | t.CPtr - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - children: list[AST | t.CPtr] | t.CPtr - def kind(self: AST) -> t.CInt: pass - def type_name(self: AST) -> str: pass - def dump(self: AST, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - def accept(self: AST, visitor: t.CPtr) -> t.CInt: pass - def append(self: AST, node: AST | t.CPtr) -> t.CInt: pass - -def dump(node: AST | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT) -> t.CInt: pass diff --git a/Test/NewAstTest/temp/5dab8cb390496d22.stub.ll.dep b/Test/NewAstTest/temp/5dab8cb390496d22.stub.ll.dep deleted file mode 100644 index 42d081a..0000000 --- a/Test/NewAstTest/temp/5dab8cb390496d22.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/657e182b27c2a022.pyi b/Test/NewAstTest/temp/657e182b27c2a022.pyi deleted file mode 100644 index 0a2057d..0000000 --- a/Test/NewAstTest/temp/657e182b27c2a022.pyi +++ /dev/null @@ -1,226 +0,0 @@ -""" -Auto-generated Python stub file from ast.stmts.py -Module: ast.stmts -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, FLAG_IS_ASYNC - -@t.CVTable -class Module(AST): - def __new__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Module) -> t.CInt: pass - def type_name(self: Module) -> str: pass - def dump(self: Module, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assign(AST): - targets: list[AST | t.CPtr] | t.CPtr - value: AST | t.CPtr - def __new__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assign) -> t.CInt: pass - def type_name(self: Assign) -> str: pass - def dump(self: Assign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class If(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: If) -> t.CInt: pass - def type_name(self: If) -> str: pass - def dump(self: If, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class For(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: For) -> t.CInt: pass - def type_name(self: For) -> str: pass - def dump(self: For, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class While(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: While) -> t.CInt: pass - def type_name(self: While) -> str: pass - def dump(self: While, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Return(AST): - value: AST | t.CPtr - def __new__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Return) -> t.CInt: pass - def type_name(self: Return) -> str: pass - def dump(self: Return, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expr(AST): - value: AST | t.CPtr - def __new__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expr) -> t.CInt: pass - def type_name(self: Expr) -> str: pass - def dump(self: Expr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionDef(AST): - name: str - args: AST | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - flags: t.CInt - def __new__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: FunctionDef) -> t.CInt: pass - def type_name(self: FunctionDef) -> str: pass - def dump(self: FunctionDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expression(AST): - body: AST | t.CPtr - def __new__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expression) -> t.CInt: pass - def type_name(self: Expression) -> str: pass - def dump(self: Expression, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Interactive(AST): - body: AST | t.CPtr - def __new__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Interactive) -> t.CInt: pass - def type_name(self: Interactive) -> str: pass - def dump(self: Interactive, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionType(AST): - argtypes: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - def __new__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def kind(self: FunctionType) -> t.CInt: pass - def type_name(self: FunctionType) -> str: pass - def dump(self: FunctionType, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ClassDef(AST): - name: str - bases: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - type_params: list[str] | t.CPtr - def __new__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr) -> t.CInt: pass - def __init__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr) -> t.CInt: pass - def kind(self: ClassDef) -> t.CInt: pass - def type_name(self: ClassDef) -> str: pass - def dump(self: ClassDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Delete(AST): - targets: list[AST | t.CPtr] | t.CPtr - def __new__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Delete) -> t.CInt: pass - def type_name(self: Delete) -> str: pass - def dump(self: Delete, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AugAssign(AST): - target: AST | t.CPtr - op: t.CInt - value: AST | t.CPtr - def __new__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: AugAssign) -> t.CInt: pass - def type_name(self: AugAssign) -> str: pass - def dump(self: AugAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AnnAssign(AST): - target: AST | t.CPtr - annotation: AST | t.CPtr - value: AST | t.CPtr - simple: t.CInt - def __new__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def __init__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def kind(self: AnnAssign) -> t.CInt: pass - def type_name(self: AnnAssign) -> str: pass - def dump(self: AnnAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class With(AST): - items: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: With) -> t.CInt: pass - def type_name(self: With) -> str: pass - def dump(self: With, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Raise(AST): - exc: AST | t.CPtr - cause: AST | t.CPtr - def __new__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def kind(self: Raise) -> t.CInt: pass - def type_name(self: Raise) -> str: pass - def dump(self: Raise, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Try(AST): - handlers: list[AST | t.CPtr] | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - finalbody: list[AST | t.CPtr] | t.CPtr - def __new__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Try) -> t.CInt: pass - def type_name(self: Try) -> str: pass - def dump(self: Try, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assert(AST): - test: AST | t.CPtr - msg: AST | t.CPtr - def __new__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assert) -> t.CInt: pass - def type_name(self: Assert) -> str: pass - def dump(self: Assert, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Global(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Global) -> t.CInt: pass - def type_name(self: Global) -> str: pass - def dump(self: Global, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Nonlocal(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Nonlocal) -> t.CInt: pass - def type_name(self: Nonlocal) -> str: pass - def dump(self: Nonlocal, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Pass(AST): - def __new__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Pass) -> t.CInt: pass - def type_name(self: Pass) -> str: pass - def dump(self: Pass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Break(AST): - def __new__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Break) -> t.CInt: pass - def type_name(self: Break) -> str: pass - def dump(self: Break, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Continue(AST): - def __new__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Continue) -> t.CInt: pass - def type_name(self: Continue) -> str: pass - def dump(self: Continue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Import(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Import) -> t.CInt: pass - def type_name(self: Import) -> str: pass - def dump(self: Import, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ImportFrom(AST): - module: str - names: list[AST | t.CPtr] | t.CPtr - level: t.CInt - def __new__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def __init__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def kind(self: ImportFrom) -> t.CInt: pass - def type_name(self: ImportFrom) -> str: pass - def dump(self: ImportFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Match(AST): - subject: AST | t.CPtr - cases: list[AST | t.CPtr] | t.CPtr - def __new__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Match) -> t.CInt: pass - def type_name(self: Match) -> str: pass - def dump(self: Match, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/657e182b27c2a022.stub.ll.dep b/Test/NewAstTest/temp/657e182b27c2a022.stub.ll.dep index b3836d9..2812636 100644 --- a/Test/NewAstTest/temp/657e182b27c2a022.stub.ll.dep +++ b/Test/NewAstTest/temp/657e182b27c2a022.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|91497014ca775a64|928c0ff6d8c69ec9|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/NewAstTest/temp/668790e6c9efdbae.pyi b/Test/NewAstTest/temp/668790e6c9efdbae.pyi deleted file mode 100644 index fdcae1d..0000000 --- a/Test/NewAstTest/temp/668790e6c9efdbae.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from _list.py -Module: _list -""" - - -import t, c -import memhub -import string -from stdint import * - -class list[T]: - __data__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __pool__: memhub.MemManager | t.CPtr - __elem_size__: t.CSizeT - __iter_index__: t.CSizeT - def __new__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __init__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __len__(self: list) -> t.CSizeT: pass - def append(self: list, item: T) -> t.CInt: pass - def get(self: list, index: t.CSizeT) -> T: pass - def __getitem__(self: list, index: t.CSizeT) -> T: pass - def set(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def __setitem__(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def pop(self: list) -> T: pass - def clear(self: list) -> t.CInt: pass - def __iter__(self: list) -> list[T] | t.CPtr: pass - def __next__(self: list) -> T: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/668790e6c9efdbae.stub.ll.dep b/Test/NewAstTest/temp/668790e6c9efdbae.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/NewAstTest/temp/668790e6c9efdbae.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/6f62fe05c5ea1ceb.pyi b/Test/NewAstTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/NewAstTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/NewAstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/NewAstTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/NewAstTest/temp/71e0a3ffcb3ebfad.pyi b/Test/NewAstTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/NewAstTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/NewAstTest/temp/7cadfe07e983fd90.stub.ll.dep b/Test/NewAstTest/temp/7cadfe07e983fd90.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/NewAstTest/temp/7cadfe07e983fd90.stub.ll.dep +++ b/Test/NewAstTest/temp/7cadfe07e983fd90.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/90c53dd6db8d41cf.pyi b/Test/NewAstTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/NewAstTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/NewAstTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/NewAstTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NewAstTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/_phase1_manifest.json b/Test/NewAstTest/temp/_phase1_manifest.json index f1453de..cd85226 100644 --- a/Test/NewAstTest/temp/_phase1_manifest.json +++ b/Test/NewAstTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NewAstTest\\App\\main.py": {"sha1": "4175f14c5fbef360", "mtime": 1783001020.789755, "size": 63423}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NewAstTest\\App\\main.vp": {"sha1": "4175f14c5fbef360", "mtime": 1783001020.789755, "size": 63423}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.vp": {"sha1": "fa67083915eb2e30", "mtime": 1786033550.3346176, "size": 3770}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.vp": {"sha1": "34dc6a647fa19b7b", "mtime": 1786033586.0642571, "size": 11475}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.vp": {"sha1": "91497014ca775a64", "mtime": 1786033954.7782319, "size": 15215}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.vp": {"sha1": "c14a7bd64dff8c0b", "mtime": 1786034120.289799, "size": 40831}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.vp": {"sha1": "8219423928c874da", "mtime": 1786034611.5303524, "size": 24712}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.vp": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.vp": {"sha1": "fde6db0747bdd959", "mtime": 1785348036.106818, "size": 87525}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.vp": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.vp": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}} \ No newline at end of file diff --git a/Test/NewAstTest/temp/_sha1_map.txt b/Test/NewAstTest/temp/_sha1_map.txt index a1891c7..74132db 100644 --- a/Test/NewAstTest/temp/_sha1_map.txt +++ b/Test/NewAstTest/temp/_sha1_map.txt @@ -1,20 +1,20 @@ -0c212981c180e7fb:includes/ast\lexer.py -271ea3decb810db2:includes/atom.py -34548789d646f432:includes/ast\__init__.py -4175f14c5fbef360:main.py -4337fb260448bbe2:includes/ast\astaux.py -47767b5026a8ee15:includes/ast\exprs.py -4dd6b3f1427d1cc5:includes/ast\match.py -5dab8cb390496d22:includes/ast\base.py -657e182b27c2a022:includes/ast\stmts.py -668790e6c9efdbae:includes/_list.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -90c53dd6db8d41cf:includes/stdlib.py -b547ac4f380bddb6:includes/ast\tokens.py -ba12ed409d78139e:includes/string.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -ee52c08239684346:includes/ast\parser.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +34dc6a647fa19b7b:includes/ast\astaux.vp +4175f14c5fbef360:main.vp +4dd6b3f1427d1cc5:includes/ast\match.vp +657e182b27c2a022:includes/ast\stmts.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +7cadfe07e983fd90:includes/_list.vp +8219423928c874da:includes/ast\lexer.vp +91497014ca775a64:includes/ast\base.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +b547ac4f380bddb6:includes/ast\tokens.vp +c14a7bd64dff8c0b:includes/ast\exprs.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +fa67083915eb2e30:includes/ast\__init__.vp +fde6db0747bdd959:includes/ast\parser.vp diff --git a/Test/NewAstTest/temp/b543bc1dfb592119.stub.ll.dep b/Test/NewAstTest/temp/b543bc1dfb592119.stub.ll.dep deleted file mode 100644 index 4565d8a..0000000 --- a/Test/NewAstTest/temp/b543bc1dfb592119.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -22bc0df83b3f0e62|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/NewAstTest/temp/b543bc1dfb592119.vpi b/Test/NewAstTest/temp/b543bc1dfb592119.vpi deleted file mode 100644 index 4910ab4..0000000 --- a/Test/NewAstTest/temp/b543bc1dfb592119.vpi +++ /dev/null @@ -1,241 +0,0 @@ -""" -Auto-generated Python stub file from ast.exprs.vp -Module: ast.exprs -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, _dump_op_list, _op_name, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR - -class Name(AST): - id: str - ctx: t.CInt - def __new__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Name) -> t.CInt: pass - def type_name(self: Name) -> str: pass - def dump(self: Name, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Constant(AST): - int_val: t.CInt64T - float_val: t.CDouble - str_val: str - const_kind: t.CInt - def __new__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def __init__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def kind(self: Constant) -> t.CInt: pass - def type_name(self: Constant) -> str: pass - def dump(self: Constant, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BinOp(AST): - left: AST | t.CPtr - op: t.CInt - right: AST | t.CPtr - def __new__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def __init__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def kind(self: BinOp) -> t.CInt: pass - def type_name(self: BinOp) -> str: pass - def dump(self: BinOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class UnaryOp(AST): - op: t.CInt - operand: AST | t.CPtr - def __new__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def __init__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def kind(self: UnaryOp) -> t.CInt: pass - def type_name(self: UnaryOp) -> str: pass - def dump(self: UnaryOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Compare(AST): - left: AST | t.CPtr - ops: t.CPtr - comparators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Compare) -> t.CInt: pass - def type_name(self: Compare) -> str: pass - def dump(self: Compare, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Call(AST): - func: AST | t.CPtr - args: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - def __new__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Call) -> t.CInt: pass - def type_name(self: Call) -> str: pass - def dump(self: Call, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BoolOp(AST): - op: t.CInt - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: BoolOp) -> t.CInt: pass - def type_name(self: BoolOp) -> str: pass - def dump(self: BoolOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Lambda(AST): - args: AST | t.CPtr - body: AST | t.CPtr - def __new__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Lambda) -> t.CInt: pass - def type_name(self: Lambda) -> str: pass - def dump(self: Lambda, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class IfExp(AST): - test: AST | t.CPtr - body: AST | t.CPtr - orelse: AST | t.CPtr - def __new__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def __init__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def kind(self: IfExp) -> t.CInt: pass - def type_name(self: IfExp) -> str: pass - def dump(self: IfExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Dict(AST): - keys: list[AST | t.CPtr] | t.CPtr - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Dict) -> t.CInt: pass - def type_name(self: Dict) -> str: pass - def dump(self: Dict, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Set(AST): - elts: list[AST | t.CPtr] | t.CPtr - def __new__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Set) -> t.CInt: pass - def type_name(self: Set) -> str: pass - def dump(self: Set, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ListComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: ListComp) -> t.CInt: pass - def type_name(self: ListComp) -> str: pass - def dump(self: ListComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class SetComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: SetComp) -> t.CInt: pass - def type_name(self: SetComp) -> str: pass - def dump(self: SetComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class DictComp(AST): - key: AST | t.CPtr - value: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: DictComp) -> t.CInt: pass - def type_name(self: DictComp) -> str: pass - def dump(self: DictComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class GeneratorExp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: GeneratorExp) -> t.CInt: pass - def type_name(self: GeneratorExp) -> str: pass - def dump(self: GeneratorExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Await(AST): - value: AST | t.CPtr - def __new__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Await) -> t.CInt: pass - def type_name(self: Await) -> str: pass - def dump(self: Await, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Yield(AST): - value: AST | t.CPtr - def __new__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Yield) -> t.CInt: pass - def type_name(self: Yield) -> str: pass - def dump(self: Yield, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class YieldFrom(AST): - value: AST | t.CPtr - def __new__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: YieldFrom) -> t.CInt: pass - def type_name(self: YieldFrom) -> str: pass - def dump(self: YieldFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FormattedValue(AST): - value: AST | t.CPtr - conversion: t.CInt - format_spec: AST | t.CPtr - def __new__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def kind(self: FormattedValue) -> t.CInt: pass - def type_name(self: FormattedValue) -> str: pass - def dump(self: FormattedValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class JoinedStr(AST): - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: JoinedStr) -> t.CInt: pass - def type_name(self: JoinedStr) -> str: pass - def dump(self: JoinedStr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Attribute(AST): - value: AST | t.CPtr - attr: str - ctx: t.CInt - def __new__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Attribute) -> t.CInt: pass - def type_name(self: Attribute) -> str: pass - def dump(self: Attribute, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Subscript(AST): - value: AST | t.CPtr - slice: AST | t.CPtr - ctx: t.CInt - def __new__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Subscript) -> t.CInt: pass - def type_name(self: Subscript) -> str: pass - def dump(self: Subscript, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Starred(AST): - value: AST | t.CPtr - ctx: t.CInt - def __new__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Starred) -> t.CInt: pass - def type_name(self: Starred) -> str: pass - def dump(self: Starred, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class List(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: List) -> t.CInt: pass - def type_name(self: List) -> str: pass - def dump(self: List, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Tuple(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Tuple) -> t.CInt: pass - def type_name(self: Tuple) -> str: pass - def dump(self: Tuple, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Slice(AST): - lower: AST | t.CPtr - upper: AST | t.CPtr - step: AST | t.CPtr - def __new__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def kind(self: Slice) -> t.CInt: pass - def type_name(self: Slice) -> str: pass - def dump(self: Slice, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class NamedExpr(AST): - target: AST | t.CPtr - value: AST | t.CPtr - def __new__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: NamedExpr) -> t.CInt: pass - def type_name(self: NamedExpr) -> str: pass - def dump(self: NamedExpr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class OpNode(AST): - op: t.CInt - def __new__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def __init__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def kind(self: OpNode) -> t.CInt: pass - def type_name(self: OpNode) -> str: pass - def dump(self: OpNode, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/b547ac4f380bddb6.pyi b/Test/NewAstTest/temp/b547ac4f380bddb6.pyi deleted file mode 100644 index e960341..0000000 --- a/Test/NewAstTest/temp/b547ac4f380bddb6.pyi +++ /dev/null @@ -1,166 +0,0 @@ -""" -Auto-generated Python stub file from ast.tokens.py -Module: ast.tokens -""" - - -import t, c -from stdint import * -import memhub -import string - -class TokenType(t.CEnum): - EndMarker: t.State - NewLine: t.State - Indent: t.State - Dedent: t.State - Name: t.State - Number: t.State - String: t.State - FStringStart: t.State - FStringMiddle: t.State - FStringEnd: t.State - Op: t.State - Nl: t.State - Comment: t.State - Encoding: t.State -class Keyword(t.CEnum): - NotKeyword: t.State - False_: t.State - None_: t.State - True_: t.State - And: t.State - As: t.State - Assert: t.State - Async: t.State - Await: t.State - Break: t.State - Class: t.State - Continue: t.State - Def: t.State - Del: t.State - Elif: t.State - Else: t.State - Except: t.State - Finally: t.State - For: t.State - From: t.State - Global: t.State - If: t.State - Import: t.State - In: t.State - Is: t.State - Lambda: t.State - Nonlocal: t.State - Not: t.State - Or: t.State - Pass: t.State - Raise: t.State - Return: t.State - Try: t.State - While: t.State - With: t.State - Yield: t.State - Match: t.State - Case: t.State - Type: t.State -class TokOp(t.CEnum): - LPar: t.State - RPar: t.State - Lsqb: t.State - Rsqb: t.State - LBrace: t.State - RBrace: t.State - Comma: t.State - Colon: t.State - Dot: t.State - Semi: t.State - At: t.State - Equal: t.State - RArrow: t.State - PlusEq: t.State - MinusEq: t.State - StarEq: t.State - SlashEq: t.State - DSlashEq: t.State - PercentEq: t.State - AtEq: t.State - AmpEq: t.State - VBarEq: t.State - CaretEq: t.State - GtGtEq: t.State - LtLtEq: t.State - StarEqEq: t.State - DSlash: t.State - StarStar: t.State - LtLt: t.State - GtGt: t.State - LessEq: t.State - GreaterEq: t.State - EqEq: t.State - ExclaimEq: t.State - Less: t.State - Greater: t.State - Plus: t.State - Minus: t.State - Star: t.State - Slash: t.State - Percent: t.State - Amp: t.State - VBar: t.State - Caret: t.State - Tilde: t.State - ColonEq: t.State - Ellipsis: t.State - Bang: t.State -class Token: - type: t.CInt - op_subtype: t.CInt - kw_subtype: t.CInt - str_val: str - int_val: t.CInt64T - float_val: t.CDouble - is_float: t.CInt - is_complex: t.CInt - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - next: Token | t.CPtr - def __new__(self: Token, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass -class KwEntry: - name: str - kw_id: t.CInt - next: KwEntry | t.CPtr - def __new__(self: KwEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_kw_head: t.CExtern | KwEntry | t.CPtr -_kw_pool: t.CExtern | memhub.MemManager | t.CPtr - -def _kw_intern(pool: memhub.MemManager | t.CPtr, name: str, kw_id: t.CInt) -> t.CInt: pass - -def _kw_lookup(name: str) -> t.CInt: pass - -def _init_keywords(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - - -class OpEntry: - name: str - op_id: t.CInt - length: t.CInt - next: OpEntry | t.CPtr - def __new__(self: OpEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_op_head: t.CExtern | OpEntry | t.CPtr - -def _op_intern(pool: memhub.MemManager | t.CPtr, name: str, op_id: t.CInt) -> t.CInt: pass - -def _init_operators(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _init_tables(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_token(pool: memhub.MemManager | t.CPtr, ttype: t.CInt, lineno: t.CInt, col_offset: t.CInt) -> Token | t.CPtr: pass - -def token_set_str(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, src: str, start: t.CSizeT, length: t.CSizeT) -> t.CInt: pass - -def token_set_str_literal(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, text: str) -> t.CInt: pass diff --git a/Test/NewAstTest/temp/b547ac4f380bddb6.stub.ll.dep b/Test/NewAstTest/temp/b547ac4f380bddb6.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/NewAstTest/temp/b547ac4f380bddb6.stub.ll.dep +++ b/Test/NewAstTest/temp/b547ac4f380bddb6.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/ba12ed409d78139e.pyi b/Test/NewAstTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/NewAstTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/NewAstTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/NewAstTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NewAstTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/c3b259b4059f8668.pyi b/Test/NewAstTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/NewAstTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/NewAstTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/NewAstTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/NewAstTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/c9f4be41ca1cc2b4.pyi b/Test/NewAstTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/NewAstTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/d089e25a15c6f6e0.pyi b/Test/NewAstTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/NewAstTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/NewAstTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/NewAstTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/de3357cb9182715e.stub.ll.dep b/Test/NewAstTest/temp/de3357cb9182715e.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/NewAstTest/temp/de3357cb9182715e.vpi b/Test/NewAstTest/temp/de3357cb9182715e.vpi deleted file mode 100644 index 858bf0c..0000000 --- a/Test/NewAstTest/temp/de3357cb9182715e.vpi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from ast.__init__.vp -Module: ast.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp, _init_tables -from .base import AST, ASTKind, ASTCtx, OpKind, ASTFlag, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR, FLAG_IS_ASYNC, FLAG_SIMPLE, FLAG_HAS_STAR, _init_ast, _copy_str, _set_pos, _inherit_pos, _set_parent_list, _binop_from_op, _augop_from_op, _cmpop_from_op, _emit, _emit_str, _emit_int, _dump_list, dump, _op_name -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .astaux import ExceptHandler, Arguments, Arg, Keyword, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .visitor import ASTVisitor -from .lexer import Lexer, _lexer_init, tokenize, new_lexer -from .parser import Parser, _parser_init, parse_tokens, new_parser -from .parser import _parse_test - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass - -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/NewAstTest/temp/ee52c08239684346.pyi b/Test/NewAstTest/temp/ee52c08239684346.pyi deleted file mode 100644 index ee09339..0000000 --- a/Test/NewAstTest/temp/ee52c08239684346.pyi +++ /dev/null @@ -1,215 +0,0 @@ -""" -Auto-generated Python stub file from ast.parser.py -Module: ast.parser -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp -from .base import AST, ASTCtx, ASTKind, OpKind, ASTFlag, _set_pos, _binop_from_op, _augop_from_op, _cmpop_from_op, _copy_str, _inherit_pos, _init_ast, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, FLAG_IS_ASYNC -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .astaux import ExceptHandler, Arguments, Arg, Keyword as KwNode, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .lexer import Lexer, _lexer_init, tokenize, new_lexer - -class Parser: - tokens: Token | t.CPtr - cur: Token | t.CPtr - pool: memhub.MemManager | t.CPtr - error_count: t.CInt - pending_decorators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Parser, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_parser(pool: memhub.MemManager | t.CPtr) -> Parser | t.CPtr: pass - -def _parser_init(ps: Parser | t.CPtr, tokens: Token | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _advance(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_type(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_kw(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_str(ps: Parser | t.CPtr) -> str: pass - -def _cur_lineno(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_col(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nl(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nls_and_newlines(ps: Parser | t.CPtr) -> t.CInt: pass - -def _expect_type(ps: Parser | t.CPtr, ttype: t.CInt) -> t.CInt: pass - -def _expect_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _match_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _accept_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _new_const_int(pool: memhub.MemManager | t.CPtr, val: t.CInt64T, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_float(pool: memhub.MemManager | t.CPtr, val: t.CDouble, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_str(pool: memhub.MemManager | t.CPtr, val: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_bool(pool: memhub.MemManager | t.CPtr, val: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_none(pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _set_ctx(node: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - -def _fix_store_ctx(node: AST | t.CPtr) -> t.CInt: pass - -def _parse_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_namedexpr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_lambda(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_or_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_and_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_not_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_comparison(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _match_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _advance_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _parse_bitor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitxor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitand(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_shift(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_arith(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_term(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_factor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_power(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_call(ps: Parser | t.CPtr, func: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_subscript(ps: Parser | t.CPtr, value: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_slice(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_paren(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_brace(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sub_expr(ps: Parser | t.CPtr, src: str) -> AST | t.CPtr: pass - -def _parse_fstring(ps: Parser | t.CPtr, content: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comprehension(ps: Parser | t.CPtr, elt: AST | t.CPtr, vtype: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comp_for(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_target_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_target(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_yield(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_varargslist(ps: Parser | t.CPtr, is_lambda: t.CInt) -> AST | t.CPtr: pass - -def _parse_arg_def(ps: Parser | t.CPtr, is_lambda: t.CInt) -> AST | t.CPtr: pass - -def _parse_suite_into_children(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_statement_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_simple_stmt_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_small_stmt(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _maybe_tuple(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_testlist(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_expr_stmt(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_return(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_raise(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_global(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_nonlocal(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_from_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_alias_list(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_del(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_assert(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_compound(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if_tail(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_while(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_for(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_try(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_except_handler(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_with(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_with_item(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_classdef(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_match(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _make_name_ast(pool: memhub.MemManager | t.CPtr, node: Name | t.CPtr) -> AST | t.CPtr: pass - -def _parse_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_closed_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sequence_pattern(ps: Parser | t.CPtr, close_op: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_mapping_pattern(ps: Parser | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_class_pattern(ps: Parser | t.CPtr, cls: AST | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_match_case(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_decorators(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_module_body(ps: Parser | t.CPtr, module_node: AST | t.CPtr) -> t.CInt: pass - -def parse_tokens(pool: memhub.MemManager | t.CPtr, tokens: Token | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/NewAstTest/temp/ee52c08239684346.stub.ll.dep b/Test/NewAstTest/temp/ee52c08239684346.stub.ll.dep deleted file mode 100644 index e0deba7..0000000 --- a/Test/NewAstTest/temp/ee52c08239684346.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -0c212981c180e7fb|271ea3decb810db2|4337fb260448bbe2|47767b5026a8ee15|4dd6b3f1427d1cc5|5dab8cb390496d22|657e182b27c2a022|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/f5522571bcce7bcb.pyi b/Test/NewAstTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/NewAstTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/NewAstTest/temp/f5d13f1be34f417a.stub.ll.dep b/Test/NewAstTest/temp/f5d13f1be34f417a.stub.ll.dep deleted file mode 100644 index 2b2644e..0000000 --- a/Test/NewAstTest/temp/f5d13f1be34f417a.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/NewAstTest/temp/f5d13f1be34f417a.vpi b/Test/NewAstTest/temp/f5d13f1be34f417a.vpi deleted file mode 100644 index 44c435f..0000000 --- a/Test/NewAstTest/temp/f5d13f1be34f417a.vpi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from ast.lexer.vp -Module: ast.lexer -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal - -LEXER_MAX_INDENT: t.CDefine = 256 - -class Lexer: - src: str - pos: t.CSizeT - len: t.CSizeT - lineno: t.CInt - col: t.CInt - pool: memhub.MemManager | t.CPtr - indent_stack: t.CInt | t.CPtr - indent_top: t.CInt - paren_depth: t.CInt - tokens_head: Token | t.CPtr - tokens_tail: Token | t.CPtr - at_line_start: t.CInt - error_count: t.CInt - def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass - -def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass - -def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _is_alpha(ch: t.CChar) -> t.CInt: pass - -def _is_digit(ch: t.CChar) -> t.CInt: pass - -def _is_alnum(ch: t.CChar) -> t.CInt: pass - -def _is_hex(ch: t.CChar) -> t.CInt: pass - -def _is_space(ch: t.CChar) -> t.CInt: pass - -def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass - -def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass - -def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass - -def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass - -def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass diff --git a/Test/NewAstTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/NewAstTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/NewAstTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/NewAstTest/temp/f9d023d1df2bc9c5.vpi b/Test/NewAstTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/NewAstTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/NewAstTest/temp/fde6db0747bdd959.stub.ll.dep b/Test/NewAstTest/temp/fde6db0747bdd959.stub.ll.dep index ce247dd..5fa80eb 100644 --- a/Test/NewAstTest/temp/fde6db0747bdd959.stub.ll.dep +++ b/Test/NewAstTest/temp/fde6db0747bdd959.stub.ll.dep @@ -1 +1 @@ -22bc0df83b3f0e62|285b6aa29a34754d|4337fb260448bbe2|4dd6b3f1427d1cc5|657e182b27c2a022|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b543bc1dfb592119|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f5d13f1be34f417a|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|34dc6a647fa19b7b|4dd6b3f1427d1cc5|657e182b27c2a022|6c658cc728d0bbf4|71e0a3ffcb3ebfad|8219423928c874da|91497014ca775a64|928c0ff6d8c69ec9|aa246c6e6aa30484|b547ac4f380bddb6|c14a7bd64dff8c0b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/NewAstTest/temp/ffaf70367668b227.stub.ll.dep b/Test/NewAstTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NewAstTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NewAstTest/temp/ffaf70367668b227.vpi b/Test/NewAstTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/NewAstTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/NoVTableTest/output/22650858c377c847.deps.json b/Test/NoVTableTest/output/22650858c377c847.deps.json index fe58a4e..80a5dd6 100644 --- a/Test/NoVTableTest/output/22650858c377c847.deps.json +++ b/Test/NoVTableTest/output/22650858c377c847.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/NoVTableTest/temp/14d33679f7fadf1f.pyi b/Test/NoVTableTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/NoVTableTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/NoVTableTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/NoVTableTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/NoVTableTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/22650858c377c847.pyi b/Test/NoVTableTest/temp/22650858c377c847.pyi deleted file mode 100644 index 24552b0..0000000 --- a/Test/NoVTableTest/temp/22650858c377c847.pyi +++ /dev/null @@ -1,64 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import string -import testcheck -import linkedlist -import viperlib -import stdlib - -class Node(linkedlist.LinkedNode): - value: t.CInt - -def test_append() -> t.CInt: pass - -def test_prev_link() -> t.CInt: pass - -def test_last_child() -> t.CInt: pass - -def test_remove() -> t.CInt: pass - -def test_remove_child() -> t.CInt: pass - -def test_insert_ops() -> t.CInt: pass - -def test_index_access() -> t.CInt: pass - -def test_sibling_traverse() -> t.CInt: pass - -def test_unlink() -> t.CInt: pass - - -class SNode(linkedlist.SListNode): - value: t.CInt - -def test_slist() -> t.CInt: pass - -def test_sprintf_vararg() -> t.CInt: pass - - -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -class GNode(GSListNode[GNode]): - Value: t.CInt - -def test_generic_slist() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/NoVTableTest/temp/2d39c6c7d3557b3e.pyi b/Test/NoVTableTest/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/Test/NoVTableTest/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/NoVTableTest/temp/2d39c6c7d3557b3e.stub.ll.dep b/Test/NoVTableTest/temp/2d39c6c7d3557b3e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NoVTableTest/temp/2d39c6c7d3557b3e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/6f62fe05c5ea1ceb.pyi b/Test/NoVTableTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/NoVTableTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/NoVTableTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/NoVTableTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/NoVTableTest/temp/71e0a3ffcb3ebfad.pyi b/Test/NoVTableTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/NoVTableTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/NoVTableTest/temp/7e529fe7a078cfef.pyi b/Test/NoVTableTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/NoVTableTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/NoVTableTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/NoVTableTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NoVTableTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/90c53dd6db8d41cf.pyi b/Test/NoVTableTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/NoVTableTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/NoVTableTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/NoVTableTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NoVTableTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/_phase1_manifest.json b/Test/NoVTableTest/temp/_phase1_manifest.json index 6523de3..e6096e3 100644 --- a/Test/NoVTableTest/temp/_phase1_manifest.json +++ b/Test/NoVTableTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NoVTableTest\\App\\main.py": {"sha1": "22650858c377c847", "mtime": 1782800242.9985914, "size": 17052}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\NoVTableTest\\App\\main.vp": {"sha1": "22650858c377c847", "mtime": 1782800242.9985914, "size": 17052}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/NoVTableTest/temp/_sha1_map.txt b/Test/NoVTableTest/temp/_sha1_map.txt index f977f4f..1bae583 100644 --- a/Test/NoVTableTest/temp/_sha1_map.txt +++ b/Test/NoVTableTest/temp/_sha1_map.txt @@ -1,12 +1,12 @@ -14d33679f7fadf1f:includes/testcheck.py -22650858c377c847:main.py -2d39c6c7d3557b3e:includes/linkedlist.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -f5522571bcce7bcb:includes/stdint.py +22650858c377c847:main.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +a5e9a83e9db303ad:includes/linkedlist.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/NoVTableTest/temp/ba12ed409d78139e.pyi b/Test/NoVTableTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/NoVTableTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/NoVTableTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/NoVTableTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NoVTableTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/NoVTableTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/NoVTableTest/temp/c3b259b4059f8668.pyi b/Test/NoVTableTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/NoVTableTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/NoVTableTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/NoVTableTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/NoVTableTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/c9f4be41ca1cc2b4.pyi b/Test/NoVTableTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/NoVTableTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/NoVTableTest/temp/f5522571bcce7bcb.pyi b/Test/NoVTableTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/NoVTableTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/NoVTableTest/temp/ffaf70367668b227.stub.ll.dep b/Test/NoVTableTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/NoVTableTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/NoVTableTest/temp/ffaf70367668b227.vpi b/Test/NoVTableTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/NoVTableTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/PointerTest/output/b436212dcff1be29.deps.json b/Test/PointerTest/output/b436212dcff1be29.deps.json index e7bbdde..a783ef5 100644 --- a/Test/PointerTest/output/b436212dcff1be29.deps.json +++ b/Test/PointerTest/output/b436212dcff1be29.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/PointerTest/temp/0035c95a18d4f8e8.pyi b/Test/PointerTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/PointerTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/PointerTest/temp/067c78e9f121dce3.pyi b/Test/PointerTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/PointerTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/PointerTest/temp/06f53cc594b4ac6c.pyi b/Test/PointerTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/PointerTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/PointerTest/temp/14d33679f7fadf1f.pyi b/Test/PointerTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/PointerTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/PointerTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/PointerTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/PointerTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/PointerTest/temp/6446627d4f07a1b5.pyi b/Test/PointerTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/PointerTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/PointerTest/temp/6f62fe05c5ea1ceb.pyi b/Test/PointerTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/PointerTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/PointerTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/PointerTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/PointerTest/temp/72e2d5ccb7cedcf1.pyi b/Test/PointerTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/PointerTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/PointerTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/PointerTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/PointerTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/PointerTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/PointerTest/temp/7e529fe7a078cfef.pyi b/Test/PointerTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/PointerTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/PointerTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/PointerTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/PointerTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/PointerTest/temp/_phase1_manifest.json b/Test/PointerTest/temp/_phase1_manifest.json index 99492b9..315c69f 100644 --- a/Test/PointerTest/temp/_phase1_manifest.json +++ b/Test/PointerTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\PointerTest\\App\\main.py": {"sha1": "b436212dcff1be29", "mtime": 1782266285.034029, "size": 9274}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\PointerTest\\App\\main.vp": {"sha1": "b436212dcff1be29", "mtime": 1782266285.034029, "size": 9274}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/PointerTest/temp/_sha1_map.txt b/Test/PointerTest/temp/_sha1_map.txt index fd281cc..13d05ee 100644 --- a/Test/PointerTest/temp/_sha1_map.txt +++ b/Test/PointerTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -7e529fe7a078cfef:includes/w32\win32base.py -b436212dcff1be29:main.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +b436212dcff1be29:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/PointerTest/temp/b436212dcff1be29.pyi b/Test/PointerTest/temp/b436212dcff1be29.pyi deleted file mode 100644 index ab57c0d..0000000 --- a/Test/PointerTest/temp/b436212dcff1be29.pyi +++ /dev/null @@ -1,48 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -import stdio -import string -import w32.win32console -import w32.win32memory -import testcheck - -_g_val: t.CExtern | t.CInt -_g_ptr: t.CExtern | t.CUInt32T | t.CPtr - -def test_global_write() -> t.CInt: pass - -def test_global_write_no_decl() -> t.CInt: pass - -def test_global_ptr() -> t.CInt: pass - -def test_global_ptr_no_decl() -> t.CInt: pass - -def test_pointer_arithmetic() -> t.CInt: pass - -def test_array_decay() -> t.CInt: pass - -def test_pointer_cast() -> t.CInt: pass - -def test_pointer_offset() -> t.CInt: pass - - -class TestStruct: - a: t.CInt - b: t.CInt - c: t.CUInt64T - -def test_struct_pointer() -> t.CInt: pass - -def test_memcpy_pointers() -> t.CInt: pass - -def fill_array(arr: t.CUInt32T | t.CPtr, count: t.CInt, val: t.CUInt32T) -> t.CInt: pass - -def test_pointer_param() -> t.CInt: pass - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/PointerTest/temp/ba12ed409d78139e.pyi b/Test/PointerTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/PointerTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/PointerTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/PointerTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/PointerTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/PointerTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/PointerTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/PointerTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/PointerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/PointerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/PointerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/PointerTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/PointerTest/temp/f5522571bcce7bcb.pyi b/Test/PointerTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/PointerTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/PointerTest/temp/f6b51804a0ba8ff0.pyi b/Test/PointerTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/PointerTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/PointerTest/temp/ffaf70367668b227.stub.ll.dep b/Test/PointerTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/PointerTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/PointerTest/temp/ffaf70367668b227.vpi b/Test/PointerTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/PointerTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ShortCircuitTest/output/a711c9c66fd7c6ca.deps.json b/Test/ShortCircuitTest/output/a711c9c66fd7c6ca.deps.json index 9afbc2a..ff257cb 100644 --- a/Test/ShortCircuitTest/output/a711c9c66fd7c6ca.deps.json +++ b/Test/ShortCircuitTest/output/a711c9c66fd7c6ca.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/0035c95a18d4f8e8.pyi b/Test/ShortCircuitTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/ShortCircuitTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/ShortCircuitTest/temp/067c78e9f121dce3.pyi b/Test/ShortCircuitTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/ShortCircuitTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/ShortCircuitTest/temp/06f53cc594b4ac6c.pyi b/Test/ShortCircuitTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/ShortCircuitTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ShortCircuitTest/temp/14d33679f7fadf1f.pyi b/Test/ShortCircuitTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/ShortCircuitTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/ShortCircuitTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/ShortCircuitTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/ShortCircuitTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/6446627d4f07a1b5.pyi b/Test/ShortCircuitTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/ShortCircuitTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.pyi b/Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/ShortCircuitTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ShortCircuitTest/temp/72e2d5ccb7cedcf1.pyi b/Test/ShortCircuitTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/ShortCircuitTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/ShortCircuitTest/temp/7e529fe7a078cfef.pyi b/Test/ShortCircuitTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/ShortCircuitTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/ShortCircuitTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/ShortCircuitTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ShortCircuitTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/90c53dd6db8d41cf.pyi b/Test/ShortCircuitTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/ShortCircuitTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/ShortCircuitTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/ShortCircuitTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ShortCircuitTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/_phase1_manifest.json b/Test/ShortCircuitTest/temp/_phase1_manifest.json index 7e10fe4..f268078 100644 --- a/Test/ShortCircuitTest/temp/_phase1_manifest.json +++ b/Test/ShortCircuitTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ShortCircuitTest\\App\\main.py": {"sha1": "a711c9c66fd7c6ca", "mtime": 1782355546.5909688, "size": 4497}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ShortCircuitTest\\App\\main.vp": {"sha1": "a711c9c66fd7c6ca", "mtime": 1782355546.5909688, "size": 4497}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/_sha1_map.txt b/Test/ShortCircuitTest/temp/_sha1_map.txt index e566915..3683d27 100644 --- a/Test/ShortCircuitTest/temp/_sha1_map.txt +++ b/Test/ShortCircuitTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -a711c9c66fd7c6ca:main.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +a711c9c66fd7c6ca:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/ShortCircuitTest/temp/a711c9c66fd7c6ca.pyi b/Test/ShortCircuitTest/temp/a711c9c66fd7c6ca.pyi deleted file mode 100644 index 213e2c8..0000000 --- a/Test/ShortCircuitTest/temp/a711c9c66fd7c6ca.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import stdio -import stdlib -import string -import testcheck - -def bump_true(buf: bytes) -> bool: pass - -def bump_false(buf: bytes) -> bool: pass - -def main() -> CInt | CExport: pass diff --git a/Test/ShortCircuitTest/temp/ba12ed409d78139e.pyi b/Test/ShortCircuitTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/ShortCircuitTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/ShortCircuitTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ShortCircuitTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/ShortCircuitTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/f5522571bcce7bcb.pyi b/Test/ShortCircuitTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/ShortCircuitTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/f6b51804a0ba8ff0.pyi b/Test/ShortCircuitTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/ShortCircuitTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/ffaf70367668b227.stub.ll.dep b/Test/ShortCircuitTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ShortCircuitTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ShortCircuitTest/temp/ffaf70367668b227.vpi b/Test/ShortCircuitTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/ShortCircuitTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SimdTest/output/271ea3decb810db2.deps.json b/Test/SimdTest/output/271ea3decb810db2.deps.json deleted file mode 100644 index 33d53aa..0000000 --- a/Test/SimdTest/output/271ea3decb810db2.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/SimdTest/output/3f7c5e78d8652535.deps.json b/Test/SimdTest/output/3f7c5e78d8652535.deps.json index 33d53aa..3ead2c0 100644 --- a/Test/SimdTest/output/3f7c5e78d8652535.deps.json +++ b/Test/SimdTest/output/3f7c5e78d8652535.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "90f67f777f23b84b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "vipermath": "3f7c5e78d8652535", "stdlib": "6c658cc728d0bbf4", "vipersimd": "6dde8fc09b24666c", "testcheck": "748d0424e8976fa0", "main": "90f67f777f23b84b", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SimdTest/output/6dde8fc09b24666c.deps.json b/Test/SimdTest/output/6dde8fc09b24666c.deps.json index 125d45c..3ead2c0 100644 --- a/Test/SimdTest/output/6dde8fc09b24666c.deps.json +++ b/Test/SimdTest/output/6dde8fc09b24666c.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "vipermath": "3f7c5e78d8652535", "stdlib": "6c658cc728d0bbf4", "vipersimd": "6dde8fc09b24666c", "testcheck": "748d0424e8976fa0", "main": "90f67f777f23b84b", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "vipermath": "3f7c5e78d8652535", "stdlib": "6c658cc728d0bbf4", "vipersimd": "6dde8fc09b24666c", "testcheck": "748d0424e8976fa0", "main": "90f67f777f23b84b", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SimdTest/output/90f67f777f23b84b.deps.json b/Test/SimdTest/output/90f67f777f23b84b.deps.json index c69173f..a9caa4c 100644 --- a/Test/SimdTest/output/90f67f777f23b84b.deps.json +++ b/Test/SimdTest/output/90f67f777f23b84b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "vipersimd": "c24f25b14b4bbd0a", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "vipermath": "3f7c5e78d8652535", "stdlib": "6c658cc728d0bbf4", "vipersimd": "6dde8fc09b24666c", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SimdTest/output/_shared_sym_includes.pickle b/Test/SimdTest/output/_shared_sym_includes.pickle index fb11eb4674d790765619d2511d80024d45a22f75..156bd3de0cb9c5eb904cf841a1ade4b6e65874a3 100644 GIT binary patch literal 600486 zcmeFa2Yg&tl|L@q>h8TIP68=*LX0iRvYl#Kl5OQlBSpm}Q8GNuJn7E$6lID_AZ%zs z14CJu&>U$&2op;X&&-3TwuV*A# zZ@%Z8d+)jDo^$TKjrTV+ENQ?$_oR2GR>aPSrXoRaT%8JP>C}c`U~0E764iE(>0ci= zzPvpD-AmKEo{`4?+v+v`b4-8N6o}2nqv_N|*4+z)5+8dd~+reRO12QmQ1z#)wr7d?n?b#{JRwfzoSg10`cj97R2Ay z2Cuzm1O7NeHMCEik89pY)DKT(ov9V@vxaaD0k-Adcv7wK%~)KGiyAI1)Y|iX>w2^Q)qn-vy!$ z!?*xbTzST^$3`2MmS2tbJC;f)N1%p z840MtfQpY=9o1ry;2HS6#y4;{!B55F(S$C57I=dn27VN^ln4hRVR+pRuTeiB5qO7& zpxXsbAjVrX{kZY7`1=gW!S`0d8=agXdH4$cTAeSvUWea3=hJ5Kzj}di3_oKtd@UYT zK}o28FxKmn?1m(}5lr?b*2!*8vO^x$lVpcItXDS?*3XWbL+KXy2}NmTgQn0~+ zpzXVt6^!; z-|kJr+s+Pnt7VjJ^_$tXnbl>Fhwa_PI>0`=l5Ag+btl>W1<(BD#GJ%ISvcaJ1S1Z` z-07ed*@(H^C$pIg*1%jaxS+XU927S>76|$E7jZ2#JE^K2UERKJty@()_jDcTqM9C7 zWv$5<)Kpkft(3h$Gh%P7%!IB1=i@j!HKw=5N{q<^#?-JtH=;t7eSJ|I(>gHoM;tVB zyX7HoHepds^?Rqaun&A10W-)=Ci?7QE)`b4i9KdFd(^GMH;^kFonLT=U4>WTW;wT9 zY$8(l*6a+g2G6SJW8PrIciKB0)x<`5p3l(TmGc>J?sxr#iuMj$hzuY%#ltShRem*_ zEayi5HX`M(>KPv%8tCAiJgV3eBXa!Z;^<t=Epiap36w zi{GeAA``OB+kWxGVnU(XjucsjV|xO4IY(kgeBvRX9o3wQ?&;F@ zO>15Ir>8sA>3tms3Qk2K!_4cQjYiG{AeG7Mt%2qU&Y@F{n2~19Z6T*gJd0%4q?&s%&1}5P=`p4v9CG0FxHJ`k|6wWYJjk*U5+VsgbA<^)HnHne z3rr0om;z`i=Xs9)#pi`<*dYHh3Ne!cwKLTmnVz=IWZ{2=pS3$QzF_p6YG;8N<~^%o zPNk(j>O&5)?R_k$PFc%Wn!R_F*n9hwei&yz$JK|fQ_BrG7>U+(Z1k!2L=5s}T{*O2 zazZBGSTuX+uiEcvQ-d%ycth%}^&|z(PfPE_KsbJ2KJUj!!T+lk#;U9^AYI?i9jue7 zvN;jct7a@`$qRlvu-sr@_hul|J8Fg9z~O`+>PakZOqzRibFq8Gzlxg!tLb0bXQ0~F zwuRJlW(AWKL73hfdtr7jv$LIpo$aL#>}=;slI;1?M#`OSsy(~d$E-~bq|vG`cHLd` zt#-y<|F3$rYt{DzQ0-+c489DsW48^qHi|jRn!Cjt_2CaMvl;jo`U1y4Z^yh&+?zHZ zJBB*8y4((I!HS=^($Q7Cjp8A@j!N+> zhWdw&O&s?23=SOi2#s{{W6sq!G@)~Z<3%uQf#=v@&tdP-fX91yaJW|?CJXuHmO6#R zbH~YUFv%Vs7$52x@g6=k-akgncdZTIp#}-HKkI<-;fcP!Q#DgBq|RHb_fqH8yFSOZ z=cIRdw6A}ZTD$8B>7q3o%01TK16;jh1GiDvJwa)JwR&YtRnVq~C8l=QGA%8SEdL4y zn+2NiEHKArRgP}WQ*HQWj53jMt$CUSSLAYCozrXW4^8;5pfYG~0tvW;|1TaoDCfTWIJsb;(n!){($Yp}(X5+c1e9v>c%GcU2PTbk|@ z42qlSC^n598y=OjlfYtb7Kz$;P#p$UjBFBVvsI@mZE zjAe8@Zg9q+Es>7f49?P&ye8{G>9p;Xtr^6((-ChS9QGW=zjEBDw%)-=cn1Gk`%z~M z!WYpIZkv$Hcx_hG<(WU%V16+j^G11UZqn6kt>RZ0M4|T!)nIPYRV>G#bK5_AqkgNw z_!2_KC!{%&{OjlzTlvcm8#FJaquHv{lr~AX>!oF|=d+uhKW8w$jE->&>Qx%y7JZLk z$M#zW+b0mRJ%XuDUhw<`GO*{%%j7?`Gvr?yM4w1Uv}y2g4>`?08#FJcquGM{AZgZH zcGI__Ro~)XK}WXf$l!2~v>nlrU_`aq5nXIhy^@Y&*p9CsW%#2chho}HB0GSZRe;D7+jxB%T?A4 zrE|5NpFVAH-9yL~kLTqKSN=-O0k_(@f5V`;myTvL(v&n-?IRRFGk9XVMWW?K=P7BN z+HYWgZ}99S<|%26+Mm$2w&|O?E;^nqI69^6U|VsKIba)Z+G5b%M@P3+AEnaxwq+Jo zyNJ^+gK#%3;m!`Zgkfd1BYd4fct0)S?k>56VR^M9tQdq35E9lGSc!y<-kWxWCk?^} z=?J$OORY4<^G3--2IcFBDN7v22IVs2_~{1a>xn5#9LNUcG9&p#2IU**C^z9*h#XfL zTIgc7l-<_$L4)g!bX=Q}t0aFJf{sYmc60lX!S*I%wvxQ&3|rgn?V|=;>^VxbN6>TO zlsdPJSro@Nxz89YNfo-;Hl8@Y#EbC6wcL0;?cgq^t8=6^UDmrgLHh`z`N}m zIC8`*Nwp6kBP-Ru*`PW^N3}TsL2FsrYqrkb2MwMcI-V`Sb8ojSqP7m-rwyXRv_v~Q zWD&J>`W`cgj?fbA?vh2+*75tPLG)Haq6wK})Ykj^ok4Vzj%X_ql{ZLjUBH&*`qp!d zn5n!`YU>AXHkghRGnF??ZJoiZ45kxwOq=l%Gg;G-tuwga;CY;mXG=^bQCrvOs6q4u z9nrSgc+?MWsVtq^Qaxc%JxNEk6((L_D~TyY?FYhfaPn;&{27DqDLTGwxY9@@+@=>F z*)u+8FuskBam!gB#F%9%xTW_5hOlk)n>5(oPRJI?O54`F1;g=H+qYL4L?`Kp!bLK8 z_$NuP{2%O?zRh5I2QgE5F4O1im_BSUy_1mXG?oWRv)-e2A??o@OuckW+jOS#%=e@n z)qgXnK82d9Jo^pUQT>HMRi&mX&*#6}j_Mx`s#A1S+YJNmkTzJKZ^yNLg}!I?(Q$3^ z9*#t8Zm*o@TAlf-dD)XJm(y(qM?W3M_E_8xp5boDoRt&Q*Y9Apa2-+wPuBZuQf08L z%yE{L)WPqvsn$*vKU`4=dt@%pFsE;onJRp=q7e4XG#`zbrE-k?C3e~_e6*qvcFtUt z(KWJ`X6AoqN4(_eibB{x(-b?lm6W6L_t_CIe6#}hMUiFZnKGBzOp|}gj(Ew_6@{>u zrYUxLjTh~L>Dighc(kGrcGX;w8RPPrYuZ+ArHY=dD1;3*&1cu3&t{f)=Glru*m2Y3 zEwAw=Z^bq%R{mPivlWG~|K{q9ont1hv^Jc4s~z>y$14h9KTdOQBW}x?o!E@$DhgqL zPSe=rwQ}Uw*=f7z*@{BgtkbkKsXaTnVn@C7@rpv&y3^bnN$lXsC+)ZwKU`4=8+fiU zoprg25808oc)p?#_VF|gPik{Z{&YL~rH@w>!ls^C>C2`6B0KsP&sP+})}H19C#}OL zf6$J4;iDCWu+OKt&d6)`$se+#UG!{4A?)^PKD!1@KeNtz=Glru*#6U;WTbWhN0zX@(nhJWm%nPpROo`y+lo&%WEmhudriY^lU{TY%FSSAtd$}<=u9~iyy8i zgk46>hf8cW%I(rPvPWv>!xe?FNiq}(nOBvtx&MIr1^YHk_fTvbwi zvRxHfHX>_0T2TnQm741+JX%)8vRzGC){o0PTTuu*m*(-7HN)AJnC0^}<~PDFrg^+& z&2DxTXZgI1xs9-+smWXKyCx@hz^(u-%RBRIMImf)YI<<^Y*_=`_6WWB;fg}o^fdqB zvWB=_eOlIcMX?)WoUjdQK66=v+^$}&fVnZs2^*uD-Wy0=S}QAlsZEA`)_co7T~P?T zq?+!NKG3Cw;`Z8+FMYhC5VlOsd%U~`SN!k-*k>NED1`k}^VrMlzR1TGz&`VMMImga zYO>eYS80~-pO1a+@rpv&Sv7mgCwJf{?C4uOUr`9#tmZ#o;?TcuA^fvrpRng@K7WaW z|K$tepB?>#4OmUj9#5boZQSkZB(t7<=Glru*o@Wm^6=TRJbSyc$*h-WK3q`<8?)v! zm*v^pl~EQjH#~d7Cava5r`wyfmF`=1L%sCzibB}2)tu=JqmxGemv;0mp06l`?OXGo zFL9;&%R=~PS31I8u5FoYI_j3Lsr&~k3SnngvzU&&!E3gRPk*wa5H@61(BugdLuhh=?o^Wlm@*i+VwIm>J< z%k5fhWn<3Srz;9!e_7Kb1z)@tZDvyz&sP+}rn9EiL#qX8oil8+28ti9D1>cjO{)jy z^4i|mW)74*T~P=-)8;*0ULPD=FSX?9ibB||Ht*^38spe{t0hlY6vFSpge`5&&`)hT+h%jaa*tOO!Zx@0?Bxx4TUWO9@rpv&`ZoXZ@&>)FQ(O9YMImg5 zYc8`go5jxS*_sbm6v76%=6qL^KDpWXF8g#vA?%rJdX~^zwHB>&vz~3<^A&}#k*+!D zq_&sk5o~m4)s>?3@rpv&R@c-%E;sVJ>+*Z;=vzErQ3#vtnj>FkuU-DPcI-=@t|){p zcg?5Qr1Nfe*2_L!Q3$*6n!~O(&3Ln3UheUVLfDx%pS?UU&-P@w^zn*9*sa%md~KTc zW_6!?yrRhL;Cp{V!;%L4lVsr}i`s7Jq7e26HWSLI+XQE`$ubXC z6vBqV&4${gRK|F$Tzu9Ehp!D)bhyhS)o254d08S~*4WUn>lx{L(mUB658JzobpX?@B-@u{ z-E(Zea%p0UZ35z(lWa?pZB4RmNw)otG`pBxlWH1^t8p#;(zM+#@UZ=O7d zm&4yHJ?#1{Q8Ty7Mh*xIIwT3TU9#_s-0c?_jUPq zpP3D$9i%yDV_GfKRoK?fBIDBE?oIO>)-^QTm)4}18b1oZyl!o5IZQeyKmZh$5pyl0 zpB)8LgNbG*y9H(vebR@27vt=M&C7`_qcs+G-ZWr=f|Qf{()t|I;m#oo^bG{oDQtR9 zWGRiaiFm9UwtO9* zm$eJ*nNDUGGn(N1VA_Rg38w3LC0v-BT|~@pmNOG}jox3}e&2!{pH_Y2v!rz6Q{Phv zwp%AMmFDT`U?Rqy(hss}2MiMU(lLX;jOh56B>~>^F#@}Bc ziVx-974OIRN5up~xb@J>31FIVbOXYFsPkUTzP8>94krmw;-+U+=yCIw^?5Np-VW~; zw{L06p=uA4U#l}Wr^*5clXnzIWuKT-2;Hd6;#s{j#ZT$X&Bb$4j5(p((1eFX5h4Gv z>|sUOy%e4iiMvIWoe_o9U@+nnBA9WAz(LkSaOE6i_E?$NyVBt9lhRYHBx(%TX^Ni= zb^E&a9q{?~cO3BVnVOpJqBpH?bu7{n>N`4zmwpl% zKy&PT4AK~6nt*t6N_|@aUIj{I1&!LdK)f0o;Kt_4oe3OX3h-i3A{)TSTre=TyZYS- zzZM*t?6Sc3pnFrfXM{J|6H|Akoaw4k|6XEF(`>f;IOO6|E53= z&lHmbpP^@O2;5 zd$|gc8;9p7Yv%%fSihE#0SSB#M=ChK@FGb}RFIP9%1!!OjNQVC zXo6=I_066aGFkHsrsy2MAl1jZ4D28r=GvX|mCc6qETp=t>_G+`n9|f&RGh+r*-egV z-6;37tI5)}u8Kv{T&>&JQ3`~QFq4Z&>n$+W!%_yj9!Ba|&`BG2$G*k+J*KUZT7itg z?^;2AuMB~?01IY_tN>SlpeE+3>Uu8DZnj?N|G3nCp-)2D!=W`@rAvA}yP_=fD zmur`OxxmeUYXR04u$|BXFapG!oc$r;67DmZr#*|i4J>p?^tI_?I<;dkz}35)#!eNl z{Fl(_9XEdD&Ym0eDcXSOqx~{stW_r(Lg6s!ARotOVaLal>y7t^W>^JhIey^um* z*DG-GMT@yU3kP9#`@@B|`THvk`dmS0A+3gm2wp#D&I~oNkqbEza21^e=o`Q)4}kOZ zpMANo4WK(e2pkjaqO*<`m>)usGh#Uq7SjWbd0fa-!!>luZ&c$EXc4<2vk)@5% zs&b>px=XJq_zF&lD15}f#sh$B>Ga$LdJYC9D;m0>;l*|3yP(+~2bzYpfaFdKW$QQQ z5w=#Xc>n)oI%VUauBy-X0vcw5uDi?X8eDk$qu&a2UApcRxPi@o5%ib7a%0+;9L z53fPt30~Y({A@)bEJHD$UxR9tEcd);D+*z4%DRl~Yf_?;vV6Lt5SFaKok_aw)uM6* zFKjA#xS|jivY3`%gL;;%<>x(HQ3$JB%;^?%ASLhJY?!bM>vk${9YI*}kuM1ux!88(vHHu6^&2<8DX!4T%k=Zzgl zQ|9?Uicu#_3eTfnZI+;AB*C0Eejz3a!Yt|R=#ZQ&%~x+0T1yC%hqI!PoI}jJKoq$d zbibHj2$N~e(IPFUmQNN)#49Ed!sJp@BItlQnq$hJSs;n$h)IGl-!gB|I4z2|6o}&O zVxk~SLCiA>unVDcr?TN`b5Z%Sm?Q|(^717iF*}d{R!kCvscNPqoXuF{Tejc|VmhAN z^>?Ou?0|Oyn>NDiEVy)D->NvBq{Vv+#B!uSECXUrxQZlP zAd$PoBtn>`V=gZ8vUT_?3Pkd1F_91^uRyOnee5`!!@@r%Mw~F411{h&i94Cp!G9pe zoG`T^Pvs6~IPj*eLhA(KIlrlLxySwd8W2QoJGNU)EQBZDSn2{N-$D-N0uqf%lTXZ~ zgDQ@+E9x4#+&inrVqRY)5f)4G7h=gD*bW0iQL4IgWPcZ2HqzD6r5!l9zk6EUL)9^I zxp!I(1j$AAZbM`k=6)-_l;16Kxi=n(t3lmD=tcm4#2|{Tpoxj1UI~eQ$smgHc_N}s zQ`$^Gtc1(W$4xQ^dhZ(y4sR2tY#5Hz_t$qso~PuX&PJgOzq zYfCH<3aL@Crr54-E6;<(vu7&Z_KtWb#*ZARV%&NJ4h=EW(~9BH&;P>4U<8bN*hG>Y z_plQlb~4FM-H~Ru!$HQxU#YIB& z2?I?la`c@HIq@fpF((YZtjaML9`u&`GCnHCoiHGgH{z=gP4F1-&EBe>pUzzznc#Pe zNrrHbo@W)#?$-Hh#kdphTUX{rM0Gn@{xLDGgnPOCX}{`S9siyfU&8%O9^X3H>9l1n znRq`3w@6jtxKxznvFva{ESpKlQ`J*g+S#D^U7)^$(_K?q*Iu8x*XQe)>MF?WfH1dT zjjPt$s)H`Esb;7kn~5_U0SI50QbDhjWJ$+y{s*|Fg|25#s@12$^?`x7O@NKphZLG3 zXTzFJ{P;q@93#O-lI+%GW!<;uN}^v$tLWGAGXb~_I1t%glX;W3>@d^2cq_h?N3wJ!N)xQoe-e%U+1s$29nkzN5MG~*fZ{<*w(zvYbA5>@>H zH7s@|cqX)wYW7DGc-ifJX|>!DR$bVtKqM1Gd4H3g`YW9kEsuBXE^lq|Yco+zt4iJc zA^5DWs^Rv*%7fMzyChQevRIV~zpk2bw!uIk)GSV5U~zJ$zW9M8VvLB z*qyzFXK!rDLZofzkMFM173U#3G<##i86rKyr59?r!#X52PwdpJ)yQn3_3;g*8pim} zbeFMC?slUmC5KP?fg|?RA<}yzIA=D;Z}X_#oyQCFj0HAZ*d&Nb&)}T7dalu?8e1Px z=^3VRSI;%lGxl>L((^Ly+^o=Q?M~ZOPutkNib~DFh*-lOSIt$c8C!J`skt$BS5&NJ zk*nvb^^Bd#i1fTnovP|&!z_m{dnWB(A!)sua6Ws0c{_o)An*-Bs3KWtHPbf%&@4ba9#g<)8<<@Fe;$` z>k0J_S<|6J+||E8#&&6A28RwrZlu%yvf0R4p#Y0H?%m^%(++9-UIv9zFU9IE>SgQ`O9;H)s zqfZlTd+zGFYCR9o>A5Kimps@M5W0CQw*B!O^2`)MMaQFwuuo_s=8ov9NAwV#q8q0} z5wQX7dS*_0X2W!9Z$h;b@3`SW<%-sF2Pz)6Uvc6<#r{epNb_{!&Ksu{e=D8h8y(g= z-dE_x)CFSdV{|%if^4R}d)&pm!mh>+d2JJPif#l&ixm^NPFvMZ+X+HFLl&y5=Ne@j zpQ6)q6X-bvcLJ}-G^Sb2*1;>!J?Winqr2Ufz1_Z@P|>(TyNTsB8qs$UDjKWu-9nKX zDcVb^Xt(l9;3g4=d~TIe(QfINbVc9a(6FQd|FB-0;Es<_<1;E;%;b7ywb@Q?*oOiatxI=s+wiziFj#n+;8`ozx(z-GwcnTdlA`@UL7^cAtJ> z+rhnbcF;WG9rBJ02t~}rhhUox!J~)TF8kAX-?dvrE_=^rep+66--JZ_iFv{`iI)9! zjvi`yr2Y9DP6V9i*=i`%E0%*KuF~apRB!%+ER~v6yNI>A!j|gKrBdBXKTucNQvI5D zPw2Csd6pyt?x3f-%9iSnWl?Rxu{!9X9;&Ntnf_$=;s5*N!T*$`)IpD6rnC60w8oC= zp{1uE`tbWFHaSmqB`USUJ9g{nIK2_Cwc~s9pKt&D-@flZPdm?dg?`CoNR6}IwYZEi zZ++$W3SOtVz+3dz=9oHgpI%`oVZDmgTj^5tG z|0qVC@bW*G$!!N!>$mj`g&vPWy82zu~_Tlf@M_ zF0M!1wY9rPH_r~7Ee+rsE)`n%2yaKpJl`+Io$$txJnqgWkn`KbxD(!@k>~I@ zdY=ZrM~ph*%@TRkq2|j$U++ON>V&r~!C^Yix0gcdl$M)i5zt8H1&uK~6>z3&#|PT047ea^{qq=P#jDGg@<4$^UN0sQ z!gkkr>w?V2*ZiNvBth5$I&Z3!+6QSPHs+ayy#9^+$zpOK>|~f{ z6WB4y!JdYERE#`fcfUL%0PVVHdbOqj$I;9RIKw zdBV{1%f-kOc9qH}@9^>9 zQ8Ds_4VLoAJKSoCb20K7-KIY;BIs!QA^rj}>V%DW@)vnWTk`Pth;b)uPLpTzRkx`r z>|MgYCPtpHTT7neo$cGge<#MBu!Bh+cUa{dtdr*3puACFi6`vpk;fetIVZW_D8`+z z(?#BZcev*Te~K7+!tM`iaz~?1_krNg5@S!;5g||Y4);djZxSO<*d-v3yuix;{$C^NKQYOxHy*d6A;)qpW;$;pAOM1?Fv8=EP13G>XcrF25(uMw0B- zBpY2=rO_PodzfaFmM0m@cBiqrMj_Q63xxb$)$i}B?!r&J@-LHtntchUk@H*x$Q~=x za!YA|o?Dxg2DUlLwj|lsB-@r`+oAc^#h$8KaeaMJ_d^DUG&ShIZgL`~MPrlWS~L{! zXy+2K$v!Q1Iv$yw9FMBu*vR=__+BhNIR@&}U&OW0>}0p!uN|27?KwEr(be7E?c053 zHjsAkc1yc@HN%Qxi7D5L7C1CM%L=^=aFA-_nSmndojH~dZ z^xLg$FSWwPOQZ^i+EiEJHB>mZnj%$rNImDQ!u5@zyBiens4KusBQro34?X00aVE6R0fQDmjvaz2}Hbz}V5TSR&-?_;+`7 z>_!M<-vs-$o0II2hxH`cVUMkYj~(}jG;ZwZ{1Jz@@UFjiUwR4-FDmbGw-04v%7V(VE_a{w2>HHSreJ0rH^B{c^O1iQ1tV!f;rI~0?e12_t zY6Ea~B;5wwa|F@jBy8hOWDadv-#{p&kU2#tyql7($dm`IX6wwX*NwbwYuOvxl|xd> zhIn@?lv5~hj=Na*1=yjURN2nn+~F#_k|Y6a!cU}ZBT2yFX5+55E73OIGeD$mV;;vA zH10fp!oyA`*(oSFy&ZCQCgI;Z*%b3h_T%wl1tMh|L)+nY^6t>CWN7zOYun-e`L4Dr z(KgDouA%3@tLxeXU-1erQeDfu;n|(iE1A;q0y84j zZ_qo7Vq9jo9-JZQzsWDhc7TH6Aod&sAA#Jb&le16cY|% zC#B+bSXxgd{y8yO5cU`*9tAvgnem>1w_!HhWCg` zg|K5wu~Z0pw{RvV6~bO7#Zn>YYQkS6CKbXiAH`B3==Z@tASM;U{uf({oI3Pd2x{H= zcR(`PMi~72VsavE3{fm6q81UnWp}=u+Too*(2}rYLb05PdMEI`1#;>VlM`Vpfnqrk zH5K5u7s%;OF*y;|*l#VGpD=_cZGz&@Dv-{7V$vZjJ}Kv?ftyl-&0@{rqN1BDXSyKVM8Dgf$w)W5m&F4gM}M{)BZ4#rz$u zVBlX7<4>5&U(DaptbYDKV*Cm7+l%=-n(59r?-g1j33I-S`OD1y<~N9mgD?-eEgNhQ z3Nf(Dp(V?e9)SY_=;BpHR`Xm1m$#>ydWVNc`-u7NWP_Hjp-N zlHZwHa?+X%yM|xa($MhIbf#(B9uM2Qi*-QfoUSC>mt@^@Y`?NbPII;nc(9|*+2&Xv z$#{~TPFmdRl3H@gS_J$@UG}}{E*Sa=kqh$X*mRQ3BpEAPU!7_n8|oPx^p5uTj$4b^ z!!|(=zRgLtCCRoX*|sFx4wJye9=0RNE`e9VQv#kre;d@7GxWwmZ8~oKDe6Pfsb%Al z*}4`$(`aCZ)wc~aACAQ15u0uj^)U`)PI%jThdpD%gZ%^Kao_!6~$4>G!bx9w{q7co&Ky z(c9tQMLw2&XzOCF=fA0M{xXOD8voheL^KwOjznUCcpzd^;LoG`zyu|EJur0m-T3>5 zU?h3&N$=DRo<9w~q^q940A9%y!t%2{@pv>am56ILMene$_eMM5K2hcXbPILA4RjwCE%kn#+3p6m>j5UQy@#_t!c9f%@hzb7@%b zKRcwJ3xpCOV^XyDMK9|gDPpv+CJP?g1)F7BeFU*RIYeuA< z2~ulJVT}3IaNSFzDPg%p-oK<_Ndx|Y@D$Djo>&Li>q_1ALI#LWLfmvJ?0jU$PeR?m^+mHxAb6L2&cu6yg}e}OS> z9fYlm(Vtr3Kihvs3&)QH)ft;p1YQ@CkU0--Ju%?v8$My4P>&7V)?b@F#Id63&^};v zLB|DS64S6&40uK+YP3bXrAWOyQ*HX-9zQ>8=i}7J&ZtQjgUx=Z;ArsWxE_?m1?47T z;Lg7AXz=fBSEahx)ARS+@~;bf<)5x|{@<)~{{OMq_|tCD>)k7t=!;7H)v0x38bo2k zu}DxGPQ+&u@!k>ZC3l`g%*@3rsbzuAj`V$L)yPb@-lYkzhy3U|`{+()y$AHqKHGBEUZhIv#I!4k+TZd9tI&-Fq1FnfXHo%Yy_&hMhNZUXm*wm zw1+bD0pvNnWZsNN+qi9g&k3V+Hn1*d168dQWh{Z8KVUz~WT!+|shd4@SAZznHnSn5*T{^k9%5I-5H&(9YIBz-e8d{E%E{tnAr=Y3!?Qobn z3IE>7rkF2TLHB!sMd=Kk-b2_|AJ-%5-;KcV9ZJ(Ra6or%@Br2)>bKX=nv#+saKJ06G!H8IB}V-n!a z9=O^q7n%R22!WO5X|=NnF_*-&iAKnraE(IF9{A~mMv)7UR54MQX}{)7p&QBGY>GtL z&5UpljQXx7xVLsTA~tbkZN!{8TqBXbZ+Rx2k*w$m1|zxVL|7tiKN~D}!cXRrnz` zi5q3lE?3$RR+dy1n4Gh^?sIL1@!)``zb0f?*^yl;k8FSMvEiDKU2R9U(Rs4#Gn&n` zHmrpqud$=s>O9?b8M;PC+gh+)YsYqtJhlU#vHsC<@6d2xKk+2B&W`P+&a*YAm4bj!*OqddK@mhXy?GBBS^L z&rxD4-)zTT!kWCjZ(vM!Fg^VzbdRfNVtg1n4UbQZdWdOnv7;?vZ8j}^@c3cx(b0iE z?}_2j!M+m%uGkiEVki z9ajkx*s46Pqy2rvOfRxyDq*tPkjHeu1AfTZ!1yU*z8Bl^l`u=KKHSr*)Na7;u%jwr zZd#K^wH5>R5<9LEHV>=vxY7^UOYN9S*fea&V_K^Ldzl?y344aN?1gW{v(gjnNJ>~+ zm*-v4Lrn9Db~Gg{t6MB?;Lz{#Bj$X$9cKv(Z2M5ZXTrFAiJ0XTb}S_^>U^cXs%U4%@qXhw1O2+*!bwf2RvB%NVIVt9h=lbF@txJkB1cyKkjhq>?$H6D{Ihl@+(uxRcV<1dj*y>txZvbU=08n369@ z=n$X1UW7jh-U%cx65gayY704m2wtUNiek7x6r*CIAiPAPR1~=i0YOn1iM>1_#+~r; zgwk=5<6hOc$VlLoViF*{IH1%&&PgCYMbF{v&b($C{NrLmB5aypDx}Y&itL)a|+iV`X1hMer~>3pAAhIM>3D3GC*k3!*&tIB_?M-MxrAN`^a4e_VbbUxL{#JzZu`jZ7IdzgbLzgq>i^ zOVH6FUC?2ePcKY@Au$OOHbE`jM(6bsbF#oGe};rXoL-m!Uo9p;!v3FS1t`%1A6=LL zKPx6c!q%6Ul+1#;eTBpA4)eF~kBbS0uXQoA2r4D$@gx|4>XEgsr{i6^Gaa zWQwEdhWz8aR(L0{iV-%oDiuf0^{K)-vK!7h^9M{yQ;261FY5s${^GR8!ZYAp&I|lhVyoMg(=y z*u<87U35ArO+q#+>jyl2!zXIe>4mcONol@OhJStZLb0V^AI(v0C;$5CmU5-t`d2sY zQ%b`-B_2RcT8mKjQz^|zHZeTS^aW^T^Y8g`jNXQW}!Vqh6~v5tMyhN(X&jpNtv|ddfyGrGq|? zdo2b%W#^aDL7zvSe$Z34f+-#JdDLq)=qY={l$K>@%ae%<@+q6el%BlgRV5SirtBV5 zS|VgojC`TDlPT@SQ5XGXN^QPA8qTaK-pde=?}n;QRp%z8Ah1i%*UPLVo>4Tno)k`a0Ea zRrBwi-a9>YU}~?n`^;=0&4%D&QO`Z;oxE)aWWTJ~^^7#UVXN6Xc!ghQ8~I((u_g2M zTT)A)kIo(s+q;W(!2j$@vVBR`?P2>pi7B=T?gQAIWLuJKYm#kCvh8q-?ZqCpBgrm- zSC_-zD@AS}0KLMaG9Of8%?hD}ev<814(a?GiutFObfwirA%x_@ zIw-Zo;?aO#v$>GBZp6?S_6I^Xrm(Eh-W2A*6fU(kg^H|TE^%LaiuJRj<}kd4FNMc4 zMX7o;EX)x2|A4_;&j*4-p(6gtQvQFy4@Aa4)fPD$j(PoRT&-s_NHxwzB0(DodPjsqunX84_${uHt*R7ud0`WjYv9BA(|0^!e6Q-rWjH>GhNjrlvl9Fkw=_ zy}j_Viq$ncpUkm9l5xA%dq?gMx&+FZ4mqi4aa;mf@ch>V~21_P&U;%v_7+8x&Uks}D6DoP)n zmYY;zC(^97%hrMyTyzX~Wy3}}+n~#x(L34ANp{G?ddlA3dxTK+cWcpzP3(A{p>3gh zSKr`(T%Tk&B-xD+_q_=Q@CWvHj`cx0Z?8GRROUw;Qp`dnKOnD?=-Jkh-08VrPE zv#O888eBI($PK{W`b6f?qHpUu{6b-Ji@CwncxG}i-)35oxPJe_{6M^5fXV=Lzuz?g zC%V7d9H0s;2zb8&kpVR0M!?no;?h4}9YLi3W!ibid;xd57h3P}0t_N;H~ItWj8lt! zUQbMSWnb9Jj<s6=3LVCLUwkPc#!c`o?!+S`G6x;#|j@=cF3k_#i!;q#c zG+X0UDnuH_A*`L7brsBRhY0#4QCRjVv?C1dEPfyqAV>1jhnlcLbA;V7w@Y zP{BUIgHv||i;iHtx`$A~an&8cY0?plHwzIecs6oYXo|LofV(GPBAE|(4-%2S+f~2c z8}q3_HR|eoBFT<>*a;6inPjKHzozuF@#-cjore-ZSLb7}i5mB?TIw8co1)TrEHUNk zd=cmzFVdpYxj%5m)%haOIbIM(r1R#G8i(oKskPia)TlV-jTf5{DSNp;68FwVBmRU> zEbeXLvCpS*-nP}gZ3L9b+jS7BsBMBprMF%JPS!R-AWH%7W+T!&M#5tWo4y|NWUwwU z%;KuK)CTne6uerFNX>Yp71HEJTUO<1L$1I*!G~DnMKvSEpmVPLxQ;jp0bt-9OjjoC~i(rBbpl z7!XSrw1|sY)_J;>ToqOH#gnepU3&UTbjh2N8%oiGU+qIOmYe~^*yfqey z#$m%HmdCKbwcAy3iHcuHr{b2Vb_P1eiw$U3!=f>h7t?9D6=Eik0=^fjZ3Noux+)e` z@k{7bjHeo)VzCCwu7*W5oTk$-4q|8r9&uM<+7!Z<(Ww{*u}=$#<(asHSacA-f=H{5% z1u)%X#Uu+QS-84Pk+;z*+^@|%<*!2!tB}Y~01{iib#L>Fh@1j#OMl=Jl zu-tkYH=fJiUZ+kH{eAY@Om$uiqQdsl8Qh`u>R3?z?^Wv-bbwPK-g7yOI7^x5T5jqVw#iOEk zCM_@=;+Cn~l&OD=P|Fdx(pW5q&vmk$aI!y6r)!LjoMl>6EVbT7-TGLEFgaXa?iNZ_ zR4DZ*o#xko=6#Uo7x#uEVZ8oI=CbWxUT!n3f09n&`b{W;*PkwQ^>#ZISa&M;Ct@{+ z&%2|!2EBYgL#Jk3xV5_ys#qqz&BE=j))lSRpQBUv3Q%_#nm)QJuWje%&(o<~ub0ze zVh7Xi0C!>|_C-2vGa(^od^b{UnZ`{WIEICO-mv-Eq#N|8rm_q z8uJDNr^SNo3yi(FsSPEm4gW@` z_62%rZhn)^LHLge)f@<)k*sFd8830he?q8WA8fc{olf~_?xbDur2R8GWn&YKKp2iq zs_Xcj@0o#z52(Z1%;>+Mvw=pu3sGpeyUTWU1^K_EQ*v`i!$NIW%{7R! z{F+Y9?Xz0cr-kEzpjf!nV%N2RK#Mzz+sxvR(`mkSsOO~D(>E|AG{o8Eccj^s9)Sy7 zSKClj8d)`WNYAlgNe)VC>1=?Q-9{UBM-R1K_NVc_YqvO0a*5c;71!VZyS99GgzE znIvOL7DzIlWT%r>##_u8dVQ<$?k*_?&GmbqdrN1flD$Y06@* za#?hW#g69FKfj_C^txbK;HOZOwRE!BP&5``J0{C29&E9Zgw1DAlyx+)z_#WYr>YFVK7otH*LtwU9>kLnz9PwUfpK&ZD)q zjrfS8ib>)yog}suOG3}Hbu!bA|5i*0eRM)7c6?P~@4_N-mUj-qxAiwP zWDENF#qdsGoE)j0VDvOhAurTIF#J$~Gx;$;<|{fTjOhYl1jK}KOYMY# z`Pz;NBc%%?b9z`9dggyCCYnJy(QGWT6C>x*G2uM411FI};pp#*6WRI0VxscUiE49^ zsLX6Z5@G#7x3WyZHvh4hutw;FRUEa`mulx~BzVh_e8Xzj-M_;QP zl+K<4>2wxIr&~-q<8;y~o|ACxa!@#@3WPIRARMolaE{XnXI;@Oq@5Q#eX(+Ko>?G^ z=ZMMTB%LgZogBy)m~m=0&dUPhZxfTmZFG_-9x{+5rA~=Cd={JJFNpD3+MSV(5`NQSYPU*i}jQ>Haz)Z9CX(6OiNqf`BUdCR#Y7UN z6G^da8B*ggcAT0=^7mQyh{+;OCyU}EC_nV*!(xPlPi(JYvDV}ZMBfnRFs3j!K^q+-O(~ftQPs ze|GK2$Kp;EC-R5I$lpgtzBmRSjzmLF4gK$kv7f6QdtWdh7Id|61oKOjJBs?g@y1(( z7RKk%iKf_9_C>-zXm=Zize4t5A)$O%d6$?#Qgi|-&L44r5QUqW9CI3X zC_=u$tLP+PVFIzhjAK!Q9x(yDrltab<2vTlI^Y)*zymcE0GwAlCV=OP3E;t+3IGnQ z9TULY#02mLIssS)j(iR#Eqp;t1plwrB5*Ko;c+n$ys6eAa4>aY{h-id_!c@56ra`W z5mX zZgL=onxAv*rWr!W4%v}3cwxET9~>DU*C5vGG`98MUV znjX)J3E(4i0w^v9k4NG50;lM|N{s%;YDYf;Z4tx*sq-uhkBEul<8-31aF)(8Eh=UV zHqy{NY1ouNvt%<9`X^$7d6Z5t#qBd-cjbd%YaFiE4P)7*Q=_HLBeYh2l1>uEYbEY8 z1?%7~_Eb+23mp>|7Ym2`P8!8s(qJ^myl|VpQcNPB zr;|vrHw6;G3u}cYNShVJTsA%?CX6rA3BzLJDet;w{v$DYe3?!j7nP=YO1;gPw+;)f zr(dNLiG^n&`?6ntt(a84MkkfxEs3Ld;qnpSpYuM)#H8_cI%yR9T+ZGU%g^ZI$oS>_ zeC}OId!46?iRv44qAH$o9lu7Ezg|oR|3)W+;xkdFZyDvE6cfR>=|oWMg-E@GlmA>y z9^a*tN3ltmU8fv794wn=yk+hWy z9T-35?HL~*9XLEO-akgnb_W|w4f?N}oQOeT+vKfxkPNTPm7(7M`kC-qmaWl za=sV77mH7h1wwxPMI6FplheL~2ll`LzOS>>-+fTszxxc1$RV&B&pqj#sh04d7M_XQ zq=@sIyBivIJtGZ2$@X~I-d(H%{$p2??Mt%mB-^iCnwVmnlm@mr$+jff)+F1OWZU5m zy^B3;N0MCvuS9Ot<8N(&#ZH0WI|z@O*l%}(CSL}(N7kSDGS7l=LC8X;{kM;u8XNB)s=)}jrep*(ojs-5b(-QI+*f|- zUn9o}`Xa5>H=iAfgl#v4^&x|Hm;}!cPoL1V)7F!6o!CMn%Au|$&~)}#Bw~}b7D}>kl11)G758;3rEdA#-OjU9qk!| z_9{BsD~@XMK{Xcdk4Ehh1r}u5mV-k4XpJ9TXCIyPu>BtJLKcvgF~<&jtn5o)E1f%R zDVujAaMkinPU_$IaC6p!J+)%2TK#8=-BZf~ogL}>(yEasV`&cyIbO5Kz^QLzI7DX* z%X@>7m{u-VW}dkqV+;HS7`^39K|JZEzOCUfoi(h2rC}r*@%8xq(P|6bGZvxS$KEu| z6$h?{xgt~VE<9IQ>_Y3?I{N6WV+~lx5Zvq*%*+=(LOb2u;-MQvwTp*q5V@U$?&BP( zok5(a${-p8d%JOpa4n+TUQNKaJVs{`D+VK~e=sl=Rio$K>A{KQZ>KjJx75ZM+^NCL zSFS3IYw*xn!%FZa$Ii!~%Evxab74DAY`$2n z%iu;Jik!$1I!n;QkrAI7bPWOgcQ^uAR13r?ogr*E5(w&f+vAZcXNK~<_AFx$Zg2|D zfduvz)= ziQP?|i($J5pfgFvoZg5|(pf=^ZUz14s&XXElknVOmu?s34!hh$39$*{PCC=To#}YM zcUt!&gzTeCVuY)IG5tSriIJn+E=MD3)ZBy^-+XVb{Ca__^bG&D8pwDZxZ1BRH3F<}%t8M7s^8djf zHU?qCaSxkFvg00h!oyA`*(uoF-wt1%cb7kBkqw+`^h^v6RwxFTfM;Nwn&WyKj?Zhtfhd9K@)JD+*OfZg;lsD|_l|q_5KliFZP?0~epcv2v0KRS#5gfeY_^%-Jk3078d@r0 z9$KXn?Kup+j)pzt2E5sZs&cRMGj1#P#vSPyKSr$1EjAp78YQT6W&h~t@ThleqPMqy zjJl2JRvV@=2IvNZD0a2-dWK>C9iH$|Pruvj_%3zcde<9#dvv{e`}#ct25XX4tT~UjvN{29q9Lrdk@1)^2*(d>`343Jn75Mc6RJO8whuHOsO$#_oCFbm1h9tWYwplkpJo)A%JLF+K$#OOJgq7??#GR^Z=YI#xvq|OrO=5B&EaKi;XaG`5 zy7@ngiGi?sxoB;KaUiFbnLn=Ehk14Pe~Sr*uyA)rp?!d094q7Hn|ULH;t zWAK-VNrbTOV11!Ps;)xd?+41c?dpfb1VET_UlcTPA_1R&OP4_=|DJzWe`jvcejp|h z!c6nhwKkh~EaY$)DW|;gPN8LlFvYrb%bq1(Rl+sDN{l*TZt=y1(*XEa4rLniTg12% zCe;>s5A~N~TXbG`fhXJ+vAw|4Z;RIV3q2XPD9NB+Qge%9C3TdjTNECtm$cm?AFW=J zc#Ax=x=HCRn%3$e!MA8&*Gsx@kuzFn$-hO3q4kvtTojzD$Hd^31>4Xnq75Qde+@Pn z&lI%j*8 z3;)kvc&uGgoZ}?*r|BelAM$mmN(8KOx}2g}ED`ehBXM_uCTih&8J(I}=F~hLDzjO0 zT`)&ouqV=K*qE`W)VPm%)o4^b@6On;XwKWG$?Dct0blzHIz<~Zb})D*6o`6_#o3*) ziDvAp=+wL><9FfiSs%|rO15dpuBUT#q_GLN{<0IV5rn*;^4AEuJMGdtrFF;rT6(j< zV2W!NnK&>gVKD|^o=j&JYcsP2MqQ-Yg*!)>_qq#s2z%*_VapUW;b$Q=dfFRg_-=Wt?;RjtsM;8UZkxw|!uN_C>?s-na=MAn@I2O6z zuOC5S3taKxSaeU(T)8`PQ*AoW*+?Wvr%E0-XksH=BASLet33|qDxSVozItGXSjUJO zr_pxDv^#Wt=7NLHoz?Q^ijgNgwcK7r-l3yQ{uVLjgok*WikMe_lE*(QMw;+UYikkd z%$BLTgDw6GG2VnnJe!MnJ8;g!m-~cfHo_B+bw#YJJNDpD5+h7_0FY*g_w{CgQW#RB8r&uM+$`WsF;ulLx+Yh zKoLLWKP?c=FT_Mc7)ZNVA7m1uX?!_uX)50t5XO~^ogNCHik+UDuvtli$9;7BKEpez zWo!*^k+9n2N(rwm*9US1p8 z;a`*LvPhzuB*aR|ey65nmsFEhTPf9F)s$+J&wECt3>^QZrgWE7<2hBT*_G2olaxMU zlSLzTiH~q{x|oz|@#NG9lT$S})>f+6Yir4tKVt`&m0i)JoEo0Hyqd^V8>R%62K~3j6Jva$TrETaMPt!rmR=xABK|h zzM;0f!->%B`Q6x&&(k+Ros7H^qTV+zsLf3v>3=Iu+EQvbdzxP^RVBCZ&qDZ>RwTO{;2u@b75D4 zTRopo^jTSX6}OU?FH^`@eP_plRlmwq{WRJPt>!;@fofi()%+S`&<}(w8S*Pky$3ow zXtn;63smcgT4}w4(Ox^Px3UX!mVZu7v_26C#}6!cj$fV~>j!9u`qdYx((k8L`uZU) zG^B>r87;co^kuExx&<|+tJGaTiduB|h`LN;%{6&!)gZLzC8TtS zXqo0KHLArl%4D~*v{cvTDHU2!&>HY_X}PY;;~Led$-bPH?1ntDUauC0lRdAOaB_Mx zE#1OZM>~h{Mnbk9q-C40T-}bnQwhrCs87?<#rb#yS{l^CpLmRx>PnL;_4M>pTAnLR zp2VKS?`Uae)k*C}v;@fA;IW`ORf`e2nU*T5RHsTkLa(Cbi6d0!NjyUL)6&eUlX`?6 zrR9l^{^5k*f4&w&^aL$e)TzN0d+ZUqfitu`b2`;m2)ay1pbLE9Zc6<=Rx`@6*&sw-;t{XTop2=o zl$LUyN&6ydP>cB}_4_+ovYT=y9f)CtaKP`Kg)(@$dAfy@?q*lz2v>RGVx^~7n`w#W zt-XmbG1aSRspfP_y>H)7OEkCnA>OzjrRAAZDD}?$1TE3rAf-RFnxUnd+xLXD5VhBI zwmPm)QIgY~YNE8p~jBOrHOI}|j5vDv=e`QVC zPMwDi&V>HbTWiHO5!3u$YPSDSE4F?p$MI5++t1dDZA=SJdwoo+>IU*k9pZ1&vfXSZ zA7*L`AXpyO&XT4Q{JiFju}qjUdEyT>XNQ!;KlO}d}8uxhN6rDVL7mhtw|aU72( zG`QWKl=UuJ))$qshC&$##Szm!NK4zwyd$(z*g(x07MjX_5y@9wvs)SJuSiCzqFwNzwlc2 z0Q(gCC-y7$Yrb|#Ljzxjun(ad;dX>cgl8Z;6X9SjgUY%gYX=L`w;F&cp1VQ z5#9ul;K!PEn*3AvrGG+Lu?%1(!XbnngdZaO2;q&50B=J0Ji-?c9!K~M!iFY*jR=<` zT!GMqun(aRp&wx!VFJOApdrK&5(v*ics9aI5MGM#dW1J1ya(YSgij)T3gPPrk0JaF z;pYgyNB9FmD{$m(2wM=gBJ4!ig>V4jAV7j&zRnQFN&M0&ga86ZxEtZA2+u=!KEkUJ zUW4!sgm)r*6yakCUqtv4!uJrqkMKCcZx9+<0G1%EMOcUM1cWCdbRcvh^dj^jj3Z1S zXb95?XAsUJJQraO;S~t4M0hL0+YlZ`_%Oof5dInATL|Aq_$9)x5dMtt7lak904otL zM%aO{8{x?aHzOQE7(uudK}DECh$6%go`vvigfzna2yaAq6T$}&K8WyXgwG&+1L2zp zKSTIA!tW9OfY90o(1x%DVJpHegsTy*L%1G6K^R1sM7RSXgb+q}I>O%|ya?gN2oEB> z9^oN`_aZ!s@Ck%}LHHWNj}iVI;kO9?i_qK-(1NfDVKc&&2v;F=BkV^wf^Zb!IKl~p zX@nVsGYDr9?n8Jk!pjg|j__uLw;+5F;X??YM)(ZEV+h|s_$k8A5Ppa7dxVzd0Idj{ z5w;*)g|HK0Kf(coqX@?kP9U5_m_c9&=Mc^#BoUs6@G68?BfJga?FbJed>G+#0QawI zfXNL0@PEcH{Tsr!5PpI19|(U$_!C0=3V`JZ+Yq)RT#axI!u1F@APgc5A>4s*Cqft@ zg77y8_aeL);cpRMkMIVB_agi~!Y2?uiSRXqe?|Crgr6Y%FT(E-T2=zIB5Xm}im(ge zYJ}?$u18Q11`#F^?m!43gb|*O@HYrALU=L4g9xujcnIOW2#+Fs0^wf}zJ~B)gnvi) zEyDjIG_L|^LD-D21z{(`E`);!*CE`3pdj3iFo_UE2qD~q@N|S1BD@IUbqEh4ya(YS zgnvYM6yd7~|AO!%gdZdP55jK|npOieBWyz0jBpjgPJ{yp2N4DkZb7&W;dX@62tkCW zA>4!T0)!VLJb>^zgm)vn2jSxg|A_Dvgs&p}5aCA%|BdiJ2#sq1nh-W3Y(lsa;VOjv z2nP_3Aq*g#LbwfqBb-KfD#FtcQV1_VcrC&M2=798H^L(bA4m8y!dDP}fbc_v|3dh0 zgk@_18WA=iY(%&M;Yx&Vg#8Fd5so38L^y>IK;Q^>BRm!1`3Nb5*C4zW;hhNYLiiZM zBM4tY_%g!x5q^O18-)KtSPF|EUxu(AVFN&dZ`@$4j9vJpeF%3T+==iUg!>TQiSRCj zZycE0>T#&zJu^xgkK^2 z8sRSp|A(-06Tm8jixGAp97gCxm_c9&FG6@R!UqvPgz#O2?;$MP4A6+M6JZy^2*Rxh z=Mc^#Jb>^zgij)T3gPDnzd%^E1zM5#EFF z2*Sq^zJ%~)gzq7IA7SZ50Lu`rK)4d&7{UO;X@nrcOA*otA3*pZ!ea>EK=?hv9}rsM zlkhf#tq9u?u12^9;d+D{5C##35bi|qBFrM(h44&-XCb5!?nihV!rKu(g78s<&m(*R z;oAt`0Z4E^T+{@+H2!D&(q9lJ;4Az%K!P`4V|+7?UrHdn72$0NUqJXG!s7_PL0EqY zzy^eFg#8Go5N<NMdAj~4X1mUF!???Cm!Z#4UiSQSM|3i4<69FzqIEFBQa2g?q@Ir(aAv}ceUWBh9 z{42um5Ppxa?Q($a2sa|!gzyvu72#P3&qjC?!kZC3i|{#wUm^S&Va*i)YY{pTx)6>d zoIp5_a5uth5MGP$2*Sq^euD5*gymNPtU%a~a1p{a2v0(|9^nQA1z`~3c7#cU(+EL? zry@KJ;rR$DgjXZH2H|Z8Z%6nD!bcIli0~zZ?<4#G;lB|68=>(kfF^`Z2%8ahBJ4uA z4&i!)L4+ZMry!^ZQG^)6vk{(y@G^v#BfJIStq2bzd>G;L2wy<>F2eT^9!K~M!qS}p z%MdmoY(&_JunXY^gc}h?5dMGSz5~v#s#-tEl*~+e@5!V=2oNUIM-U7lgfJuoLJ@d4 z+?u&N)0mQ?VnLDO#iuwF6}w=;4p_hjid{iLtXNR7KC$wiJkkI9)?WLZz0W@9-a84t zKmPnO=k9Ns&jV}$oD0|k$O3YJ{eT02R{^dD+yuB8a691L zfR6z_4)`MAOMpiK-vvAY_!ZzOz<(2rsry=WqqmS6KeY&OGT;P z;5~r%0v-fB1o%7PX~5b|1nU4h0lNSP00#kY1-uRLCBT;fPXhi3SaJfvQou=o=K^{F zmjSK>yaI3=;C8^50bc?94)A-x+$Mr~fDS+>;9|fffR_SZ26z|XHo%tvUk3aZ@H@ba z%>*+6O@PgS^8ptC_5u0;F9%!+xEXK@-~)gU0`3Fc5BLt?QNV8izXkjYFsYef0bn8E zSio_BEr3%2=L0SP>;v=xUIBO|;0=H`0zL%zFyH~e7Xd#6{0Q(Dz+VB=S_q~C)&kZ6 zP6V6;I0tYpU@xE-a0TEcfExif0p1OG58#u4djMYpd>!x@;KzU`0e=Kcrn0W402Toj z1C9k82Y4>vWWYIqa{)O(9&i9~5O6KvI>4I%w*o!@_#nZU%5BvZ>Rb5f+kmNU1a*KO zz-53F+6kHf89)|rGvF4$ybgl-fL=fWa5dl>!0JwdHGu7aGXVX70l@13HvsMe+zt34 z;75QdT?AEtV*ncgy8-6_4gd}U-U@gd;G2L40nY&b2{`UK1jhp|23!KT25>FlV}OqX zegXI;VA_cU(*Z4jRzMHnGQg_=MZiY^cLKf(_#WUHz&`imE;Bmmu0e=Sk1u*4gf-1mVz&yYjz*;~vpapO$U@PEUz#c#vkO2$> zMgUg=UIDlP@Or>I0Ph5R6mTctKEVBehXCIK`~>h*z#jll0-gc<6EOW0f*F8ifaQRV zfMWq&fad_Z0cQa&1-t;z4;TPk0eA`Eb$}ZHw*hVkd=hXE;2VH%0)7T~9Pl^5Q-E2| zBbW_12CxyZ6>u8hQosuU2LJ~FuLIlwxC8Khz-IxU13V0P1n@h+?*Ua?2&w^#0E+>~ z05$?n1e^re3D^Zl0n&gmz<$70fL8%-1l$C;1Mq&p1As3Az5{p^@JqlGfWHBr0@R#J zPzzW9SO{1TI111PXa{TqoDMi2Z~-6($OFaz`vF%0UIn-ja1-D*!0mv$0UrZA0Qe%{ zJAg+4zXUu1_#5CUKn=Bdsur*Sun@2wa1@{o&<@xJI2~|4-~xg%HTNRjVB!-WYCoXn zG=f^d0>DDRdcaYDHb6UI8{l-n`G5-mIY1sT2G|d{3h*kxjewf~w*hVkd>QZ+!0!OR z2h7|?FbmKQ=m7i&;8MVqfL8$C2eGn0xDjv@;1hsP0v-eW7%=4wf-1n#fDM4N06PJf z1BL-N0d5A|3-}b^$AF&zChs7a0$2xF57-Vk1E2u=0M`Rv1NboDBY=kij{u$m{5N35 znFK2VrvkPDa)3PG8o;%HI{@zod=u~>;7@=*1Lk)VEC6%>Isq30E&*HtcnRQbfVTra z5BLJ$3Ba!a^=A<@0FDD34>$*KE?^We2Dlk;3*a8Wy@1C6KL$+MNl*ni8n6LyCZHS8 z4;TQv7VtX2oq)Rl-vfLf@GromT?A_YYXRE;rvrKc1;F)y*8n~WxD)VQ!1nz}bMy0mFcCz>R=U0`39) z6!0@Z)j0&!fTI9M1G)ic0WJaj2Vftd5AY(uiviaGUJZB?;8wu<0UrQ-8t@swHvta< zeggO@;E#Ym0VbbIFa;t?E@N&R7;6}iE0Ph8S z2Jl(Hqk!)M{s4FqP`!ts2Cx*c4A2DF3^)z24e)%xMF0iZ2Y4~y3czas{|R^-;O&5q z0`3HS0q_9eQNVWrzXkjb@K3imE;1_^j0-gf=H=yA{f@y$8z-mA< zpapOmU>o29z=Z$>*avtC;H7{Y0Ivt!4tO`<9>BeTZvq|!JP!Cd;Az1B0;WHoUQ0 z0aZmXrjAMLLBSgQv=&eRD8P3Bj{+JlCYT0zAK(r^)g=VgfTI9M1HK0GcKme#;6lJ& zKri4R;1J+VfLj6g0qzGp0r(YQ=6?{(0<;3!02c!;0lW1}-vw+V59s+y|@H4>UfIk8L45+${pc=3M zun=$zU?bo}z)66efL(wdz-55T0mFb-0A2~W5pWaW-GKK1?ge}b@F3tJz|R1W1O5W| zE1)JtPzzWBSPD1>uo2J&cn)9(;7q_pfQtbIfC3x>yby3L;5xt?0B;1m7w|s7Cjs{W zz5@6v;QN3d0Dc4bE#U8frvdd;$5aDg31BI~Sh2c4MTb(cN76;l|96*5acte)bLg9f zhY)e(>y5h(=Uav)zka5kq^ZXLUHUk-?(Vt&cj>zbnR+qcrGS?K-UfI(;6A|pfX4wp z2UKMUssZZ&>jB#UrvvhUy@0C$*8n~O_$c6qfFA*>vINzDbp(g+VKtm1@e{A@J?Yxs z=XOu(J()hwcgnTB&)e0z<=Wm;lRx0s_H4TN+TKF)y)mlwh!Qx#TNwE3go_dqxAWIk zhf_mz@~-XOcTI2KwY~k<_6}UzJ9x$T*sI3VV`+8T|9SE@CMEBAw?6yHJMaHIdB-Lt zZ};b){p4jSc`64O1&je+3AhR{4!9BUF2HSoy8w3sz5sXt@Ce{LfL{Q93HU4EZ-8p5 zqN)ZkAFu#$9N>7sX@G5jivgDa6ks3V)qo=4O@LbgcL3f`Fg8}4)kAk!9vaH^j2!Au z5BA~Eb#Z2)e`s)+j+*xsQX_m0dn{dCG%`3goXPd{4`#>uh+f#+LvJr&C)UTah0j1ry4vBj;jmjN>E=RJ+4llub=2V``&SN^8$LBaiFDn(}BW3OLLl{ z99PHFSh83j{b6>%$_x&S4E7Q6N3BGh&P4aOdb);aRA1qu-n)!Q)v3`zdTZ^o#i{!X zL%Cs?HFYKZUQ73H^^TEQ4^2Uw9N3>4?HyMyMet1h5y#;3Ug~9A>DRi*vlhb_%Ewjb zvFPG!>F&LrY=%4e`8AU!b=UFn>+acn_Il@}$$av7k zp5$%u?a!OC?<4o#ef~n;8sC1(KQ8&7*WLBxK0ZdW^Ec0MlS_>qw@o{rcdI&&is8=P zpXbx`-86ulOtwzubM)O)_z-<}6`!E*uIA(O-8H-sK$JDlCFT^~0-&%{@l?l)|Kx`> zo*H@Czx#Q-=HLA?UhpTmcW5~*^^@HFS`Lf+B=UdS3D9w0k zO^>3)9v)eQ6ZJn7+M{{SkDV@%@j_ad)e}r~E zy2pR<(LMf)kM8kbd~}ch!WgMIyQ?YR-jVO<=*Ty>q&r)w!r?3&{odS}Y0Br@vz?jt zu3V;TT%Tn7Gh*QLYy20s>1@7*pf%Hy&XC-=-kkdjxV$;XfAQuV|HYeg{1wygA2z@#Y-=#hY{d7jMq- zU%WZTfAQuV|HYeg{1w zygA2zVG3THozHZ2HqrYvnUod4npIse5Ia{h}a+WA?Lq%Le78jgq;842|5486LS8GC*=GWPssT%o{;ljJR#@5ctXy9@r0cJ;t4ta zqWV!7=qn85xMJAd*aFm)(Zb+BPd1lNjrHN(slD96%@0C`Qp2f!{mv0u>f%&$3D%|b zP>pNA#(4@;tfwmrXf^yuToD!RXz zlr8a;1)Y}>QIkoPngYNSDp#E6#8(*LZ;S=(8Y1S3>pZ=2LTVEj5_3WwJwwB}eBoeVn(C%FbHz2DPG3arhIx&Nkr~yR zx7pKJq2M$fvo4dygJR}#PpM5-=fl9IvGHhinsKbBrL4$o9na9e!8C#i{gT zk1lJgJ;k1wx)?UDijC0Hu4zr4zRKjLQ+F^poWlnc#&V&h)hP_XidFQ_cyCi&g>~fA zWiT~bVPhy|D{PF+jGolcP~V{*X+(@SRf^(NX@XpFrI&hFM(u@t%cCxF^lHxWo~8w@6Aw?NB``PtVtjJ>g*B9R%cJ5L0?6{&F-b+Jm5{mv@8}& zjl`P5HyW@SO(<_lRAQQrWNd^!!cGNEZ1Jn9O;ZP9OthN%jI!0#7nwRt^8~D5T}pXG z_d*Sgr($LcA&HAys#uljD?ns^OKWFGs=2K_-P}gg?T*$>2vAqT-l~z&1P%h!Rm|z_ z!$3Di4+7LR%o(8XPQ`K%pk575%}|Q2w+3sWXORw4uVGzB}}~!%(-8C%Tg1VqU)@S^%xK8ziFQ7>5I{zJ^El?JC+lPzR=uvW|8 z2g3*G)m_l=05bG$`b&L`AXi+KES({AogFBvk*v?jINhHFOluZ=LYCoM(Q3! zGKZElD-or2Z|Z!F=%*lxYe!)0UupfAEzT7;CL5dTJCHgwLc_Dnz8?N+iTVtb;Kq`O zk`n%+ZxdMxK1T|Q_38FjO3z?c_qYFrHU7s4a>b>o*4DPBmM&U(Yt6THwQb%MQq|{; zY&KW1tWeb#Av=SI`02txY9v$O25M!trE7CXwyUG9h1UC;S~8nliuwxVYBIx_mS(QD z^()ENWdzg?4ri!WTj*)fWc77OPNj#Q-pln6GLTi@pfFlfh!bVDdWeO4a|inh`9p5R zadL*J9%i|8bE=1aDlcb<>QRhN=E&6gVC67XoV#^!Aj_ltFi<@O>9wA8BDGq2B3X`X7%lYY zsCVt@A0aCjczPVR`d^AHSDYCt=V0{=Y*^*V#?opB21j)@lT%hJPQTY(J*0^ zr#Y5Zg`rpwRShjEQRjzI`+QGcGbLB*wKg8eH6gyG9zV*c(F3@^y$d~w2w|GmAmhGv z#IoFz@j10LY;tT}z8F7-J_6;26;jz zUXF8-LkL`iU)5=)T@-R??Q3BFW*X_F=sV0b(68E;J4Exk<*k{``A*ur?Miob=2B_u zwk)1H1L_z199erdrAX<0qd8}g^7B&ZK9p%$ojwa1)_59{m`gmS)s5=fA(73sRhZT2 z-H2_irz4Tt&@<9EIBJ|C`nPc>xy;jIan*TcN=h8v%0#=|SX8wi_LeL+9-B;~4U;(2;th)-!!Q~}TV>f&sa{;(rckG5Pw(ON z8afm{V*5+Sv%)VoHe0<6@h!BC$~To1g49YRGwM`*F1F}#Yh{bo=QhVeGzso@}tojb?^pHM``}_;avaVe)^1U zZ-I-S^yRt;_y##_^|h!$F~KDbis93AoVGGBJ(0UbwO zP*c+Pj)?jxG}dt`plzG5cw$gTC%rsh1WfgFNY1lLSr8P|WvyhLrzB2DJpp|)`LoI~ zo>}E7i7?e~Aiu;`jW0CEsM_eMN)}STht?VS!Z2-RjTF*-c)20)v)`h)MD--3?G`02 zykv_KCosJ)6=#iKcpRSkD~z$5k(l6;B`1bId(T;gk;sKl4^%YnmI4bV`lo8Yj*>z3bd{Dh}wK+4K)=l4>%>=6A1#aiN#=5^L~ zw%1zWoQt@9Psa0R$j^}xkPIyRD(lkKLiVrxXy>u-))-Q~(PnaLsh5dS#_a9q(f8!- zDx~g0arS+hK%5i)ZbnmjoaJ{%NleQI(>-!0TgnE9xG>c0_AlIH`E{=(eQp>U^eMW# z@rQ+p)Wuea+Y#uV!f$oU2rOyN=bPH|scc(wHq%W13kzt_O3XNm4giF|t7A}@R(gVQ zti>KH*gBfV?IR1hzpe0OVo1JXvj-HIJ)OnO&#DPlC+K!b(?*AJ)-JL`w%jwzrm0q_ zpUqMFzpwUW6NpPaVz?0%By1)NhXJY!aj)`3V`*_29^HvD8E$r#o?9}*9o8bx3R)$> z2Q<}c*|s&eIzwsdmB! zau3-Tc7Zyog`NgYQ@bHE+fo-R?)%P@PR*)CFFoe2OR-N#n>=t~kq56&K#< zX^9G`i#Xx5s>=&P!M;>|(POvJ5| zAgr@yj+GptsT>lt#?z9(mX49R1q0sKO9{OCPA_{|>SNiekIbTz zc%JSUK{bFR#8gp#Z+^ZdZnbKcLxErYN|58KU$kv=>zrx3#t>JTTIO);*_l1*v3yw5 zj;CW`ajjBFRfiCdo!)3z$@E6aD8RevrLEG9M{HSk#nek+*9@bM;|bHHOVrA^TxT_! zu3iou(~XX}n!F-W1+&#F9V;SLGC6*!k5@w)F4@zUN|$npI;#p973&vQR$XT-;@>Ox zi$z!08^7?675gP*tJgYKRN@yF7Qeh6(r9E(9m{49g^p3(2#9TDVwrRi&@k4Nq&Ms}^jP%P6xO##2g3q*GpVFy8?W>PO!a0rjgf#7X^b%I^)qF3m{7kB z3rXr7h!_p0PDeB(wyBJ#*7fB3dT^RLOgBa##Tp)N&~V33e;}dW?WR8xP$K;i=2U*> zL-#TYfeo|`>-pXg)dvtYs+~@j`+IC1izCj19PbRL=!LN8G@cz%JBrcTD0#wfsNG5X| z?Go^aG%P&2)%FKZQ33U77_&G`F%M`%g*yD05-y4rnAI~fMBB1dk7a~xMt#M);HO+M z#=MA_x<6uGY4HTRKHo!qB05W0)$PdjVg4Ig)#kkW#r9q0Z=`16y=Zq>$~w z`v-v~dSL9gmo8m>1BNUNbIwtwLys5KC4fLB#xmqL46xh&kUo+lxST4x~fE! z7Hw(|?HxcWh%Ba&5sLaQqO%$q=l4>Lj6)3Vl_3jHeoEMD(=a;HEtejwTnLl=EQ(`= z@pAt#u3iAy67kx!Fx6&EuJ%E^M5{913n&kV3z2{lT}gylgQJ~z ztv|6SX@dF zdNZhO^qQsq5)-{0R4#g(+d!|sWqZm-Z?V+>xY2t-C8GDZ4cW2&AwI_&-r-QJp&@t< z7kc=)VA0hxt{q-b2|GM)18zW}jj^2Fr1;TWELAn+6ap`(MD!lFdXNqcQ1)+7-^D^# z&0xMSwU->QfNmqowQcUmwRAQ&(fvfJO-xjEh52NNV~3*S_~r=d7;!AV_#Z53K!9x2=wJ_U1+q=QgmS(j&t~eLRBlEmu3j5 zKHk?3+>J@YVBdbaYJtYdUbF#Ut%iIp?M~B|yOFBmRC?WzRq>%i{wpqikx=U)Uz6!2 zL&LnT7PEbCXrkH(scN)Xfe<@6E)$uhHgP=pKqSbQIG<~p+6FRbtYSqJDAJt$9u~g=yt~eo$2TAQ) zUzS=ZTKCKypnu~^GIQ0XoIZXbhGJ3Y(_>s#YJy6GjjYrOi)jfYOyvwSH?W@+qpauF4Br?St&pkwYVNQWaCZ_-bXs)gVVz7)gze z;^;d!n{lQILk+X~Jv}@2oV#s11W+~NDz2fZu|VRq9p{#l07V@PB+lB^T}}cN^`byx z>ltO^07bndkT~_MvT=Z-UJi*mBm<*E1Gy2=BTS7Q-9%( z)3-f;$9daMLqxh1F7+C^kfg4I)U*pBv*)}m=bgVNlw0o0Su}OMmfUgro*mnFZ8^)1 zF-Fp&sn>GqEP*yX4HC{~Tp zAH}-fLE2QqSfyCcfAR)Hu@2p<{LFvy&wRN7-u(8A4K%A;5!GxR)gEr+=x~$nz_DUC zL@(vj^#R2?yfwTq#74#3l^Z~87NYDYa4ETldJ{foW8VCVV@ ztQ9V4Nq4n(b+qK0Gi{mH*3Gmd8g47fJZ#pv7oJ7MBn(k^L3N`i8qb?98{@P_$0JkG zy22B8cN0~vhj3Liw*vDaT9u_LOOuKYy7RTUJ=eOqxw*Zo ztu3`FpsGi}n?((emhIsio&yc)I}}VSot}cIfcjoU53abz8|iHd+15l8?1INnR}e1>|do`$uUV2hF7(@GtTr6^8m1_%nL+ zV_>m}t@OlPqWY~PZR{;8Ew=s_q-n~xKP)7YHNJP5rTz$sX>=PoolK7{8!_Io$m%ba zys>tJvdTn~yjc7c=;9UaWj?VmId&Udsnw>P(B zTU+SPla5?!lL)H6L(Np`t_E@$-HY+kLN$7LeMJ$?Hauy=SO0=IT~lkl>0w_JvcQvM zs;asiV#73};=+t5dG1ViYK-OO;DRs9d{xV`bl;1f7P9Ol`b~x$z8F(g1H@|k=m@Z^ z=x{oxrs+6+@Pb8hBjNSDCBklq@twL(>+XLLMoru^*I!c|Gq zE^V3!TNQD6lBC5kVpbhY6tg(=8rwjYHe5J=xT;#02>I=bVXKqj50g&!*Ti(XwCTo4 zd~bm|8VXk=B~+J1O)@F9nvKMiTAUdYpVMggl`xKFM4c8RQPg3fU6Gr0LKo}XbNsSv zaaA|`F()Vsff60CCdpBridqb;25_uH>apL|2t(~glqRjtkBMn@SPj}*GZFUFXN9Zt zt;n|G);KyoN-b7WOopPK4>>72TWK~V>+Nn0)@{THwdd4EBo!)=R+re8g#9e_nvk~} ztwiHQO7%dMxM7d!b1$PG?LIfjFD#%kmWp#t|H~?7qkWo6!Ew!=b}b92JXA<6;WitY z4;6GxM?$&LG*z%7Kh<>L9Qh;)kq$h`eil%DP$Bt)_j#lL8?- zv}0kQvpJvZOts|low(B^ICLy^axNX)pl=jVc?$#8iy*z$mrkNqyZibJJV_2$FNNBf zVT9JNt2~id8eVin)d-suPtF_wcqJm69cpoYU+sw{5bO4*u+=HcM7V#qSjR7r(a|KT z;7d9-=bBP<6;dYMl1tND6`KOSx)ui1(le+SgYfOW=;~=e87Bvxy530XIxKgv#`3{X zuO&WT2}~}5Zn}=t)6I%+01;nhp{A}X-#?0XM5CW)*~FK|(vIUe$oNzX4}WOvlS}oF zs~hQ8-e7P)>arIIwd(yqPBJ^iMO@ zomi<%KOOzQA5v9|*l+6dc=!SV)iysK+W#hXXCf~+(Q&=+{h4R)uWJ^xmY_L2lr@ev5G##7Ar(PpmFiI z`aXoZ93eSzvBb+OErV-0e*`IfXA132P{!2{=;t^K;c!%qA49B|Am*1164UEeKZV>~ zEGGqafoB|DicA-JKMv-1ZRWx_CQa_tFF^fYn;NT>I-MuLT(v}}mX~1aapO)u9c)2y z@nhhFp4_!^sj6W%Es)SY4t-IHL>8x7TH12yuC9D@uBElL12>xLOWoj5o^x`S-Y}dS z9UImc6!TXCX`au!>)G5eqF%gpuzv_|wPkk?58@0j)ahZ#5L<0@(T=AW za_VVB+R#IPTT7jKqyww}!B#KxWGw;puTVv}+F79rS@E1QOjgjngY6ydvS` z^4U#!?ts;8h=A@>jE3r7R=o$obS+{en0qI67Xs^s`ck8G;-jAm8y(A!GJ{Z62Rrzy zPI8`Mu}3D8dJw3lf!m-5`t<%Ff?M5T?hOG}G~ z=aaPRr`C?F^nFG4({Zzf;NU0=b$GZmgGOGSU7S+27|fs0moN44iiPx@vTRdpb8D`% ztAk!nZrYU2?WK=UtEJ#gS#EfXJ>Cc{P4nl=mV>#TnZ>I9k-aoHndh+wX;Qrs#50(v zR?**Nq{qvr3e<9~26G=XX;eZ>WjJv&xR0(WrjMu9fx~}N%j7ALZ+otVhS!<1ytK zuYGO+^JCil`JOr+>2Cz(yP6W?h_QZp^M)G#!=7SF48-g)6~EqIblQ5{e_O|)1)(W#1v-9D$LXYcSJf20A;JfA>{$Y_E(36V@U zrm~R!ZADTnw%~k^MD?4yB<@}G)iDjC9YJaf;#=m4c@$qW1`FY8PTkbhk~S!)g)DW_F^J zVhRiYs?LSp#KK~6mSno}t#o7A=1gjHCexh8*B^p~66ub4aT*nYFUVJ?@VlSWPaVsL zTy+5_#8VbSTIi7?E~iHjUFu0h8NN$%6$rfII^xM1NfAr7Di)Cx`Ut zJHOR3=$4Y;{I()VwJqp-)h*KOSY1{J;b`9y*lQ7HVT6$_?4@_H%o`FLc*>w~69FAe z$hW7`on4(>`IffUwj6yRG%BD*5Yb|fXO?W#8+lN)-#nvH;uVfJ(eE@y^#lW^I>1Tr z2qR`KN4*8A=j&trv?iC!;L`AX-yk2QrbF`ksbgR7$;a~5ix64;{y=$PXRuI27Zzc% zx71S@3aOWp7WH1L?o<)JLI2QM&6a#erY+aeneA+EYi?_4+cccY7E-kFsjdVWEFwcD zj-1WyrDG37ekI6%WO8xxK}y(sPw@ywL9YUD-YQmlHT@k&%nXvkYe8%;O&q1KR-3uZ(@FPdqz0&1(hY~|b>QD`^J8paYhMrMFPTYK z9?%#EPM~3zrykmA+I%DU4ULw+e9e?Nx{CQ0Fpn?Iq{I>PjbQFB&7|0gc`KMBHq*~m z`f4^^KnmhbrHMFypxy@JCv9R(dM>9mYV{6cj%`psvblcjsWg?9cR}f-)g_&jXXfo- zt}V@^*MCUod%!$HGqEa^DlYZ%C{G`?8yu!uJ+9sddLPs2bra$jCu7%axhInu?5FM2 zlpg87A5yQkq|^uKmpHMZ+;IOGogU>0!iOMskBFfFshe2LcMn|-L+h7d{KTjGo+mmj zUfcfQQ=PQ=R^;(Ujk*u~XMDbI3;5*b z&qHACTDVz9P^_j8SYwUGk3vg40EshLg1t>s0k3>fE!*5gYn-6&v#GvPqEZXm|q9;BR12Io|yfcY1I?dM@my+DK#Arf%@O2sc65cIr=uJOV?Qi(>EZc+qg$S zeQp`5ZsZ;X^|I2`y(yZKj;rs1`U;!sSGn9UJ#Ot?5jV3y6{+C4e!m-!#4o>n{Lb6 zv)No{KGW2drf=%Cw`Vqu6#D7o%GqoyRrx=JNPtqTE63e<1cfUo62p1G&ABdKyyCR4heB2U7ol)SBZalpX!4 zgAn~EM0ZS3v@ihCNh2gWWQo$!Iqfy#bBEePYvMgbS<<74&@u&DZnm_jD*RGX0~IAp zLk;+!u{D&;px%+OendPKVn4UV%9r8nAm?p8L>rEe`umx(bs*oLLe$eB-{Q$@vl9vk zst?uY84$gAVxp)%BsvSCFQ1qwst<|If#`cCCW`7qqVpj7V63R@9IlElCdlN}@NkO8 z`wO7s?}wp-Qf_oCf{wMDqIm|Nm$n1NRqR*-9Xk(02l>M2SOy&jY#o*fjq$EPn_}cw zK>n=>@=2~tj~MY)5dYG|#HnpE;;SM4q%F>s27`C0vI!v zn7=`VJu8|PT3Lzr6SXSiYBL1qHgWl;9T2*UfDRDodox$Yi{VueW~dg(cCf7ENJ30h z62?^r*ca=VLKA5M79UN2VF0`1staN-tz0a1ki|}f*t;sQjpx+Q1^Y`Cuz6yA3fRA` zfXz!GTfm;N*($dQUgG7Dtzb7X+nEX_$nd0d8_CdXh}mJf6Kiujt-R7^V@tLrm&vuX z(f2spvK{T4f>3pa#pbVmCbDsspxa{ecUKeH6smR!n{I~cXE$Q~w3Z)HET_)1nOBG1l zM3u3mjX@>Tt=%i>&Rf#Ppt912s0xs7Kq(yT?-|o2ahdPxFkJOH61of|OP~}CIug1Z zBuk(q3`3$0$uu_kwIc{sV-`E9Olmf)IcTwy%A{t)k{5wJ75*_F1qxbfIxG_FC=k_4 zAXg7L`u|@2K68yeUW(IRbPXT=p#qLuMZJ<8h^d!D&oo-LhpKcz-@1fVFgj-K$=Nh@ zH6&{xHpqt=7I}0DQ`d1C#|8>=?!oGf;?ih{>UzjEjM560wY) zMEL4XXjzgFeg&8?ernYMIO^X72-mfA3-yXqo*h; zr9MFssw)Ws%?mvtUHjENux+|%uzy?ONyLz<)gbK?VM&xv9q5+~7I>1(QlCXs(?pB) z({hjRbL!{{L3$H`UxgKC`3?;@>I;aa1yuqlqTKS@fz?CaKb6ukP3L>8` zX^0D3?`bGO_H#~N3_Eqe$~pVD#GJE9R7YvaBrIv_W3YOaXIU(5zDJ{EVsNC3alID8 zZ|Y&FUFz|p3}2&t=mh6YL@Dpof47vbg^_b#Oo^U)>{TQ~_jr8SmL-_7I4YjAxKXkK|ry$^{pFw7Et|{M?%I8`# zsnq6NYiB!UUgS)v{*>_aY$1aWTf@B?-j1*r=3?vY_>~J`HK23|Z>wl2Jy9^!^f+bnbbn zqz|WXpiLTij;5ZvBBd{n^^@Vrs(&K#1v+_A#X9h)1ZTvv{XzsD4|U(c%_2wT{+3V$ zTvEJZK3()4S8@1T3B@6)9`TstB(^8@w>+16$q)Ieew4g7Gf0xwqJLfG$;Hy}N^Vbf zaEv}L9?3`@y~K0c>=nchuC$46ZtWr z!HKXqX1oC%oAUUWnXVSQFDh}mLs%xU^;!USSwx?17JZ2edwW{Xvi&SyX0x#84X zn%;T&6;jn2M5_y0^w)%f7NyOPQy)qGi9C$0t{rSKv(AI4>-H(XmQeu zGhnJ?Lq|q_OmJj`=814j}p?t2m32`Q<52O{d;?zgKU~JTzFA}$wRPV5+ z(go;hWY8L+<5V@xqCJlpqUwZp-2uD5CA4xbsXjkU3pak0^g8AsohXSbexZbVF5=e3 zFZydj@r%-Ga9OW@^N}YcI=TJ;K-1J#M5qS<_Ah>G$VJhn)X>2|y2Uc6T!^SxhlJBQ z7{4^+xmZi6Gr~CSUlQW9DN|9O^>9-L+KbaIn>VNFvs5i~?H=8~*R{z|)GkCbqvt#l ziTt?I6N+QijM2A}tuwd_Jt<94dpJEv^(On5Wgg$7kPi=(jzSaE^TR0YUlO9QDGl^e zQDKxOjxXffp7iv@m$O*vQbb1I6rl8YKR3oF%H!3I97qjiQhdLmnXP)F0Y{~EULnfJ zk1=@_!>Xa7Ab0E%m!DUfp!SB2w14p(!pXNObx2K~u41JkpO~V6qx!-WMSe_3QG_+M zFcK+$eo;3RbvYuN&L+FRt?+yvL!zi69v%rl=R$ zQQ5yGMrD&IDn5xFW>;KPnxbB2M`iz(7?n-pRAI-gOsaTO?J7H}RA2a8VpKMXq8b@W z@s~6bTR=lm*V$2NG5uR&R5l5z8p#w2Wm3fy^`CZBT1@|z7?n+;s3H|OF0Z6Ej@wb$ zza>Uxll+!Jzsjn9jnnT9Ts`bx5?ThEvbZCY%I0%T9l5T~mVCCWDO`E@M;|IC2E>uy zR(LWoq$M87Uyb0G#QsUq5wd?vOoB~XfLBWAP9nDt4H>#hzyjMg1ZgAxr9?OGaq%5TPtil}e#rRr*ad zLhI*}5n4RtA6}U#T{XZ^e~9K^_-o1h3u*Pb!5Ho1EtaJnt(k0FD_v@yPPNgk${m}+ zVD%S7*3g5cEZP9&OTLQBe1R}rJ;mnnHxzs5M%(=bx~_wgwV~LMFXZ~NJ$&VS_8tRg8((WvWSIw1$6C8oR{B zja^Oo_Ktisfcd=JjE;yfyyCq@3fl%!NO$rq0#ZFkwWTikgA2$ni5iUY_EsTh(q8$2-HDfeF*`5q`PO37k<>^kZFL-+7dE2i%qQ< zn^lz|iRqA7SwaG59m%A1AkQpeQaUx7>D4DrjY-=eGrNRIbheW9#< z7#fc8Qj?|+JoVz!t@KezdRJpVm6pH@Rauf-N^)u){Y9m8gC|ZGx#FbuCAv$wG?-_= zj9>*&j#)2CBC8d!trF#MdJh!?t(?A1GulfvpRPpmRcoqhtW-5>Sg2a9Cb?L>ny1!P zsuww2iC)c9M?>#%75JHs4d-yW+|#|x_eIE68=?RB3iR_S>DUOC`w>`Vb$rF18MHGq z+2iy&AEi|GMyR!86)1}5?{&?xhROMNP zP<4KVn)GNwum1a*C{#Tkn#z|zx zFTLQX6!iK1c{K0O3v*zOAEvU<;tw68OujA^L!waIl4OqBTiSO#;Vs?M2X2gTm8wv+ z+s{ka;A@pWzQ01Pv0c2cReJcL3bn>|@V-{*-$$VJ*u*9wa9G%7o6(MVVX4Wv7^>P2 z?a8BuK!pCFZ+Vv-J;ZUD5jy(jU|2Xe zCQ#iBJ!Q*|+iyn`tGn$tR%DUWYey~OPW#Q3>9PB4PY=56w?R+YLKf|@qlL_L*zc@Z zo84c>X+w8?dqruC>8+zF<<9!O(B>}$M6%oJt7m&b>iy8+ProC?n4WrZB1L@&I+L4_ zLQ8Y$ZaQc^9H#ncMQUTa=%_~Npzp3oV{G>v)hM0wCo0ky+cifuO2>RJG$v<|xG1q( z4zkH3s?R`k@+eINsIf}ul7q3D&s6tS=7+fM*z<$#jK5Hk#zMAmnzZ~>4u}a zq!a!sbS00N**A$@a4>idY3dtLnB2lMvrP9Jv=$awJp{eUEk0ADU2o9h+o9^=3X&Yx z?YgPeo$jL*=yJPUSBvg&zYi^CS{&1b#&x%D-WsO*5!5C(u-dzJR~t02L6G`M1qpP! zSvP^YlYP7bOPns&wS+s^Usj^S?p`B0(7FB^I?5EHXxHi%BGa+{u0lXGffvL0qU=iPagL%Ev73C273{L`tLG6>MY%lhVHV6 z>gh_9#`dBSebR|OQ;ELVJ~X0Fy3k4cOBXRtOKcAs(I*{f74#)9s})#ZV*eSe(nfiz z7J5r`%&a%L_Y6DcC{fi{=ZXp)X|RwbGu{bodybenUbsYKIC zPD$)F!gVM(2rV~!Jd&*fs+bJRH=<-Q(`$;Ehx|`fs z-U_FebgbY`^7slg*nOm{0bOJhG?Xqh(H_z%G^T@WsZ5XEKYDu5J+_xmQB3dXq>DSp zF6i-h!tH#t`o@zx{%N`V`0K}yITxY5XR56*uqI8% z+4*Eh-M-wR12pmBhwAiT7N4?K+d!({GBB`ZgfA*G@`~TX=g{h1^kt(!ad8U023)M( zg-@2yR@x|)4`$Wup*v>-TDrG;XWQgr18ueS4CeFHQjK?47aQm+3v~2n0H3Tx@Ju}0 zl)ABWu^}}uFgPk#%4*g0@xil)LJO+e&xE-kEN^vnbx`6e%QcZrzQuKotnhA1jd(1UBuWD*_Anl+JkfWGnJ& zH*%t;iZio0x+j`GH#DrzW8GLaY4RleN9AISY?qScrBJ<)0v&5xChH_l*0IndyLQT0 zTD^$4#kyUC7o3;EJDHV;QI4dF)A$7+x}_q;?~dyXn2NW2=+s>3{xdn-shIOcy1OXF ztzyd@Z3{iJEpth!6-rmDl3_t1Ab+T<=m$zUicyL#iRn$z2f}8j+Hzf~&X!zPHr>+H zLIrB9SgY${PzTj^5)5kHf6{|GQ>!{l|Fet#*`Us$f2F{3?TQrOV)YqxC5CwDQsR=i zr%7TY`{{Cka5-QEFtHL~^hzN&da00e z2~aPFO1pq32gE#e(yW?5gK#~+|!i^SL4Twl}U5&GIFlvEgn zN9=2(SA1>sCi^-;K>OMRMy!nb+R((;CeliLU9*)cr)d<$*{8eCrbl*my(!oeD}6@W zG+nEWw&|wy{e4QL^d$();}$e5V1_1%HhPJs+oNfx)1BP7{5;b2PQ|4G{CzFmZ_o&6 zte~X3($_z=TV2DZdb8k-vKMa;qO=5xo_ts6yPGa|@AdN<7 zfzCz~%R(y~4MoyuQF7`fWCWeDoT@)bI5NIVXTA&otokI?-V#>#gib$GeV9hzx|)9` z_*vb@+NC~kP!EJ5xYf$4$U%|YDNdWElS7Z}G_*2NX^i=G&tJBuH(HmuT9;c+G8FNn ziI^xk^%b&vm-?zs%-8il-{jvO-Cmt7)<_>ik8BNw@l|pnoApoG5w!9c#!@?tK`afjxs9|- zbXaMP?s+<|jP6Bx%xXd-F;l2yflgTMx%`REAYIfdkP~-{+0(UZdStUv!RS+a!?`|w zcbkYN7O627aiR^M=el#;jHE}lA!zC^q72uALuu+01WGo1Mn)Pw6N%mM8Hyy)rp!DL zwC!`~Pc<)m=HfB2zU^GMtk9z=D|$2>_H8mOPY}T9YB5Ehxk%tlq}X+ zZDOVBjG2!Kl~QDdno@M6jsG6EsL>;*dNw5jvp^N5TCzDo0OJ;aUd`(r&J@CkOL|Rw zb_-`HQu-}QN*%3zStivJ%lPwM7to{Yg0PF1j870C7igb(RU<)QX@x#B;wy9+F$S)t z_{<2%P{d~z#V$rthpf$`G=;S6ckeNy?La^v%x3R?~x^LCv7yjm-KU}%k%|v=+BaUW2CI_l@cB~UC zH}{;OJV13oriMJq$G2nkIK5 z2T@f9Xk_0gyj}E~dSf9kf%Fx0OapiUcf=a~zrd|d^vK@6h>L1+pn7&kay@RI(_@h5 zkui- z%B--f7vqC97o&lb(OTNgVtQmfyv`Hl}+JZTy*R3Q7@RD!RLX(k^p^=G%vL|$r z;fRZD4v)fWF6=GP#+O-;RI$^`=vejRG$wH7IvH`EjBx0Yokv4mGeOjm?HJibZ#_w5 z=`s^WqjZTbGDhhNJz+GVktiuNSotZ})<%;RmI*0?SxJ@*VCa#Pg(;)VdpTKCwq5S0 zDXN_NTrO}CbhUb6%N>|SWAkz-CrOcU4n1;GXktc@nZViF(^jC> zpc;#$)wM|K1;H3mPcNd@gpQTUmKSS87d^5yGbnZ3{Ou)$)Wq0*gEb{E($dHoX=>ys zEhaFc8ZDqdmyQ}5x=jq->l#XrY$y$?um&&|jH_Z61VUYs;YQb7?Pa4YW-?t`fbuMu zS{R*@TBDOFIaxseciM)@ip&Y%&s{M~;ogD`>1ts2p3c5*KL3 zu?2NKYgIe>Gu>uh>t zX9t7U2{*e&p(Mj7JYr`Xz2a=6H`&<<0@~RoFk)rY*@h<0Hj!51?E16ls8k z-lj+PcEe$N+bEQD7==gdZKGGbZS*F4J3&Bu+XP0ejC$M9#M>s)3cRhtl~)<(Ugvt6 z9^HmyVq+7dO%h11;%(@RUh zblM{|aHtVSJdR_9bn97PZn%*S*!K0&8u0$XeL0qD-1-crP&bH&WvWh(>|x#o)SLa5S}8adDQ5MeWTWi4 z?DcM$q(_cFSdx4`CS3N4Xo3JWe{ts@yb@)^Wp&cThwjPjy8lND5@m=N3 zjZq@&*(O$5&o-eEo5J<%i8cUUmfb9=mIjC(In}`ds4&$sC`=HbgRF54fY;y{aY?U< z4=FMYfT2W8f=m7_2cX{Ix_};C7kH&MK>&>ymlUrVNf4lpsUn{l@in?jG6rJV)A-C# z#Ag--y_P9PQirV2BQ8I0blV$xblaQIc~X871S%~*MqJ8|iO()Sh9ar8DbYQNiM0@K za??tWZd$zwRDuAu9V*z-Fw)Xjn&`06+P%{RN+PX5XN}!EmoiWjI>!KrlJeuZwU~ad_(`CYI&8f|yuPD2`~hWb`(=dU5hFezue#KsA-J z%mhZPw5ze9NS4zhyNf8#(rjtdj)9Tf@Ti{p$ZRQJ7*3ilg_D=JxMiOn*|L*3WyyhF zAAL3TqH^kpv!;k%^)&=|%e~x)-|M~JDppDVNRMpQ#3m?4iA+$85}BZw&`1=AH9;}D zWcFZUn%D%zD3J+@Q6du*6B>y^CMYH}l9&<`l(&h8rDLH-_OLraF>0kTvPcu{U%c_c z+ud?Uj~svU1SLVB(g}(Yml|l|vnMEqBB`}0M>=|chnre@bW`h%-V+2$PEd@DjM7ac z_5{UHB#AcVNR#+ZH;MGNY z4@XXXi-gxLzT0&ZJ-Tl42IUC?)aq3xugo#vS4@+0CIx_83MB z&(2#I?>dcl2=pcdzKGmd7#(RGDWvI6nZ2~bFtCsI8|-&U!ySq(dHU2F?>1!kYMJ9$ z$tGN5a{~4>HsPFw{KfmEjf9Q-b-G-3Q{#E`zN+2>$@HcQ1C7JEe)?ymk?u7Z9K$w8 z+#bdI-4gU6@rT}{NDeI9)0M5JAC`!vBcVsmh>4BljS?Bj8znN5H=&UzFp`(P%07dR z)%lNzQPOD9BOB!oevMiw=oYE0S0>i^ebjXkJq9j{^kvfdB?wsO`YY)FjS`u)npkPa z5Dm8p6`xw6#;4C}|9_{OA@s;D2>So9I~Nxu2n2iZ-e@yHKzhQ7Wth<=-J-EJSUw0N zk60TKuvZ9-PAQT`CsBgY!?Qc;yh~gzhy3V~T~5PqJ%S2%h$ImS0vKb_Ym8L=3Olsco6D5lg=TVQfU8bX_7wG@8nv)oL6%xxy=(QPKZ^d|^RteG@Q zq?t6aN;7FfrJ1xs|1Aaf<8FbaN4LOwE=Ujvn#r(Tl|gcXz+p9$MwhgD#@e8n3?r8o zCPBb%CJjXjtkL=JYbHP8Hk0&NrkP9-m{>Dult^7Su}U*(LZz9sLjNtL?vrk*qer*Y zdCg>kK+sHj)6@h3Dk&3hCXKFjdZuoy-C&wYuhb<79B(y~h9afT=p>5OOqyJghR`Na zGih21KlE8{Chu{ZNqTgfNiVk&1hAA+dB1Ly$ohzh6^kE~coQnkq!nrk?1aWP6C17F zD-MyVAU(1}aIla2P0t|-0$3_$fpE4h?N)*S4&R9f_4%#sW!{Ffu9Y$>Wi!ASEe(JP zjU>q$CzV`pn3(@QCH|AGK6+&Tp&O0&UxENFwMG3Wolb%PItt!PV((S$8A}H*-bD`S zSg(s2UGkESv6earDu*U8k`$}=Ad+#eRCY^)RoP96mg;Pgj(B0~)8cPYO^@vFU}q%k zvg=-oop#&(3mPv)uQv8J9ii)id1xHqw|o$cKUXo5BYQ zBRN`58yy=SXl$~sf4JYxOL}DMp2uxUa$wnxy=*=CyhJShCOvY*6I(npN@VfOD3Qf8 z6B>ykVe!m48fkS`Ul2nj4tiumsgIxr)dWg|Y6V&isD?0qCbrvVl*nAj#L6Sw?wux7GQkQp<0E?o)6InN@}w`inLv+LCYV6U1S`T!EOuqc-a=Pq8oj_BF>Zd-06{>hhi2zQFXXC`j{xh zStg3WS>8Pr2?F+n+)(7I0i%;B&(g`J9%;F8O=s9}(>ooFBSX1NAzz?PV*m>xNcgEyW__WWL7VYEpdFxrBNmDl_w2+)u`I{yssgElfUBsY>iyOY z6K)d2J7c7qen^rbLkW81WMD&3lJRT%h*PwQ_3qy>`eZU_^vV4@CNvV;Vc);=EwNrY zMS5iGXwn)ii=&*}@#4Y#q$Sy#W)4kIKifSv+9YRm|tz^kDO;X zTKMcNUTooymgvzh-J8&uKGZlmoZ6oo9!d4dg_g%Pj^U0=dcm3A3oc~oLtTwph{nf# zS!*rhyJD=AA$nwE&t?xN2Tr&}_XZo^lZd7FrAJe_O^aT^wcRqwTU_v8N zpzn=22;@$q!yf$mVyMJHk8G%3%P@h`1XzJq<8AB^A6uldL!cSan+kv6<`+G(HHSF_ zGTOvLMqBa_C_$j)5Xi{L5XeO041o+sTx4^~jS|DAUM2!RbX`P`?4rY;2pEMj#5M|# zcp_l*N>^(1CQk$s1jv(A+D%}@N(4@HB4AX>M8Fu9JP}9`a3%tVBUx;ef^)>9+#gAn z%Mg?vIm;(D$~8)4lxvj8DA$BWqOeD~(M`7K0LQD$kBQmRde9@AUExT~NK5fC(t0Fj z0wbyqb0qd-*HC(7Ll0{tW^~C&%;-uUi6scwBQZmf)Eb@cNX+D*6hMpQj>M9)O@@X) z5pT%!fF9W!dR@~5N-S2OJ185oc5u9J<9TycGp3LOAZAPvoSpIJstE!(_7GXuG)x&B z#Th&?TVEmWk;@6`k=-+eqUKSacR68#05#YZTu%5(iA|PG`)0!Wm1gZ(cU0X|^_MBNo4aS-RJ_5 z1-*~j7x>0=(RT85@GuAaMysA-8w-M39$n;$r&9&)?KVMfS`cJiWN1jPGtowr8$T?I zW=oxuEp<9uf@{YnmJOmyw@clk3++4CglMfL0)Gb9rDLRNr!>|+9KR@+(&M8kt#?vd zuTzS_AHSYGv6PA~-92`TE-YEcr!@XS|eN(TNdqxs*N`d|6l;m1&NqY1+EOYE+7~{ki^L zI%VTD7NTD&qv*#v9Ov@`k*`^H$I@~1=ZM-C(W*DDC=SkoVBgAXTVm-n@T9gS);z<)AP><^9iPMI5GrH}^Ss#0mLdlwY2YRrJ z$#A8IGbTd46>TEKHTv;6D)zbbO-GueqIEO()5eHqV}zHZvGfkk(OCN^$Q*$&>D7y| zCMpo34(9gqFd7K4V5^gs(@a{tMn9I`?Hk)DaEf=Ii3A*I~Qo>s-NfI?`QJGg(<*EeiE&tWk(D zv~h|M^bUnZm{4Cmp;s=V?YmcM7HB8vjfL(7+6lpQFs!3eYGUb_)5h)YKSqUEu6w3Y zx_m2=;@~Ni^e7Ue{w$dZbFIN8%Q5>v^g_7d%ltxg(SSeP)G-t(h#{ry®N#`EJs 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 G+Wrdyh#L(6 literal 536170 zcmeFa349z^kv}fmI(^?~>^Qd*6Jbfda@p2pM`>xK=+u3*p>d$U+D#@aG5+Se9iW0m3c|Eby!9o}RONq#juU^$X^{=a|TTq98&ZTxFm&VS9CL%#^T%HIjspQ&VV4~F*i7Krl z+Sf<*FE7b`cYo^Y7pL(5HhcB|9Mj%41Y*KK6bHp0)CS>4nLIgBwOI2USA{; zj;Ex$WXmZT--ToGl$uk`CK-d>d_(6Q}RI;JFD-sE21=es%4kqxE zHJ}t?sjHLq9(YD7S(i#K>5GA+13r`-eAt%0*ia-8jw|@doBLuTfvK?Khu8HZfxDHI z)SQ@L>!mujL1i0Nwn=51Rkr2!6x-@y+f;Tjyt*9zUa1QK1R9Y20U!K#l*vROJ{eGg z_}g0GwfA(uA7`kB#S>@aiZ>GV!&6yDaw+_*E?ixJE!j7oWHWp-7MJ7rVV6asfvG@P z2763v7r&{0Vo&0HY9hJF8w;h_%H(3*A_tVXtcyi6je3+cKCv+v2rJE8ee$58oztSr%dC2^#b7-e#S=l zT0AO)l2HF(tT(9aMwQ(JCVPN&u!AZ)+-N}%|uu)J7Nr_Ti_=osfG0?uj{#f zd@Kgq9v@Yrp@2s@lZcJ?D6y0A$n^MVR1U|6&UTL*V{Y6Bj|{|PtL zsq9vj4SU!Kd|}kX##DCH!;X2_ah08bL2?^>c^v+|gH14>%KRRtsBBVYQz~OB3#g3G zu#+kasw||ku*xC^Cs1eldHNh`IxBce57VSR1F=hC^3jJZyGl$}EJ47yDb3h?2AqX! zdP)+YSI7EA>CKoaRJBm(Ipb(*&S)kCKmkrZ#&xIt&&!@*>7gordO9;9@cg>YX|$>t+G8T+pDsDbDsH2iCM)#nLpy510xQ_ z++m{?S%|sRC$pFfR>EA+Kc~516cjf;5(xRV7jY#tJ>I^rO_4ibGM?Dqw#z@!PBlF& z&sdW$sK~ISnkjpZX2jl6o(b&)=i?|kHHNpwij2tv##A>)H=<0HeSKaV(`qpDPugha zR?9=qY{H_7?DtM8VITN30%nk%Otjg`}7{UrVlVbbi4db`@TZn`Pf} zv7Sibn=&)J96T+bjd_C+-%0OeR1q8HIX=VQ-C3Uj=YH2;C~NPqk;nkDQ#|Z~T;*4? z$+Blk#jUbn>ap+jdqzS&3fl( zj`ZH@?H(B=rn%gdW`q4SH)B+$HREjA7M#i1RkL?zovgntbGwVtN{CPtPsa|#9M|NF z!q&(F`*KzWPYB3>YGYk!4mRzs*?(t)u>UJSpK6;~K;N#tCf@|-ix~;X!Eo;M1&*OT5JL`E| zFK~}NkLv~Qw&!uZzBYhk&+L zaw_WIwf{P$eUIF>$G3NKud*xeR1`AIyx!?(NVYTC*o|psqa{v{F%{vE4X4M&sR;bH3t{I$mW_}QNf4UJ zPY|+*T_>AhY8b*4KvOx-a`Z1gFI>a=`Qs?WbPCjtWMgD<(lV2U{|d^Rt(Q|S! z3rsQZX&G}WP4!V5a&X$-M}qQ%xqKb7_qHN?Up%25##zsCwV~_e5?u~@qIC@$eR6Rk z2KlnC99l3rA)Rk5nmzPq?f10EL6{o6A$i(-k^<+ase7z19N#~i_oJua|5*!Tc}5tJ zu5aZI*2q-Zn22e&W=v~X5gfE)C{|Uu7n@%lbG6=WA4#`LidP2ftv%f z>EE%>K((!H3CU-S8%$;dVS2CchS|Nu&UOZNw%cvk+0GOt+4F_=U7hE)@m%8BMD&69e+y*+Ouk~gFY;a|=l*ct^#m{=P z$yL0C;y2MLe(6B(z|CV_-p>BMBOalVE`F>5>85$d8pfn1HQS$Yx(axX^mlf72l_nT zuKvMpiJ0sPE3zx?C%e`l+toKZ&^hGoIx*TiLd+NPXHAtmQ0G9d|7sxIHP+K}qH5}0 zWkFZkZohihWZ8Be_YMyC^bS*N7czrQwd(|3v}RqoH}`e|SMNyQ^QiARtg+(j#8d@k zIap$%wVG)tIm+cFWFyY1Cu!%n9(XES|va?g1Cl8haIs8NK%J`{O#AI%qmFoOLVD0!2!Mn zU)oU(vNYHFuE9ZP3JqA>M!U`u>J5;w9CK;}B$sxNh4rejn4n>*)h?YcMuLg7+Jt-^ zGvVdAl&ws8L??|AVItD?7y))>&@Rg`?q*mM(QL-^>x3~ROhmW|2|K3c6?vSk)SS>+ zV`P|!b^S3220No>J*}v1FD#a38a}Uc#jr3D*M=Ua$#%3`kbQ$r7GuIxWN&qhEMJci z1T&q!Tc-(CFvw_*cHi9TkaN+{Z9PAIRA-7IG9raGBhmgohbsIe8?pYq)x7jCI$J30 zLB+QI=wP2S^Ah{Isp)=8r-Bd zyt#kSa|Hi7<3_b~_ea80_}AQzYSjr}L`S$~%vr{(GMX;U{GiSpN+3|#c)fFKZqU?h zuHqq`=r%f{4VsFbG3e~}&)TSEo$1Z}RP{zJ!i(6YAA5!cE#9!HVtuI@?PL*&fDJCogz@0vXt|S{d@&b)uKi z5pC%2>LjQ6VV&mXbTpfAALN+zmfZAxRwsJ}9odG%{ezv3?T8KsBeKPg=-+gzSJF{! z>=_*E>USu>+SJ_>Nnlei(?#dUI@zlT$!dDt@5r14w-+_V!d-n+w!hKY?x17aq_J(= z>kQo%ovvkAwYgc__+3rS7p`tNvE)G4Nlm?$k=0E)U#xdTw7J*y3wM;9va`7pD!n-D(8ipfi3B9pid9?{kQ)c3^GAv|nd>EgjPaVCvLN)r4pB zmh;r@I@eZOu1?KT8du9XDy(yTE-hE5W+;uT<^1#_o$D?_u6R7}%y8v@i8JRKUN)+e-&>O6PT@od7;>DUgo z85f!Tmf@zyb-H`#=r(Jk)G@v-=|$Bl;`9TZ@LpQN9qrB%hLzQd@UL{j`)CR8-R&%4 zSYE9NFKW>?c>4(nYYVJ{g!Ni`R)p8;gs-C`+@deFjxnA!N`8e-`Fdi?4i00Ta*1)g zSEqafF=Yn_vQD|gNIs%dzLAb{1D=IA<0?bROw5+D+S(r1x!y#_wGp{GyKMLN+zTB058P7$?q`u;*EIz&r!?{24vS~`Aj)rsCp zNHpQ(7`62NKA;mFrX$*nM4cO?mM-8Yb*3Z4Or0C0mVV%ub*7`lOr0C1md@b!bf#l; zOdGLjkyF!=r8D@9&hsc8&!(7@L@iyTKj}n|(GhK#jz|6AmO7moUpNjLWVU2|B8abpvj9Y_N7)as9N;)knv*!Q16j^LX|g(+TMboui+Q{I5o&RV_BCMRbJgsYF?U5@cPK+_PrV|6rn(298eqa}&3 zil!lRCyQzFb5_KQo-Rp*wKNT}J6CwoDwv*`+4M(C5@A)%rRg#5TyagyTU*J3XG;=c zflcGtRj9L>;hlcABoS8JG+X95ZnpE5pgZVnx09@sdPX zkJFgjh|6+jCN}-Kl0;aa(=ayYN;&dhS!uiA*^)$9tkbYGM{9QSMHT_EWbxxAiLi91 zu{UzCf+t^V#l7(1l0;a*bEV;|JFECBtjL=@Uy=yxcp8T1XmLxv*NT4e<0Xl(sAop{ z&eA_(Mc?H4l0;bA(^%jftMJK>TT#z{v?LMM`83uU=gNKZfEDe6XG;=cwNK;ORVezI zao*F69l5w;OD1W(?%8MT_Nra_9jqm`v@Q#I}-eg6-=;@L~SQylJdR6L! zCX1dfNrbgRjnQ6(lA)Q=o_@9@5f%?Mr0!%5QU2I$_MUmVBoWpUHFWM=Nm2e?E9M2y zmL$T$qQ(}&!TO^7X)EG|50@muDx=239V|A=tp)P@#&I8Scx=`yHhv+tP(%+x#QC%iLffE;Y#W@ z?@)14Zj}j=iBe@BFG++IN{uZeoU1x?KiTRQStcT@KU$IqtCbq-Dm>b$8_QOA$})aj z`q`31Sh+NZw^K8m)fKZ`-unDTSj9Alw^Os5)s3@U-um1|Skctrt<_y~CR@bn0$PT5 z`q`31SmM<1;PBZ_4RFgN^umWr5@FHP+=n|g#I5e9Wqel@yFSJV%b?~mcWRJZ-B-(F zu8(rU!l;J#22yvdlokJ`MJj8?d&@jsk_fA$8s3{W&>aiK{ihZA;>Sx8Vae2-$2(Wx zivMm7?9-2zB*OZsIqaRQzQ~tYTrJ6X?qGW9$4e4nF;#=Tw!S)M`4`Q`KKpn{BCM>M zIpuS9;9qM+-{kp{L|A4u_xTPE{R4C1pBejvHCJ=_J2?0U=fXcT`UwlL8lF9#KsmH= zx4I{p@$A#jmL$SrtcI6|&vweQx4Jf&@$!s^OA=vW)?DUJdG=Po;_iaR%4~p z?9H*2?tZJGUi^4TBCObI%yhcZIY$5OR`gAtFG+;uTXUc9;7a$Ax$w`dbcD5BThiHd z)FoY$xet~k!pg43WjgW#ubFFn+LI-Tu+VFUvr|*MWn4Dz$&y4^_cilmr@}RsG15@cPnKtL? z&eg%O^iqqSE=h#NYIC0MTwxqbZ?)*@l0;a))_8hV%GhRR`pnZMiLj)t5&Ef4W!uaN zQ}*$aL|EoFm%VdC-qMvVe!L_RmcGq>ymN!z(y1+eyd)8p!!?#!CyT|->e(6(mn6ah zxyF1~l{&eZ`7ZNxNg}M7Yj~DWTeTXcb2FZ8&hsUSu#m1X=o~FC%df)1Xl7N!iXSgY zgk^ON?c;LeTyfa(JzbIrOYRy^uS(_J%&eDrx+D=+ z;WdU`b&Bz3yu9q=C5f;yZ!UZ1ygbX3<>JRn5@EGo05x>i{Rs zK7b_Al?8s?!ny@@_$QOpMO`Mi@WGNqSTMLz*S{k-V?1UqKI?$P*Sdbo}_wR%y*opxRWjzvue#v6vE# zjgKnPP{5;{NyNr`l-S95WO{rwDu-i3XS?BhvH18%AmrCx#FfzW_}RLn^yfWy2me0$&*QurZY#^{`_ec3fpAZcnk>;LGFi?;UJ{ z`P6)2&6E@tT0d<=_u@ACxtjB>*eUw zu2gbSVE;9#^C_8K4yJUaX@^k0sJ^c5>KCWZrFO7g9@cg>YX{TYt+G8T+dISdN!t?> zY(0$j4JzBHvP~-6tg$b9;$%c`*99L5Jr>uT~hwbyg|KFyvi{Za$pTfg#P}z+t zy9s{h0eI9wl^yc1&KcHKa;|}&w8O4SPBiR>8Iw<@milBZb{d5K;btsm!KTRyEMiB2 zNoa4|Qv3?A>+>na5d-17;Fs5|Wh^1IjF@W~z3d2>8Z50l*ex(uX#UAOoinh`zHN(0 z={ci07Pj9sU|E6esPidp4rzDikU6@s0;>zw=O?n1`sqYGR*AEbUP_$tH7=;7#LWFE z>11Hhej+nym=v}H!^KD&LfXSHd{EcLm}Qr1?iQD{3oP$XW*1Y6;QV0Ng<%O+J^aSDLl`%7WtkN^Q>}*cyPyRvITKgNYccWHB+U!Cg)4pEa;& z0FfnVb-5y~#Nj)=CRgUMdewN_7?+N|X*Zg+N0Y|j^!Ri3xq78|a?YeNxg5^gbM^Z0 zw45v0TxrYTE@StUp6K`vj5E&bFqD>47iqO47{v#)=u_Gu$d5(wVKGS%hF#K_}NvLiw}qmrj*CBp=GQZMcnm330z7?Oj*h);-Mdai@5 zpB7y%we@4)C~>SL)wvOX)C4O!5P_z~;@J$>?egvE@cZ}rC-(byxA`XR%VsEjfYIm^ zH>jMzQ}(=~4Nt|jwQsoUT)@o9~_vEPho?~EPhDKSY9`Ue=0LL;!* zP2g|JlfwgIav)q2G5&yZuyJYRpAlnCxDXgqfUWBR|A`oH!l@5azd_qV3t(m81@XDP ztnk7LIpzxlyurw6CF+x7V&0w*Q-0SvnEfRQT0w|!q9^3GcE!JY*LD7V``bFMQ|#MB zmp+tCi!CudO)j>3b+KU|i5K8YJ94;7lUn%M4vh~|>%MA#Qk$niiVOgJ>3 z(1~Ja2O^@2PqRQ=iA~Es%0=oaohNp1AmZ7gWkARiK}wpx(rIF&1|pi^Sw(%*XN64G z2t()R#pY)_m|xAh6wb4(4mwJvI(p`EiOimliP`jr{?X(wX%hoxD zQpt3VPJk1my&NaN9sK4dx}MGu8beB`Qai{=G|9Z2qZ{a2fVl;1B(wnB`!hRdf5#gHPb1%B~XBzaml+Hq$ zbqf*ffM?7MRk4u^d5*Z8&H}UzV1-A2Ir`7MoZALa^rlly&ktA9Sw|Dh5245@vD0sp z>4C;PF660U2c7ck<#+^Y`YufeYFDt;@JcH|xXxouW;#Sx@uXJ%M%i}=9u;!4~XL8!3HSHrTnOSz^|2cHZ#z9?C)#W)H`+}~YZYrf~ zaN(_we#_8x@ez;q;CX$r*Gi}BhS+p4P}%m+G^@)voR9e~5#d2K+#KaQrs^Wz|j%-)FK zCMFodl<*uAu{ATCzfg=iVeWGd^-7cBOgGHNJn=3uNf0IjXGVv^Il=rfF;Nia$Yw<0 zaH=f-C5R$BQT$p=FoZdy#%OUYb(C+~kSmdk;GMwgN|-}wNCf>1TT?0d!8}QHiAjPm ztuSZM*ewbrPZUf{6oi>}IYt3?A#}WAoS>FmR9-123Bv5NTuC^XgvK8clLTQ#mLUmy z6SMfgX+t9&mgnEp-Wfi}x5b1)n1lrF-8GNg?p!2Zw-J{SLoAE5cZOIR;hn&uLYSG8 zV=I+zUNdPIZK=#lD6G9RPa>^i5+Te+F%}o+l2Z6so=A?1iG(mm11g|tW5?c94gP#F z;)F>HP-NX8ZfEWSe?W{m;R$|@%56Nz=bsiMPI#PcsNC68ZT=GwM0Pv&Ut(e*JmAF} z9dN)aA5Rb!thB2_PpoD`a~TrF3uW$b%Jq~&_ywaL|U#d^jrUqpIt@G-?FHlU4wwoxKN zQ+%7zB~*J?*ap$`{t3y|Vw0N$^S*A>COR{y4}>ShdcC>Bz2f1%g-*|ll(1iD_13rD z?)be)s$&P>Lc&3n9rCcwlDE>g(&@D+mI#I9s94osSGVQwtu7|iZTFCOZ1nK{3dXHR zVE2gKsm+{_f&csi8-Wop>S1FlJL+M_JnXp2PTZbix51ak;om#h1oNrP?_r9{3cIz< zu%OC9`IBaH9TXssYpzIZRRV;TA3%~YozYAV9uX;&j`Zb9p&Bv2JSpUU07)VY1LjJh z8UevPDdc_tNg|997E3{RMtf6agD=ao%!LQN>AsBrR*XAgKq6-U&8%O4&NHs z>9k}lnRq`3ZE`Bu$CQ=iv8XE{mdzyOscPjR;QF0-W{2;($=wsm?lzy?=JT~r?9OX; z2w`r&9GA_tRRhIPlZ|kLY%0zy1R&fMq>R!qYEfAw{#$59LRT6l+3b^{KUyGe5nvPV zjq+zDg@(xKuwoHEzR-I>B-oJ3ZdJ=GGCfli{Zh@MUrSB}pxtR8(pr^ylRvc8Nblkw zz?aSuZAue0pG#&bL?^yD;L?{Rc`j8R!?KpXh2Ak@a(7p<@^wt^^X*ag?f38ByQh6m z$DV?fZ-K>N=bwj6TC1Kf7feC0<`Fcv7X22&_=S+A4y<0&-1C0eamXXRs}*A7|OeHn=$p5J1d$V@6521rVCt? zUzv(3N=54C$KkWOsus!w#n>g0su#s7O!#%xES&I*VOlCR`y%dWF8Ao$Y;F{oxH0BT zrRKO?S^B;^nuSL*hS!PITraz`cKMksHVtPyS|HQ2J8f4@&v>Llr02z6h**c=%3xHi z+kXN_hoc?hTaZxxZOM?HB0Q&xT}%gL~G+45+d~R zoi3wdp4{z5Pl^tov;)U0==5F>&Y8vW+bn8#=kfeJV}Z@qRfKv5=gie}l{VE^6Y3eJ zaaYe(((_I_JugzuObe~n?zCO;w0$k1nu8Isf<3O9D^~M!>C{{wyDKVIvdGnQ#d>a| z)AJ&EqN0-x<2roFGii!OT7QmL-aF{@3>7XaQ?z>^Enb=k`$G}MLhFMS>Uk~$8oDGN zFWDt=2D&6}hqL?jaDRM*$~LNOlgc)$YzthM-C9OgkjbFN2h*j(3T&aVH58GuTP9^+ zJQ5AaVs+KhEA?D7UK=TJ0@}uAP(<2Z;){eP0%2LW@|Y18H59Jtzb$3FbpxXU`p1?~ zRQiXk=};o>>R%vZySOleO$Q=3(dmEDbmX*9fW;X1?s14|zNWyaKS-zbdeFMq^)grO zC9|>x)ZR&`cHe{>f2r0fcQ>7$8`#k&Fd z*ZUN~vgfXzE7o%#ot_(_(B#450->9?Vp$*0rfrx+sOWe!5%vjf#M}{G@rWLvQ*`}g zC?YnXUC+#J&uoxR?G31Q;vF{}sC>8NfePL-x8p#?x+M~%dD_wQ#%{&mN~idGoAr+U z3f-8xK$vBOPUj7f&D6HbUChg@YHX9&Hb$rDdQi03Wdhe}tJrBfMyO}VLUr|ArEKF9 zbb4+8J%^wt@X~Z)niXs{yz-n&?O^NN?Y7g~?b`?yjVrX9SYD+OeLJC|@m9WjQKU+W z_EIX^z4;~3NyH|fTc%XBd-bb&iuMsIdP;_VOs+Flon5p-r|3mWR4g*;ZlWvRL{HJF zxgOMP_X*eQ7St`M!#}u1%iXQHspS?y`2d~58}PPYMI$@e00}K}e75SOAHLMOl&o`S z9NOW^yuLJYl1|rHU!x*b^D~#vTAI|=vw0nr5TTx7m*wiYO55oOp`Kxr}tA7noiJZx&d>8T}4+((WeO&9f*aUFIp*FW`pfaHg%8S z%~D_L{*+a#57?i1;7E-+*hZ;V)_!Vo91?=b9tSi(jmV+d&(j`_@5B}CEl^Rrc6Ki#;CDs3QlxiFOKwV}@ z^=sZ;p?~@3`y4Xhc6zGIEvf#!s4`#pl0&f>Gu zN-L^|7M}dz$3HT*-hQgfP^s5X`m72kvZciaEI=EKjNw4d)%t;u9aj$W(fBkU@dL*MrPa{Ps2^a(qyEz4@(*6uz0uf?bnb|1^3Zfipu{#h~VgdMqZsKYUb zkfUjudcyxhj5=YLs^wXOx3^yvUwpC9Tu0csDVMvwCV#CMcfxK)YqNTHqOTDj5|aR7 zho4;S+dJxGV%!P4-mJ)K-`V~*{EcF=xWdB4^@zK+R(*7H?7-fu0sP})+zGp*V%yoa;U?dFB^TmBVyDEyDj8c zyuE!FI2Yqi*nuEN?G=_T=dS>==Tqrc1pHNE)Cr67=cwJ@^8EaRV%!M})#q@pv}8Sh zB2VxCCdQqxZu^?7lV?i>cmA6^0sKx(0EDH?*JTA@S5b4mVAbdRvOcaB8tD)Y^|@+8umCy|@QBtls3I%i#QvhXzziAjR61a!_+>1Z)%{#r3n z5SB&G5rw@4lKDr(xD%EN&It`TTQrz|OH3BMbfJM9S=d}im;XVGJYh-M+(7^dq&Du9 zw!`%-fpwCw%xaF}Z7#UVyT!;8mLAO^Z*vh+J}E|?upDQO)jL|4lfObt6oe%zbL_y` zVwL=1FTO(ozn2n`n9E||Aum=ilCP$(+rcKNwfc~{G4nBT(`l})N_N@XlloyM$k4%q`M&)p9=xjH9FBTsk0rhDw z;!0?G+}FN)vVG4)+wO_o6BGVja_jWjK+4AMmR9%GbSsJ_CR{5TuHZVL%1)XMQh~4y z7Df8rH4yQ!ud``s-G>rESNHQn_gFfKRQLYCDOdONL-$x=iAeWLG|vIgrR-IHsm8&s zztGE$7~LLkfl57+goT%gG_J4mVP(oyxLUpLR#$mYosOsfk4*; z$_uxuWrSM=RsgI$M`Qx}j*i6=A$!NayQ3?svMN^GBht9Oqw_~>-om^7-ucu79A1=P zRTpawlIngkB-=aKb9Ar0>~If($~OZnyGUvVcmODtYP&}!77^-C@a?A;BW(cK+jSvx>1Jxgj1-~zbjFmJmvVmV$?bHG5bJ3GwRW}R4}nA9A= zQE<&+-p&qKwVB8qR%B9s9J2@4V-SiPV)<$!BS<@t6EW8Y%1q36_@oHSc$3-yWP-Ui zFu!a7E18qp0Gu5;ZUgQ)g6MG)mT@OChn9?QAQVzapCaVl6}PN1Ctu0<2I^s%(2Zceu(fr~N7x;U`kIo+My%v2j=11UE}?ncIO0n?(Gz>8kWK^;tP`3D+>Lp~8GYC)hDg_X z3V$dN4ktoF>UKwZ$$B{gBOSZr&}v^k<7!`J^Wz2=_5&i)zV7hZ+B@5I?#prRvF8z~ zu5E1=?&`W6U1N(UQe8t0e4z#1_1`M?->{_>sji{szpLx&1Yfa*7pbnD?C|VP>E%r6 z*uacP^=q}tq8OKH)q*nw^*8w!u^eFeR}ry5dX=O?P*0LSD<&1f`ih0NLQrXuZ{8_n zD}3tfmsbOH3AoHHHf37J_O+{EcE#A*{YrC>7c|Jp5B)0wSzSQz#&U z3N`#EVp1Wj*itAJg4!*7#kE3f5n(NpLa7i`HQ{^3q(WHbqfjaY^*;FRVp1Wjf3dN^ zsYAbo;I2D=2}mYW2!p>&OiqM_AqwS0R3d^ulqaVTiphzvVnU&uh-xSBZ|2GA+hTGe zEG1AVC!(SPd|_+uxNCrS0zq)XJNBCj<|ho{IW|G@Yx1OXt(bHOFP|4$5k#__6V7m+ zaK^-hLwGB@P&iKB&*pdM3Fn-ca0ss}7YfJ8i_83NnsBt#i@f@${9R&lBD}}D#$^7n zFBySK^OLW9uFx7xcn7l31nj*H$veaZKzJ{( z&;)G0A;^!4Nr3RKT%iPPzBR|sib;U*{+QnEIGdwFcaw}iC?*`jJ5_p9OplL7<#251Y&U!_79SshymakF zTnSB&?^E`)UpJ}jlXvag@0(O6Tc^(kQbu3-9m%F}zY?B`GjmF8Cl5f~wEI)(LTNIgIU>j7nQDvJ{wpnFcz|gmP*fy1246j7Yo`05B9Lp#A!b|~a z+$@LvLB(7Ud{Mo1Ex#G(OryOKTxUCL`IR({gh)fd88)f1DV4F3_tBG!2aom+_je8r z_4b&H*u&OC%|d%^NozcQDNLdF?FKmxz+2C`)Q)6xUpTHr!?H!?FqjLD%sLl1RJ`#Z zt?@54Byn?K%3@~ZUjf-!O#?V9UKo;S9GsktDRFb#+c=y8vs6Lg>xNS33e2%1k3!V`y;1&j!@$^6>Y_&P$(OE41!jQpYmH?-u&8%a z8}{I&PgH+otdBY}w7b|F0@qh=voQCX@OzUDD1vqi5!8kwq=^9XVa+zDwK39lE7)x= z0@x4-XWbSwJ99XYAl()?IpHnq?;JkT>+SQ5_8#dSHkY(xkr2#h&)o+mn{Q3X{vkPP z74+K4_m&Ka;~9uUf#6oska*0&GmzzD)zmrW=I831Pwj<65z{%YCPMxWYMNgP0RvOf zRyd;hV>lSPi);1kPn4vk1xgmNX4N>+D|uL$Z0sNE9vO9J=1MkocQZM<{hE|1*@w__ zB?-%T>dka&jZCj!XnYQ741*zw3pM-UV21{_sg+(Z!~I^BQPh6 zHXRG%r)qrHYU>a*q$YU4`Itir!VK&3nAw+hY&?Ja=N+(9|N5!@On$D&>lW56sKY-$3A-IX7?(B$@x+_jwuUY`Ygi6z#85Qi>-77hO3WfaHj6=Ix_Rgpq1i`U3g(La z*T7s+s&UU;<_eP(wc56h9y;q-3Dz+X@h5`m`Jz*3r<+|oG=r#g@o){|h|#9_7R}i? zTs?z0R*^x}2io@H6yaJ#shnSd#Pgf!EMjSYME3UwCZclmtUEoVvs5eE%a%;V6)=Wd zs$&f9)L`T+&ns)_r?ZA7hog#;o*F7yC%C)QFoJq^&kY_rYgh)p+z3R06FEd@30hn-;**1}A?TM{=G6i*OlJsd4+nx;?)GS;!kNJcLEzMo zjz8ebQn3d&I0d0$0e5ng&_1$OF&Z&!MaYwI?SqZOmCifZ1oNq7+$$EakE3+`Ta9H%pjO@(Fw`;fa5O4w(S7jBQ&=^BQZ zVLXq{Fd9aJiZWfv?BE`N&gH(iz^XA$X9Z1~74)7FvIE1BFbpB>Y#MJ%I-J7yZ)^L! z>kc~8z@6!6z;{yfBZTauL}G-SF(bA>+)1Z@JPpt2f3HOb^(^i}DGLxz&8+PiV1mv9 zR)7U`M?$chfJ3dYB6gxx$^Ft z!v?fw>XR1O&#&QdXa5MbeXh15=zs#7`#gvHJbk0o9I#@F)1=0MRAKI{QYw zhdZIZ3iV~mwbWdfX?M+kVoQobG6EJsk*lv`@$}rFCA^ z2F}qqe+gFf98%e>DjW8cL4S_rN;l@ypC`pj`4^pKy*{7yyeQMh_u*YyGEL8u(ri5F zEbGdW% zDO$^+GJE)bo*aHCCI`anc?Ii;BbW7f^M0Xqgz#Qk!R8XC%j~TKp#XnzB00ZSObUc| zvI+(TdX+Zc(Bi{lLLj`4bZP#|Y1}w*_;wOMD<&Aii#P>>$qo=lujTLu#RNlm1LcZ* ziz&Q#VDEht{y8yu5MI5wsB~tMX1itLL-0kX0cqg!JCrr05 z2%6ZDe9t>H8KiUX`Cjc^I`y7kCngcXEc4>EHj{HKS9yrN`l z{vt8zgn7kV^QQsuuWZUP=5G_@PMAO zOo_(EN0n$O;8D&bV&gqZ>|{JLJw6(h!?B^W-SE9we0(Gj@@p@k9OCr&#Dssc17NqW zW5UiXyx^*lC8Y(KCwgHZGTGI$}73xgt-X#-`rICI`suX z-^os9i$?}J`}@7aa1YO1#1*DjT2Bes&ic)uzO13w_bZbYJC0fy%JJ}^xyT)x0CyEl zfQ|msBZ0du+E%lj&{%CG9!>b-srysV0^(e12fKy82B*+n9@cg>Ylo!W-74Fovc2g( zTI(T|cZ13{s%(?WHmht46oK68nM-@El3BkFdOQ39+KUmxRogDfr{inMV z(O4up6p01mfk@bV!1MM4V1mvK9ezFj{&cH|9h$-O8{tcu>iGb?a#9FOPIt!R(ZEC^ zu2{5ts*x_q&9UgQK-eESZD9p%poq*Y`%hJvWzj*-H>Ky8&OY&rH8ZaMf)%ONFPuC}86 z1(!)X#wVL6js{|ZiJ--%OT4OgWm0G-jjuXs^)1~ucUHyL@v44)d~wNGIN*!;73@xK z;q*nJazonbE80`5&V|#Xv_`+!-2z}^Y$wfrrPO=E+j|tt4MA+3{y^%+BI|FSkd(7M zk<(VY-bMA+rjI8{+o4^I{hMM=JJThXo*q`F6&ccRp;gHIngq_1&iTm|r;i4r@q`=% zv*?Cdv8IKw(h$aoPY&0-G#U~$zeKKrSYad_k4A8KjKt-*)%d6hH`&RRa`nLA*hp_R z*UIjqwQ>dQh9ilXQp3d#pb+!&zlO%WJTp~tvA)l1R%F9vI+bYhnLg~^z&(K(v zc7|ALC0D&Wk}cZc9z8p4<>OQ-Dnh&=YS6@Bu?@;Q4IIPupeR1%Y|aI4=<`nlWy@8m zCbsfCX34)M?3KT?#`(XY#`(WzzVWAxV%NG??w~K~;IB@uhQgf?S&2o0%3vZsorrf2 znJ>As>dJw*|RSY>$~V`tb&)vOEI(yUdu_RtS` zyy^5n8$_;}i(H^;5Z0rkvIng~iZ)9K+CzyZjBs)4mXa5z@TAxBxU0731T4o#WCN?S zHc-(@QNj}VzE0~yPuB{}%E80jBuQ9%kjM%)XRTnw7gdySS7LHfiS~sjBSL+U%P9jTLn_Yf%OK}$-k9P4;^8@PGeBG;Hg;OdM zDV$7P6Zx|+5iI#iWFi}~CNip=iD%MpZS-Iv5Z1Og<$AGGDr1?B_hzvsfxrjW$R)Cr zEl_nnm>(a7Y<1ZeSE8METFb(~elQko_tTy-f~eZtj#S#m)!yw+xmzQZIbl>-eYpBY zCD!xAd~ak-L9SJ?qaJq5!;Y)$1XNtO4Sc0>`1cMr!F&$8##q;x$f`CMO;t{=YpzjM z&!{HpjB44jXdten7eG5#yxe$S(Tay_Tza`n|6IDAfE(bkF~GyBWJY$bajqG4uu%^i zQ>!-{aXK?vI;_ZkcQVpX&@AeH&Xnp8JAVU2!RlC%I~SSnzyD0FC`@NX%d?SaXy|H@ zsx5R<;qLIA+2KzU8b>z3XtQw`u_4zXwm+^Ir8AIKIi5^k7}757+*@U~Po^6y*K+K) zoOl&2$4(cg&DF>|;^;&@`iy>v#hv@;lt_|m?pkONxk%8`2+6$(k-pt2iP zb`!KGIRM+7gDN}ZVVxy=j=Y3U|4RMR1}z;F)RMCD$TgR&(m8KvdgW= zE_9A;Z}-iERUx~=ifq08WY?rMn=Wlw4MSdOMYq|0x~tQ4^@_IDV7tnS?Mmm^_IXBn zhey2wgFU^(lhkS}w%hGzYfQ_xj`ej*-rkJucrsrp~L;1 zM@EQMyw-~FJ@ymckS3g6c?ZWv>6hMhR+JrBdN&yp^l;~pw{z6nJJ|273hDJ$q#am- zFHMs^+BZBp*4ghJ?HwNI^T3O=;`=;Dh^>5s6?+HP4G#DB9P1-rv^H6hc3_EKad>dJ_sHcC94GKcCB?CeZz%Ui6tIxvAP&*3`U+e6IsA}gj2Ojc`inD%+V4;kqj zJweQOs})}dW~mijo!wIP2JAK~st(LeD|4t;W58Z)#npk$!}1)i^aFOg6;lT`4Qq3l zR%^gsV#U{iJwr>T&l~Zqbg30d2iDdlIW2mKXCKmjSzckq(t%}l$>G87v5~6KywZxM154`q(;e-trvu@RcAs8hyS00ezV+me zJjVPj*tC48{H*3Vwo=(r#Cc?(v%eo(=TM)S?93Nw}RE0Lv zyYdBb4fdFJ&H^sC6vTXKw9S9(tOPa}OJH6!UFOfh78TBE{*ofz8E>pQt+TL6Pqz9F zztdUzmle^^@zbg!fc#d9{5#GH;F=-Cod9q(kQlttUv@?DHx(y2F3ETqF4#<1VlmD zM50&}*&70aqRin))@~;%NAoF7Q0YW;&a>}IBe@)TR(5MJKdYa=J}bfY6#vWY zyHfIeP)weL)q#sWiz54UqFgZlTvmV}&VSCnD<#e^i-~hGFWhs^jwUHq4HCB%4R@MC zx%_`}C73DKv)d@Hk-iVj{~#to!jiD1C1~rA&S@BCElj3#H=a4YJ8wE)AiziV2Od;9YBxrNQ(>T>+1eiOGqu*jw=i-|^~i z{BAL+5EeQsKF!X~;T04#GEQ&aqK&I`;WPfAm^cV)e9bBju?ff!$7k}y@p&b${`$~OEyZD44VNM2zZ zJ|iY9!Wu5c@yhvF)P;XUOpt{2ORg#!a7EXut5F$&vY<)v<|!?Lny7GM$-X8^o)l*z z8&~Z6JUxTQs#5ZWvIa_V;!&D^Z4^bZq+c6VQYB~b<)^jNiN##(lR=o(y0x!jbKBr(t6$U+J#h2nipToTxgPyVkO!1)4 zAx}T(DQm(M5BePH)f)7aMPiEYXJ_sy6Bpf}tQu2%@{)5snV2_a8JXg{LMFG8FZ8-H z#br5aqR>pS&DTcdnU#fm8RGF>SJA2J4D)-KqO!SkqDVG{{c%S@E|` zwoOj#pJ-EBr_TmbYyevCc+RDE@Q1fT2E)>;Uz~zBYz12lukh<^9dCoeCF!rV$^ zzhcpuw`RmpANB`A7N#KFysM0%Fq1f+nqa-`h%pRr;S1|wfJ)FUtHRMRH$&jR27@=B z4+MuoS))KL=Kov#KxF)rEs@jVnAb1IV8Wz;1NgFn)ipDp%&>sU zxJC1>q)xO0Qo_ufj7o`q*NW&@b)wi4g@|ZFAncevk6Y3Fp-vNNK$f3Kh)+sB^zFMjLFj7@dm-w9$!uPl#wPJ*-bdowU0ezD8$yJvGygc50@V=}d2+ zW4gExCn9Q|9Xd~}f=Fb$$dg{5-8#>k2zid-R79=M5uN7&I-bkDGWK5fRuW@L-|)dZ zh3VT)rfvuOMmn%z=D13A^EjrF@w(JfUYEd?ltXqZTK{lX^(~BCdE#1|4Sc z4d>_i%O?J{@4 z^Ew_w(`?u%X9{$=GkOO*sIo&I)>*QR?_omK->pO=7O~@5hPH|7U44TCQhuRftUGO+ z>s@*UuaAVSjtX3L!+F;oY=ZgJGENo+)O`z~x+fDsi(s(0y3;pB`SEQz#TVVVeQtAm zKb`U$WjI`(67$D!m(-DM`8`G8zAHcV3B~o5&x-0wKR(5RXL8R)& z@U&N+5DV#P?%S@EdkCkp8&!4_q;4L7So~Z?C1dEPf>`Oy9f@6WOJAz3^FgD5|RIpF* z;M5(#q9Yhv_Yf*LF1sT*MLL49vk;+zrz59@rf8E0xO)O7lKFsrkcjlXSoZt9F`pci zqpr@!RCd(Ej(ON|m7M_pn$pk4)=gA84<&-G&PQMqHR@s2)H!yWqSARRG2!Zb9_Sn! zX;JCiA2{Xed>-f=8-x+*yfGxlVS2Y~Eq4z!%8q$sV>2RUFY!m>-sxz>pYVyry-hs! z*)+~SztOsa2wao5svuHU*#wiD-r5y#va$&RSqj*jjY#hp36CW#>UzwQ!8*qu~h z8`LhKU~4%dHRF+1NO3mW;_BH#&)6)FNY6N&L(Yc9T{T;%8Jhr7s#!iGc3BzBZjh2ZC%oY)KtF#nVX-U#)yg3$$#$m%HmcB5@wcAy3 zk&0hMr{bolataE?iw$U3!=f>hSJP>@8Db`o`P~MWYy_(6x+)e`@oVW+jE5PZVzIi( zu7*W5oTAe(4q~VR9&uM<+RVY%)2SE-u}=wzrI)yaSacA-kxs)nh@+82*wIj!>rNNB z(|<*$V(q4EV9LG3K|4*qnO4JaONY7MG-(R|1GE~3o0P7GX~*z`v>Jx1l&*$pHT*U@ z4eN;_KKDX2^;N64lk3>M6HTq-carPay%tTa<9E~Pcrk2?<){yIEEd3Yj}=uGQdzjN zOp*7}D%`J3MHRui@NTe6G}!e%S|vwiC;}LE3&YX6*$>ev86%p3SlHQXG;Tz*D5Ci= zwTc7bNjKm{8t{6APQ~be!Ig?YNbuUD>wwwefPI));eoKL@TyiQ`8zs=H~JDGhc7j| zt8~#S{ZTpvL$&QmcZH_)vp+_s-loZ*9EZ$n*9Rl@!Ty0x!wvDMXse_-hC|$I>K513 zKS8MF2y`+Q%i(jKY&)FnN9lBpv60hEiHfDxTc}$b>kuY~p5^XEsj@CgeVR`5D?#%< z$n%SP!;vs{y>fEdc6*jvOzWSeQ@GXuMX>AXTvu5M&L9z){EpT_<)vLk(IGw_mfx?3@yxl3i$~E|(pwl_-xzmH(ReP1y{xv$aH)vhu zg?3~n>$uxhSf~K#*Xi`#IGG3r9q%Eo#bi2CZi6L}220{TQIvqF3Q8_%NwAr5*t!drrYaBLbf9&Eev z;}(;w{0`9f=?tJbq{P@%G$2+B#l&}akHpLFrt}n@x*PpUy#0*WV4tIx=H@q99EAUf zP|bnxDTmeUI^#vo_>Tz{?1K$gtivup&7HK%p0s~Lr)(^u5eUPvNo5tkb3HTg@F8_g zo6%>_VsmG7iy8f=bT&|rEf9rxb|L>~bV_avDR@!aRdW@hEKk#^dGWLo^(o`FX%MiJkWXE>*?tm5E|m_^4nAFN{>L_))f{MrFvFL>*yI4 zEXqMiE}RY!vs-7u?#Q8*OMXAvbL~d^NiGl@x#AjJZ^^OYlZ#)m_E^Avj_bpT(Dd0> zFZiB;xYyen_Cp5>SuE{VocN|Z;{0HLT^$>mVYjMm*i#1Q88)f1DU~sm1ysgWc2YGn z-a^h$>syZR-R+1$bFJNTck!&0wEPs3v@%Z|=TdA)En60kC4aS;B)aG%vAIwZTEeZJDR=xsVnXPl6GEZqCkwk7CLy$(0}=jB5Jl!@KmWFv zU=CMLFj_vQkUMH382-mRX)N#v%^Ek;Nn=gHSi!_a+k|mB(9fF2Rbs-prFz1^#BJMz zaf>F5^f6+744My$iKd@UH0uiNL{EOSO*qH5p{3*tM|)S8(az6^iONGKstpCAGSUV~ zg!NX<%F;Kt`P;;VHAE+@!tkB8RNHr1f`3kvhhbR%oF|DjTKqbe?p6 znJ1lJi%DmcPCA8i60Th~3TMM$?wqt)duI%+t?*7@J8+avII9b0A?2*tF^rj$b0|+1 z-D0vhPA7{(CkGM-rtF%HbJD>$6O+XA=p<1%WFT8go)B~Rv^fh9RM4(O*^m_BG?;*NgF=tSW!|8ddSz#rU(T@}G{J78?I%o{_$fHN3=o#l*qs z#8G&-A^ZK_m`@JMQHMnGE-{e=t0$6BBIvA09upHuxOyUqB_^B|$uGr3GF?59_yeb$ z70LQrg_hPRok$8@%a9z0v18XflDp5kK};5LI$0DRLHVIrAKpqx_{8=aCTmTuK<*S1 z$SFF36dDI^yaZeKnCv_56XSn|j=#yqGo;vdeSyDIOaOP&3BbevLIJz3Z}5K+cUsV zMDT7p5fq-)YY|i*h(OFMo@Jl>KVtHDZ&l^tSD>GU-~|>F7je^=(DL}cs>&cLV_huU zayoAmlfgrDGB9zI1F^7uXKP+D2|Qe72?WBEcDaf7ib>!RItiG}jc~LS2nilB&oVc@ zOH3XguC6?wG?7E{cuY(le@7>e!qaD8B4lIw!82m~KT5~H@btwWn6zznSbbDzmHZeT z`@%57WKfR734>kJ;~p^q`~#f;3NM4lqtM2{F8asC=zpSm^dnFfK`f9u%ffI@OcamO ziNeHLI?a@*m@!yLL-V9zQvx@Gj7;daiwWk_bb=`?p8>lo9|T+D&}TP{*DmcEE&n7Y ziO!8k;9TQqD|Cx@z$rRyKpK0DMCXFx9Nu#h_ z8jJ=fJ8$!2ViI|bP9lZg6i5U+*9uLL7AuIcY`j2B7+<0jhRMd$xxUT(uf^o?IGsE$ zDo*osw5>7!yqHLypc9FSXW?|$U;bZWQu!L4R0_8wwl>A(%a7+)9$E$O1gbTBolY8s zK9{{MWBG1P9BIFt@5{a`Dz9^+n5e!thcb}BZnO8VYNJ;vQRu%oN%25;kh-gnqhtqQ!>q( zN;a-a>_|4qQMh1e&2RzRpt6lB+oZD1D%%3BdXTW(3 zr|wT#{R$7;=Yii)fjwzc1Q-+iYm<f5xUbd={^K>P)*=tAYkKuCVkM6n3)Rz7|2dE-T|GX<)F!VjbgEvJRW(!` z@`{$6akX52`=hONT3(ygvR=T_8<`f%NpKZizM?OtQ}pVrq8a3Hd!e+RyFkOfofL*9QQFSZzG>|XKYZxIMGnPf=i%IA&N-Wg(S?RTeSklVqdE+uPqeFfaHWdb1<^`bK+)=LNr^ z&)CmzF^?iswrTpz1_$jstL3d?FAOV ziZLfV#9Lp$yz-MgJ}pL?@Jwq{0cl$fw)ktrcoQD+Y$)Ju!#NLsM2t1ziO1>!)|DN5 z@UMyyCOiPhF>m`$0r;=QcoW9MbIjYWpg3RW6I!?l!^7(|^QMgv^BX}dnGi8QC?+Jr zU}>I^h$5zZGEYbWF(DC#4s~CEB7VqUl_#3lh>3S z6sB^cY!iwWWwZ5yfY~h*xJc6%8;VC$&`B+OuO*?MI3*WMR4@;hOF2$OncoFZ0=_&7 z{~A;mK}AVIvM;GB*#(uP)t0N*R8^@q_`IiN%E0m4t4eo4C7x5cn*A^-RkdKmF7OeK z*UyqtEu5U{VRG6{$o6a1WXpGKgSF4<%A@V)S=!TVzEWkn(wZ(i3&d)8i=AmbTTQhl z(TLj!jd;-{kqc$6Sh4EVVv1cuO0{SrhRdB~!}YSNQeEh$+yr!xaxGkR7Wyf@|L&@C zt@qQq|07jpyD%=+hE{BH@{w{aoSf%7<9l~^;+=T&;0SL!kf|VbOL9e8 zFt@=zbRww0wT_~yW$BV*>!k{czL|z;c;6IQLq)&Wx)?#l2bgm+G1l!VDpJJP447HD zDsJVauPNlJzN3B4s$XuXeiChlR`Vw>P|aUPtNC=L(Y|mwLw>2D_drKGt=3<8foi>@ zT3Rn-v{z5-AGkoZ-dz=~k3oI;{d1n1e{GSA|Vv{YB*P@Rk_gnLfD zoK;P!Q6;8OCcAB;rMfCdsZfG~)__}SxvtLP8da#t9-t+=HixX&t6+y0ua|Hh_R!MJ zUv-o-7;hwGdj~DsT;*zZ?43wZCP#&7>Ea?g1SJis;ZMAfmg+KtD)sdADq5aP4W7iF z!~?W6GwP&vBOapVi6e9*C{I*lgnojSDymeYNLY7EgoR*maq&^w)oF+x{xd4PPcn$|0FjZ70#-9}6GqO1u6)yY5@3h%<- zs1k~tqKrng($dClYg)q-IDowoN>~2?E!mA(vXQ7C_Nn^M1?s!@(j2VvtH zk9aligd_P5TFN;l?Tg4kCFY~lZ=Nh62<+1u2bTD&nIYkW)(`k@%a)h(d;0l zkNH1IOEtU43n?LLuj%Q^xZWu(d}#{m51aRNvO0dvT5&8c$0@J2)N#^n9-ePxrzNj1 zk_c0tO0KLH+n5rZ^!k`mQQO;c-H7e9Y&RGgFX@CEDyQ5N4cXZcz#yi54=rtzNjnsw zox)ySb;ekbopL}wSarrhB}~frVOqv(3kS0tZ}$^Msvf1KyRMKf`a-^b zC8)$HW3S(*C0u0BlYt;*fxBN+nXWH_cW%iF4%M9`-4qwC!4S$~@-(GAucT$Xrf>j5 zOK?K{Zl`5iG+bk1VXK!!NvrJ-|N4KF@y6p606-)Yb9T2zwCrBHV^Bj__iH zdl6oP@LGhwMtB>-2N51Y_!PpY5x#=(1i}vxoDAgo_ZiB0LA-T7(-A zZbY~RK|(lz@H_;D5I}eV!a0OjA^Zixg9v|(@G!y$5gtYO6vE>OUqSdj!VeIBf$&R! z1pm$|T^K7tD0~&dB?y-yv?FvNbRl#jj3A66_z@I@1i~qV^9V0Pcmu*45#EjP9)yn~ z{5`_IAbbJgTL|Aq_$k7FA^aZU{}7fo0W3qL z_afYfa6du{;q3_TK=?4iM-V=X@HvEkL-;zvj}iU@;Wr5Xi_qK*(1NfDVKc%t2s;sO zK)4a1A7KFDc7!_+!Uz$B7a`n(@M?tDAUufh*9Z?Id=TMLgij$nj_?(PA0Rx1@GFF8 z5f-%o)FZ4#Sch;0!j%Yn5%wV*LAV*=IKl~p00Kw28{zo~uRus5ycyvw2=7OD2;mb5 zpG5c)!j}=AMED-U(+JNX{1M?#2+J1(tU%a?a4|wF!gCQ0ARI*SAPgdS5$;5YAWS2? z2;m-tzd(33!dnp@MEC&0!w8>5cogBw2#+It58?X=&mjB);ZF#4O8{0NtVFmNVLQSu zgf@gugf4_(gb{=Z1Rp{aA%<`-!hHy@MYtc~Z3usZ@Cd?(5I&9Y8H6VgzKZY^!VeLi zMff#B{ZfDigmnn(5w1kI3Sl3@euSG5`VdYaJP&~*oJ4p&!V3_R2(LtV3&H~k4JEd!`WSc|X@;R=K+5%wbNLpXwPGs1C%69@qWj&L`^ z^ATQwkVJSh!dnpDkMIz}ClEe~@MVO@5x$S`1B729{0d>=a)3n$YY^5VT#j%B!XAXZ z2!|1lARI$Dj=&HC2xk%QMtC{GD-hm<@MeVfA-o^q9}zx*@Fj#VBYY3x`v|{4_$9)E z6#xqnRwJxIxD4TPgxv^x5PA^~BOFCIhA@S|5Y8Z+MNko5j__9qZ$kK6g!du*1HwNd z{42tj5S~Q%9>OySzd)#439tZR6~bzSOA#(Z=s?(w(1Xy6FotjxVG>~q;WWY-gc$@C z;V%*X3gNv7e~a*OgnvMI4B=l9zKifA!qW)PAp8lT4wfXo5@8j>B?y-yv?FvNbR+a2 zj3SI7C zmaPU@j<6MB8$vI_VT2Gu7~ypYuSa+k;Zq3zj__lIWorPIBV3Pg1HzpMGQwR5QG|OD z?nAgAA%*Y`gm)tRJ;KKj{uSX%2tP#l5yF2X{0~A4@ZpOQE=Jf6kl^w@LGhwNB9`RlL+5KSOou**CVV$SdVZu!ZiptAsj#$L>K}{@I71fhuwu=iXz;L za38{J5$;EL8^YfpJc95cgij-U2H^>WuOd8!@I!=OAv}w)a6P~xgsTvCAoL>)AjA<8 z2ya4oGs2??pF;R|gdZa;+W@c}VGqJygxe6t5nhaNFTy(!-i7c*gvSv62jMpe7jFdE zj?jm23&LFpQG^u2>kvMQ@b?JcLHI60{U(40gmnn(5w1kI3Sl3@euSG5`VdYaJP&~* zoJ4p&!V3_R2(LtV3&H~kA4GTr;d2O|NBB0vcMyJ#@HE1L%>WA#)*-A%*op8QgieGm zgfWDp2mu6+a1P;x2(LkSEyBAH-i`2&2%kXsD#F(g{uAM+2){@8KZIpqH+(t5#R%I0 z68!$Hx-s?QmkuKwML32qi7k)21 zxE=4BEmBWzd%@X3BX!}>k)21kP#*j z&Lg}G;cpS%hwvqYFC#pQ@N0zimjY}+xDMfZgmHx15nhCF55n6K-huE1gfAjIgYXN4 z)t3RRLD++^7vVU<354e(ya3?=gtsDm3gOcTKSKC-gr>^@nh~x+*oiQJ;6a!MfSv4u zI{d@$!Y`!|UWf4iA$%0!TL|Aq_yfWp5w>3ea0x;;LJz_u!W62)7~(Blr;f2nmE!2romJ zLHJ9Aze4z1g!du*Bf=*TzKrlV!VeIhLU3QLfDM36X7`sHz6EA7(^IC zkP#*jVhC}Bmm-`;cmu*45#EFFUWAV$`~$+55gteQA;OOkeuMD82upSVEJfIgunnON zp&g+cp$B0M;V8ls0z>$J#JvZcT~)O|PBJAk>AjapLP;obT4pBn5Rwok34w&7h~sUO znawn&q$o-gAIJ?4aL}iqfT98lg1{3g()2Haz6YW{u{;X|!n0t(r>N*}eb-+5oW0LJ z=iWOBzCV8aX3pK;wf5R;_j2~x4R{Y=58!IREr3q}?g#uk;2VIa051T32>2!7SAaJG ze+NujPB0m;7_bD;0B8iP1*`*{4LAqT2~dFd0xksX0bC8Z32-yu9>A9XPXfLM_#WW< zfL8$f0B->P0vJaPlNt|L09Xh(3a|oj9N>7sCctLEd4P8Tx&b|a_W|Ay*aNs4@Cm>t z35HZhqi+2k!B1ZW>;=3G7=Hx81V96z5%3PcxqyoR7Xxkud#{n+_UIJ9UjbIF5IpA=>M!+UOFQ5-_9pJ-&uK*qd z{5RmIfKjysqXCBk4g<6THUfG8y?|>0*8%PW+z;6lLr0M`Jn1$-9pIl#k!M*!aeJP+6hcopzBz?*=n^#s!ZhXalPoCsJA zI16w#pbO9qxD;?1;NyTB0AB*!3wRpv4B!`l7Xg0;yaAZlKrjh#FyIitv4G?w(-mqLe%cLq4DdMM$dv>~0aAc8V005f8Q@&NI|1(pTm)DG%1!v| zF2EN7j{+V8JPUXZ@CU%_fH}A0TrtVDgj3Tjs$E2oC(+o*ai4F;0C}WfUg3+4fqeh zPXPZ7_%+}+fHwhu2TVAcU?N}vU?JcrzzV=|fa3w10Gk2l0p11Z2J`^l2Y5eV58!IR zCjg%Wd;xGL;32@nfTsb^0A2w65U>yMD&S9mKLaX{As7Rg1(*$323QVQ1vnb80dOkd zT);a4-GCmzC4fr-9|jBqJ_GnH;LCsq0N(^W4fqk@$ADi0egpUi;Gkm(rU9k{4g)L$ ztO6VjXa#HpoCkOp-~vED;1a;4fNKHQ0d4_&3UCkLOMu4#PXL|+d#mO;8Cq0&pbYG{6=>KVSgx zF~G+Gj{zPByaLz9>7C@hXMZs_$6TW8iF~1b%6DNLBJ5; zQ-Dtcz6p35@H@co0SithSP0kvI2F(bxBzfH;3I&C01pFx4)_IN>{^0xfCfM#;4Hw| zfZc%i06q=474R(JIl#{VKL`94@H@ak>j*{xCIhAbY5t0bc;z33v$bFyLvxGk_NWKLqRp zybAae;Lm{SQwYWa<^kpdjsP49I0kSm;55J%Kn9Qn>;&urTm{GjZUWp4xEF9A;M;)z z0K5X&2N<=1U^HMJU_M|apb2mqU<;rVpaAa!ydQ8a;5xwVfI9$>1D*hU5Ac1!D}a4~ zHvoSDj60QJJYW%^2G9U#1grs^4A=_T2IvGRz-53B06q*D27DTDE8t$heSjwcUjsZ3 z_%7f@z)OHX0A2@_wGxyArU9k{mI4k2Gyoa_YXBz$wgR>RGJq^#05Ax+4DbQKhXKQY zPXlfR+zYr5@Fd`Cfad|<1-uA&3GfHN>wq$98&x@A8elrXka{+y8%%uUK{W!N1bhwf zJm9;47XdE;{s4F#P_~Jn954+q9k3K|FrWd@2v`F+8L$?rRCjwRjIsl!3YXR2*9s)cJcnPox9WfLg#d zz?p#EfcF4y1bhPUDBv-`F90tBD$XFN1S|tA2ebk<0(tY1sn`m2Urj21Smirum|u(z}*b3MQ*ai3`;3mN1 zfF}Si0rmo_-$5`IFb6OfupDqWU=`qKz$t(YfVTtQ0Z@SR0q+G|2*?BW06qcuB;YQ< z7Xgm~9s@iJcnRUJ;CR3ZfHMGF0qub8fC~Zd0}KPM z2Ydl=C*TRdlYk!pUI6?C@ETzBI|<4FGXb*z%K*y(M+1%lYy@lqybI6<=mT5;xD;?1 zU>I;c;5NYRfQJE(0GFlQ-Dtc?gQKpcna`Mz<&dN3ivJHcYx9FCMW|; z2h0F011tv|3pft21#mhb3&;U>0d@oOfIWbl0k;4i0DJ}TG~gM)j{!dc{1)&#Kqd9k zY7Ag5U>@K|z)^tX0Ve>?0Bi+x06GEh0lXKG2kZgd47dewH{c$?V}QpAhVtdzDLSZ% z&61zd^Z(u36C7J>>y(a-swPblM?NDql8;RVx7Qc^43D~#Ml%0*>Eqa1Tc`ftrSBke zqZ$P`6mS?|J>V2T2cQ#hCE!DVI{=>tJOlU^;8%cO114k$CIVIf-Uc`a@OHqZfXe`P z06q_RhG73atmfoM{Fo~{j=i$uxYmO@j_+vbIN{2U6E}CPzOv(_cLBcy{0cCNsZg5xsLe-H%E4>Txgj*!iRpJxacE zU@%KZ*N4@-N_wimQ}3|)(-aBn>P!!-^mP41XWX|Bs|#n)(}bN3^(%IE_B7O|Dav7W zStI>e9sOZ)z{>RY4D@yp@y6qbIG%~_Z`FgjfkAz(i`p`eNad-)UV4-5(fpVloqf4} zn040z`n{5FGU^y2vz{G|I61I8HP|t%4qZq;Ow^wc48Aj?j;9_iUln=QV)#_8k=5ylMkr3(kN-vK?k*t;-l%UqxoEVYZ)I(Z!PB&>8%yK10HrZ%9p0Fdn{)F$g)pmdLsmpj*eEkV8$U&ozMFNWG6NU$WH7G&=a-=K2-4! z`j2|4qr<-!(BBk%6#cVl^eEmHXuX)X1U8kA;tc@`?FMNyZv{~5_TcF~+^|!V$}Qlg z6K_;#DmHC-lGidRUMysi3|2A8F$d8)VQUqyU$#!>#mm+jUb$>Nk(Vtg&Mlyf;sr~R z>%&tyFIAGyJ=aT@A=92)<7Wa#Vcz=wDM8RYX4e$A9tB zKmLo4{_$UY^pF4IqksGtAN}LMu-TQL+?-okzp6dgoT_bZ$+YL%hxOK1Gqm&87yrdu zU;Gzueeqws^~Hbj)))W9TVMPaZ+-D!y!FL@@zxjr#amze7jJ#>U%d6jfAQ8A|HWHh z{16UC`U4~M{=L}nrDn4h(fAKj( z{)^8U@?RL`LB74IxxKl$xxKz2-O@-t$6>zwZL zU%bn~fAKB{|HZo;{1@+X@L#;k!GG~C2mi&p9Q+sWa`0cg%fWx~E(ia`yBz!%?{e^8 z3r;4(`7hq(;J0?~mxKS}T@L<>cRBbk-sRxGc$WizQLX6g z>FVssadoh}tQn{ugPpxSZP{FVYN!kEPHpGTYvxXOD(A?FrQ&84605Dz3<)=CE=?`fS2kebR%;gXE^u`IPGl`rZvpqN1HbB?U8XX;{#<|h3 z)Hx8c9p#1;^p8vBm@)b&9y5e@P^B)#;=*w&)qI>WU^dP@{tiCN{#= zCb+p=*aXg|3t~+OgNmCFa;w>-NOp@2b3I3fWVHiEOt(B64Lih>E3Vr3esnJq0$nltGDhlM8$8dg( zwAtK*>ed_0N4}~*cfn9+e=a*rqiJs4hx6qfxvoBH=oWbPI1#FgVD!95nqnwNdU}e> zRJEc0k^Mos@@1XbUGdGYp{lE3k>_PMxVV>H{#gBug05bgNSQV-UoqHwey)eCndha= zqN{6R&zwkVJ;LFhj$#s1LLF^={kiteU4d!pI*K!wU*hTXMbt-OUQJ?TMz!YEc^XR; z9H(Q}Wzu+1%$)BjwaMy67&tdJ9<5F@j_|Y;6`8E#>FXWn#8`qlc4Jw74E@-q%i3a3 zu_vZ(fsKn|Beb+@TCJzAG`aEA9rX6+aP9n1F0`~fg#lQ;jQ$z!sEwg*AUR%cIQtiFnXo89wB&nQ|=eUUN!G*7^4)p?XhbT3rj za4KfD5R$mKrSfH&u1<(dZ)j|3PSvk$O4qNfO{be1S0F%r6ZV!33?^_8puWYNjxG#z zWAq?E{U>vJ=xaT(90aKEfK$IdMK_YMt$ zyiC17kEs4LJl#xDKNi(HiOuAA#XD(P%_s)7h+?AuLKLI%ETFh+SnV~6bvs+oVxsQ@ zeN1O>+s;%cXTWSPX(mwplDYUi6s-o5A$gx`0@ZK8t)$N@33ZmIR>IWpz?_=t8)_Ta z*-2}hbXPZhe03L3d-B!2U0G@ZQ*@nmz8d2}{Wr}sJ$*46)a%e)b<)Aa=(mC_D0H_})mqLVr~zmp`<=xh|J#$mTNXmb%((x}FB7Sby!zv|(MAzp8|< z9;?4X!`G3af1|(Dn*_Q1qGag|nbkk6{sFOHQ_eylRWP~^x|BcL)}HI3FTki#-4w|b zT7NA?l-9VZ^EIMn5XH44F!ps?D`tyx`NNZqO?B-|?H*{ucRSknTMw!NN^oOIL`eaE z(HC7T1!G7-zB=91Na^X#>i%{(M@m0Hkju|qMSibu%+%MnG&DD-R;5>jR5jMfQnr*T zD^xWBvJ-fSpYH5Q4P-jGfm&F1V+?Za~urkxokZxSzQq*L~Rb=`z4fR}Y@1`Yp z^#s=4%jiey)n$pGm z!5_npF1Z*OwrXHusB+3sQt>fF)uiRJUAca*+*YLUGnHJw_;Cmcs8x`!;2{HfCOgleSpuJVZP_s*g43utPlY0^~8N46oi;rN|TaC{sd(CQM~v))G%Pi8k43~5?ucNnUA5c|QNd@`4|0^}3)LG*ETDavu`k_4(j zL|(WqIn+wI(>aLQFUwJeRh%VAy$7)tD$WjZ&Z=xnQ+-pauC~6mh4$~PrVafi@57Am zPW24YfK7jHN{?1L>6u2rbOSY2;I%twvD9ir-VYNNd75KsWf-moQB}~VL1}=1nay-h zUNfbhS8HuN*!>s8H`n7w85Mev8@P9-ClMix(;8%Kya%z&_hfudB@HbdTW5Jf!cf;j z=XkBc`E7wG5<{Bdk#qxkI<$_}0@g3{Ji13A7xnU_RlFSMB8L#T2*0Wu3cD!e(E4D{ zjyf6*rsxa5)RUK;pW98{^Zay6rinVP_V&icT)Ktk?lw=|1og9hj;zm{Ql#|W+LTjB z`LPB_#kjSRmD$Lm6bBJxJrz4R%wr!xRchERR^yhi% zHqX;yan4suK$Zk9)mF^))Pz)ZH;kAT)e9{;=wMGcnLAGF zb=N+XHX^2wu)UhB?uQvOqN?q{LyH<>v-PGFVsO2YA4Nx*Zl=i029>9kH=$TiJ?Qxc z+kMcfg9`h`<;v!SYY`jr5XC~<6TTt*#bq7cW3a?7D$%flMI}legH8e8_%#J3KL#}| zlfqt7OidNG`Z}zzE2tAtu!1_waWr1e4R#LFxdIHUrOI4R+R=r?l$1ESm5Fw_v8d|X zu(x2j@z`VP*lhJ* zh;OECOorCSM3)Xd%u`X2PA;OsNYq8znz+0R$?C^2#_>!vuyAfg*)%uPABYJ?2Qj5L zO0f&DgsB%{Siu79Fmd#R4x-tU!q`qH!g0GB9jIPK)J3`*n@Vx_(DG)nxT72=ZV6Pc z6_4AYmQm4kD=dxpywc;4xSC$dz2StgSb?Jch}ai;;&H4o)Lzh3*ovI>>a!Mpo)=7m-uf?+8WwJF`&I;PDqShp_Bi4YXM)edajIbtTj-_p+uHK!!{aslyC_k^MuBj=N z%Ve6{Q_VDoTDigsR~67*NgH*!9$M6ZU3zLY{RNdQ>HoFuySQ{x*@m1WANd#G#H|q0=cP{LK9+=Br2AA zDq>{RbZDdH+<_dO^G@g5X#+R#4J*o5p?{R5FZ6V}l4=&z&9)+n3t#SODIzdlw4~ap zHE_*SvnfW}RQ6OlB5DEbn&n5MHR|AHo{qx&@%_2(-W@smWN0TBKk3VL5%3Li*lJ1C zpqSu-2F37cI!@a?n4XxWB`-z7P=_IUyC6qJ3l?Fc<#1@Jr0Tocqehb^{RYKa;*sWc(t5VnTH)+O+`cE{c@yO4$OuRV z7Jij=>8hLkD?i$K?7KCFRBg1GoSN%pVw5p?{kHyG&aOgg9BlA?nn0Wq{%%H7dYt8V zM@dY}2Gc!qCtJt{hd49T?Dj9*WBGNjAbn~W8uTf;yYYvGiPYIvh}#k9p2BZ+iwMkF z*_5qq&ZU}j4Yj%UriQw(fCjC^gpG7aBK%!ljEr393C6Kzd#qsVD2-XpcouShTj0sW zkbK2v4=6BO>oz~De}UBrx?R$^!G4@ajO>uj_sp_s>ME$8%$EAUFZN^;h;uz+xDgd3 zY$6MX0qPpWy~q=drNw1N1jZOf`${mN9`$_%}8m#bZY*J8K#v<=buxsQ|0{23l{8^lui z#Xh}@j&J5@)X~?wv!0ezhSet^bsN3>M^gIu(jmT7x(kPfuw+St%Qk(iO5Fq>&GE_M zmbpwueu3jjIHN>w_iV~_Z%Xyhkx9HD5bUk{#DhJ(agyp**g)W&aplRxJ zkeO_$ixu~M=SiqL;5)pb7ZlVPUZi}|Di}%QSXnMV$x;;;UgK$r3aGm|;k2sD3qoe! z$&-r^>{LgB3Z_?c)t8Z8yroF#$yfAr=jfF&$=F$5)R~A|&xWwhnkiOtgr*)wf|ht% z5}5pkB&--k1z#(j?a9(nJGWrK`+6yXSKsM{I7@vjTRll;(P>3bcZ{I=I+74mMcZhf z*IlffZi!p1+EY;ASHA+}xat>e+uS;5+OBUQt|GO};a0OV+tNerVNLrk9i5A7l|rg| z7V+5WjfNFWZW_#TLtt2A4nvTkk}p|o;pbnklJV&n}vRRLpWhsN-TD^#e% zmltqRtiYtUfj-(dY#Z#AA)FbOLgvK^RMWm`itccslkvtd zRXFzozM34#y+}x*+>1~rw9$zoI?2$PZNp0hfhBt6<~PYMUCn?YGsB#7lIsM!NVQ9>>NZz8 z1fKT0l7OR*gsa2;ED}(lD~T{GaP|=I<|h^GSaRn3AiHLiq7if+Z=0~?@X-A7*>r3fPU`X49ZD zU%9h`UuL3rXFU5gUu}UAv%FAh2e4(Qj)IHmm3sQ{vc5M$`z%Fwdts;B7Zj>G6ME^j z{8Sfj`33H#pXfTS9rUI?jnKSk1HO7YJrlUw4nxHNMyPU>% zyy5IuY7SACvL(4)xy%l{_PUHN0=%D>e|$59q%LPO_$e$LTF6hZrl~6+GX@8i`#L$r z^!6kDfxGWggG2PvJCy>wxQ|y${1RZ~)K#3OKDvyKV$PSfX9uXo@sq{`buE*#Lw)ry zliIhgEVWRyB$V4p|HhSM=Bn#Cef+Kf393Ex7?+irpgs;ZvQj53rX`Rt^$Ekw_3R+U zDD1wIiHu-%Gm~lIOp}*&oZ3-KFRJdy_3NfDuF4BreHyZ326hk7AwEnp;;WSjSD)jk zItNmNgE$q;&1Rfw!ccdx`mJpnww|$eJp@oS;wrA8s5=9RlQ*1EOac^jcObEGb89gP zP}IGF#F|rz#sP}@_dw#LjYZ=CMSTSlRY=yl4eL$|&GOstfTJD`WVW8R#)>9hhB@j{ z$W))bVcptuHf&paG9uEYaIV*&ge3I@q{f{MnXTJaZ##2qC^z4ivuNt;T5`j>tsB;F zUcJ$dF-Fp&si!z~XK!13#wL;tBlJ@jaMUx9nbNklXJDv5x0Ocnxxo!R`n~Wa>6I&6 zvh=_9+Pe0}mim<|e46?X$WLrrjb+m_=nesDHMluggc8Y28>nm)%+)~z2>XXy~@x0C;!av#?y+TA77wZeHT$p)=_QcHjd7H=nlM^ zdj39or<>kB&sX7vI)1a57QPbnS>o!)I_>M|U7C}6v%4vXE*8L;;wK2en4%A7P^oo` z@rEm9_g)k=!QrVt+9t#VC7KY!onVq+hR))Kgx-+R-(fW@iY`5PcWtxHNz#Uf7oWkg(aF1N1p519PV%g;KElFnHZrOZM}fla@TxMseY78=XT6Zs97{gd>Lhuwcs}GS`@08e1p&>a9`MidA{B;O1pb6J z{TNs*Vsw*I)K-V6mN?SJ-lEcC>miV)DW9y2TUq0Kmsx5VB*xLj)pTe#wrs?B$0DmE zEO}$?GG#@aBrg`PfPCcuj}1^F@|EqW?#`~=bZ{1L#8baXul*19X6W)r8VG0UluScQ zQ@W+TC6!4xHLVaqRR=X=sJrUPWpppbOAF=b;q?tSG~4i`4PP}woNhU_4#C^EOw8~k znW~Oqv3{CSabZT3Ja?um8HUADa-Eo9ji`b~x$z8F*0Nf4{-qSKMG zqQmJNlcpYuOZ%I(O}$O;oXUc1Ow(qFV@O_M(QLl08s#kep~r8YtN1R9SZztX#91q8F1g`S+t zQrjR}(KFcFfz=vprw{5I=4dA8$!eN9n`Jr%F$*Ob9tS21X`VV4LcU6~C?=h3Rofc8 ze7g?0D)Xy3o*4m0rJ%IBZBy#}-0Ex=Da-Y%q7Dn~id;Gpx>#Q<;+I{E zt1g2-rUYdnP@)5tBst1cQHg<7PcKC-_1N!fgrTlLlqRjtkBMn@SYx%dW+LpT&k9$2 ztjN~j(lI(&M=e%TOopPaft-|`H8dNN^>()g>o#J5+H-0nk_webs}I|jg#9e_nvk~} ztwiHQN_`Zn#0^_bpZjn0quu8w`Gp144VH>CO#jO&czyK*3XW^`v};*FeG)39mT;Sm z%!dlP!62dBXqvjkiu@$gfpg?76e1mXlKm{8ZiNcTAH3=yojEI6M`6kNA#C+IOT+50 zPiGCM7SteYbq6#|)-Kta8{DQZ{o(q@T6FzeoZt&fLfr{XQYAJFoQ2)$(3wfa!4TEm zke-vSTa{XsTUm?G2+%hKaNR?29#iV%R5~y~SKL#13j@`?kY4IbCsE7Y9pxFGB!{an zL+!*cLhIK>o=7YW?|`9dgiVSkXSSXnMr4yiEza+YJ+TC0)s7TybCG2tT;H0n;&*H4 zPz+V@Idu75ZK|QYJwq>YrrT556#-v84g)Ib8B~lx`0`hD^)#T2lLJqE-AL&=ELV8O z^1)C~5ub0AC6_=q-Dc_OX2nl~h);R&(tr0LUZ0D8(?j19Mmvt*0vX@;;NcIw2b)WE z536s}uh?LSdgF>x(S zl%ip^-tOcEl+9zV!sk!OJUql@LwkFdK9Qyw3SSc;IusB+`c;t?-Ev^!MN$_NY>wZ4 z1)H$5J!#5YK0>P=MfeOaoX=fQ?2lnnPT>1)0ONjQTYm3Q6D%tJjzml~DKb)s(a2BI@Coeg`>x zONG*fI4C7?WK6TvAHcoAq=am(qj@y_Q%}V@Rw~ntb9j(?Of36fJp74(DuN#mZB3K9 zVf6-Bd!r(S6N9M!3b_fh#MN}72?o+X^}{0TTSAdB4akqqU~=P2Adfo8 z$Wa%N#JQG)8cn~%rfaZYiDfQGEYYCMGg*AbG#5Och|(lWSkaT28PtsO)alvOo> zevY#c4o4B60DEnU?-1I%HYIWvw)^DZ?D)CX*8 ztWs*&=YaWRF`Jh-s&P+9H=Q{_aq(l|(|_FSp9U}tPU`bBpau2=~zOXEr6Qfv0S?VyDLN75#G#8U7>mSlbi`WGd>Czzb zL9UHfm8c)WDjs&f=voj@G33+{h;(cl{cWv2vgt>{^rHx99Pi0m0;)Dt5iUTMs6rMY z8=zuldSz-=)5?b0`b;*LZD>lbXy-mr{e&7Gs>oib?)cQt5L}L>dJOgS?k#PUMRakv zYC%L*eO;+RI+M{&d>Z#gnL(&J25kOpkDNH5Ew+eSvak(->Uix1&P*CZVL_7akc!gv zkeb8QYDi2De+e=G+mn%KJeE2+Ds6mUSXvyuo}|@%)aa3wzOTqWIuN!292_6EmB`9b=Op*{dHv#v4Q(9qPps-3Pp$+p+EuSn;%(-(!+Ch%?#c(Xm;04*N# z_o+?;^IOc!mvs+pr{TjikKIet-qS&Rjfv_E`kRdOcRr)$s6*&ASHBg=c`B39o&~P+sNQ|qqr=33CcrKXdF*85iQ^#ZR^FVpOro=d6 zsJlDWPklfe(Wnl0bn-&!j8t6%q25U}z%gR(seSIob-;{30 zJ-&XUbmvBj6>sU}E8046e-AApo<&aYwO+qdIcTf#w8itvo%bR5GJQ{yDM~@@IMHJL zG~eUb%@y1jZ(!VY6Bw|R@JrdP#?wNSaQQvzpRs<2G z1`*#pPt2qEnlYZhcp%UW-x=LJ*w|H2cStG2(32{uc8wnsk4!IwGNV5HCDHVd;`>@( zj_ z=)#-S6JSF0$Aw<1;#huiNDmDl=n^;8&u`_6l>OU+B-J*__o`c@*|EB;ehQBEEkVo{ zVG>3d+0N}`oH;$ejAsrCuTj&{0s2&D{mND8#@dyu+FP2MT2@2_)MpXVY>#IaRn&Jd zfU4SIp3x}r8pQMTJ1tvzf&o+Ap_34`AXsft--qhy`rtjSn&mRM@wmOKmk&GBG4>tQ zu^-|^5X)D0A+qWnf%3r4U@3=gTfv-fuBR{*QePr1Y72cknJU5{{X?fI8`_)cL$%Fx z7OrV!{mO=wEBaH}&J=A;s{26(i^!0PBWH8l>0knpzYOw6nVcWBixM{7Q#^oC&{x2F zP%C|q{*EJNdP(8KApWEl^NV6L;7^E{pO z@_(v_iX~moroIM#r_GPCfvx@jz|1p~-q)rv4os$Dm!}@uY4-dS`1cgnOo^j=WS;@^ zyM>vQIAVSq%s&-oQtZV1PcY}!SibeMl|F_%teyk$xWYu75Kzy9_->o%dureUT18gh z1M@PQ>BpT)Q%U(R5I<)VeUFuWN&XgYK{}fV3TT<$0^h=x=eH6WWh)#F%^xzi| zONkhYkNPHy`R<{6Er!)gV0_T0`%WS{tzf)N{Gny)^DM!|lcp7ZLej{iebD_MzHYxb zckJ%#C4v8ez#nYYK9yR?URpo<6{s_pSY!`nN-J#`42G9v6+6_h}m67i=X{OeQ#kZETyKS z4Af5+rlS3(=BNVH$BR&P8#e~jmx@qzBUcUTn1d}>`N`UzqABUH8VBm(Hr20mxqiyq z2_SB=iGH3Ek&4+QF#Bw#A3GXEQaT0HVVmkJB}Wl+8kk=$%p^Y%a|W0{EX*V~5px!p zZ`w@XP&BhdodaskA(lsHc?}5Ha^lVdca6>U)n=%g6LkTo?S-kG13efNECO{;F)I6N zF{qCm4r7<8bdDYd0s5m|^D=Z~ynbc6t})$6pN6kZtr+O+rmyE_vyD{cmqK*!$V3N* z(hxlaqT`PkQLNoVT@XDCq75Sx&35j9=yHg@!xq)aoFAV|lskwW0kMmGu>|k*ma%#R#Y|+7sVG7WOAy%KSksHQ=sGK{m?-vH#$y*j;HrS2a2oMu@O36-wz$+ z3!`H*bSzw9WgxO$Tu~G63bZLkehcK+CCD#|m#1dJh@S!Ro{@=D+hoMILHr}OI9Hnc z!jhk00@WO&<1FZSjCIIRd2YPfdQNi==r5K)*YlNkfL{4F_*b+iR45rTzZ3lBHb21{ zbf|ReD(D++dV+cxJiiF(^oCb{Z@*rBD1rFOAc z55!toO!70qHl9=Wf!$LAn}yz!C{nAF$ZTmVgaQ{>5S^TLLyL`4HF>OseU)Tn^`H^?9NE!bJCIqS|9gH`JFX zZHVd`OS-ACL}^1*9~Notr4poVqWXv>Z44@yZtY%4_s1-0V^C3PLsU0HdMrv|Z+F{} zE{XGeSBK&1CPzY-fn*7kf=@XTx*Q}+pd@?-5>-g1vB|F;L8!XTVkebJ&4x9fx7bN# zQnO*nU0{!af6Nz6f;kYK9f@@mi0U55RYQ*c&mVoKs}J-6P#pTA8`kg-6>wUTj@6>Y z)P2x1j+X7AD&47Xvf`J)Lsy!Rn3T(rAe4 zG02S_q&2>t?L(Lh&=fIWMxQsKv~_fDrxgi(TZf<5mW+CmQ<$bNLF`D8Dt#Cp_q6tP zq(~70uvX|bvs0M-T&G{d2o9da=*q?6qQoHqzKjh1cBz6o{+Bn>esMsylAk0Ti{8= zkjhmr?Gs@whR+7**8paClFU-SM^xiPi}lldkMDD;=z2MNSAbtu6=(Sl4LIsgh{|{~ z@^hm9B0RifsJB|>BkvOLLeE^6sQ!k?r%M{*!Vd8?6d?OKC$DaOtlP>t`?tiLvq@A( zX~`rkY3fy2y~wjHmNwm^Q8F<&(#5!13*k3aIY4UXdi*HE*JvL)!Fdx=$~*OA3n>j5 zenHf`)nA~>lpm{2uzs1BV5LQwf$Yo-_0v6CbkhY_);4~DC4ZXh8H=PJ{ZlksFBd+0G2U&Z`5} zYzQy#gkwl^Jd%GJMMp6~q|JfQ`G{koCmzR&O9q|bu|G;@5}D%OFAdRhvx{Xzt-Jk))In?)9Oe@mzWE-79ypDy}`t2q3vfZ~u;jd;v)65Esd zLxgj^h`x;+$w(c&U*s(TwHonH3KWYT{c}yS z0S=F*PdFT8-MCTJ~lU|$wQ@ty6WaP&LM@Cq_Zt4;vpF{{cL;btT zAkGB!fwX4DsgHhs)u=b0Q{7%ry~7$qmt(7eUTcJoQ`Iz!_B>{Y>U?O|9kBabLM!Kz zs@wZ%;l_`WUYP8q6D4uQFO*Pyh+7xG=&uRIFG{P(4t4kGcN2L+qLb?n05nbQK!kb# zVE^K`hFlbFN(CJZqVupfq|>Z&jb`Y%=r}TI~*Tg5v z<5dmpO!Z|_d;_6GI>!?YIO=+xSBNt5V@zJfuqtRM$Q`@H<>!?qsE>z^w14p(!pXNO zRY*-cU6x8kJ~2fBN8J>rDDq=MiXyBrodc2b=NENDQMV$p@ocjD+XBz$F(isAQV!#y zl0tR69hLoCVpKMXqSEV#fe+)N(iC-<9hLoCVpKMXqT-X-VRpqur77xOJ1YCP#Hef% zrwTh}MN-9^Y7f{^rMkl35~H$76xBdqiodcTg)lBvnxY=Dqq2WXjLIe5RdUOow`s;~q#j`cb}&G#gH&UBB% zqv$`t)GDTj&%P5Q1V2K1B||+2rIT64|9!D%NCMHfnC577SSz$Rd`_@9B*a-vp=N32 z8QbFM?}-*iiDmfeP|%?H_VY)H_MwPrkB83*_J@R-p4a4UtE*u7SazZP%RGGUV3D;5w6;{hw*MgxYAWGY{;jaZ<8`4m4WVxzP!C{J;is9I1Z?@+dLs7G$5wfKIxnP7A4-v}ZRG}2=Ri*jS2(6zBMriSnfBM5z5?^fo zfuR;h^Dq3hVE%=)YTaNAcJUU=+?DD2Tz!3QW+e?!nrbtvR)oRoP((Ji4NF&bVVYph(=JEIS+UU;N9i3U8$1cl{ZSTx=W!v~tQdu5f~N*Rk#!7(5{ zzpfAUsuj?(zMz)yjB%otbD(7dwD`Fuwpho612y5{Vs$Arv_ivjFEwfU1XBlHAc1c* z)4LiwsI&xLxC3&VNKQRNe^Du2=84l)t2n8BuI^IK3+5Tl!knCOo|QyaTVPu$%Hi}j zDh7H3hrS*&*g-X)ZbtG|YpU8>s%q4*P_^1da@0Mdz@b9qg1L)sd~}u!7HYh z^Uc)^)n2MbJ*Ox(} zt8S7~JpjGUI3ucD^VJ2=?)M~7wtR{{@Wadmf*ORr;%=b3cCD>BZK9WcCaImJX_Su@ zNX~n@^j8Yr16{>i8@ghmBgNmelGdgg%PRUe{V8xd1!(qwy($B%_^3trLaX_fbvkIZ=iV`*H(S$ynUZ22k&c@{{6GidPHKA5I8LCvdw5myfD|~Tnts+4(-XKhd_k>pzk~v96iKw)fYo{%bu3soAjWNA-G^N~G z{}|f*g@8zQTYdFpFG&3qI{fK(gc#FP&rYPMUqEMa6VlmGU$~nNS`UY*_LihJwu_Ex zln#1dNg89j=cq>MoPSx8#@Mbos!=-T-#}w>28oLjyX7F8Jfiv?G$)VJM1UHrgf2N4 ztNBdzdTD-$>yAA?=+5|0C25Rw#Zg_-5&xwmU6F1$s!KZIH=!$e#LT`)?1F>Ab4XJM z4Uxj+7M__!y5FF+u*j+mdXrmxrbfHopvAXCRV6ePNpf7b>!wzBy45A(a>EMQ5{u^(%4=!qE9-}+EVnz_Ms7d z(uFpZqA#`wjp&mOvm(@DiH;Mgcu!0}usa4Qhpkrpe$-QUTF-M8&*pfUD*LOxe zpu5f!O3@eTIU|~+<2xqDi{Vwa`?cX(gv5_L^bMH7s=s)D`HGh*+f03|rlR zt6HJ8Kvzu6Xpb3oyg;VN+&-J zQJoE?HOWmUoND)!lY+KWLex8oC(Z3Aouuh*^1R|!IK8A}1$UC~EUGaN!w6<*7jUauD>(WmZ5Ky4Ybial=$!kU1a<|y5V8$`mG!3*v#hMY!1(A zJWf`YrRX3{zG@BlC+FISKRmqr41{)^s&>G@iZmT(=aV5-=jV3sq=^qdl&5>M_}H}C z1yc3uo}SeMd{L2+SNtA6hn8=q4;%%G^P}lC;C%UJe8Gga(gvw~FsouK-8vi4(jBdv z4jz>sOIvMiz3uJPQVqA3=f~1l7U<|t4?Zf1;E8y)DOE%1{Mb}aPw${yDyvn~=K)Xa z3oR(`%C*zV{uN}pPOQ3${#5I5M0OAU(q?a@7gvmswntq@p{--phv^@RUk&4N9K|`B z&Ok~sPU;*ytv?XUSM<|`8Wb6;tX@4xH)y1X=&lUor;ggF9r;m2XESah_3Q^7??gA= zNfd8+iWHJJ*KEOApb~_p4;4rW0&6$Z6@i`jvd(bpC@b=EH*%t;@)NT;x+j{xI@BMW z$GVM7mICA@Ox;O=j*&}7>6DGq%IT3kI(jIr?jml!YIE;d+fsNHvlKDPh*W+Yzt=;T zQ>6Hnaqagpc)5oT%Y|M)m2;a)H{YMTnG(8GY?-2Mp+~l5Dk-%>5Axig9w1ApBB1o7 zhVqrVk_8n^y(jd@sp>I!;C)))BK^-L{LeD=0s2=;BUhbB>CBg(lB43N{csI&$*2Y~ zS@MP+*<`8&>Uv_RkA^Bgj^~I1@mB$AHN<-S8m_uJW7nHFa^zbtBS|!o*hw@LNuo_T&?Fx1CXpW9B<_tSF+qU)VLx!Tv=sRzW zK$?kYN9nasMqFA96QA8;7>cCUrf{oYy?SVSWMr&Y$3|9c*19RDM>pl(=qW*fMo)S+ z&&HLl&RUCHZpYj@D(G*Gu9><>n8>N0p;p5LiUX`bGn`U~P(AWSQf7o9BPmPH9Z8*C zbR^{sg}B^c5kw*-E7yzvWMWK@>^}@9M>3vip_Byk7`u(l&)N6r@ZK9fx$i@lzH;eT zUcUbBxN*xVZYI(r8*v!>F*#73X~#OUa`fCQ$O) zXrn+UuM1Cp?hHD0iPGfFEM2@z-k_GTjouVJK>#BXZlc2Bx?xHovkZ0%*?C0^SxLin zsx!PuEIlYavbVAP5*@DN%d>j8UNA#FXPGFZOEXbW79=<;L7>JsizRrAsVcj%hJ)ue}p_xYC|y1J&eX79rn@BQ3WG}@Z zUb#N6MQb+W?ew5U+UV9KdSpj$<5HR&_!bZ1Ho4hNk3n`vhBH#q69h&!h%-v01ejQ5 z5NATA2wI_L5a+Zeb{iH>JB*S;bd5Ahma}_J;6g9ZjF_lM8IrUVmWHD1uVr*`th>~` z+0AWwWItoIbpMvRjlu~!2}a>WQg}d1-A1oeB%>FdE*A)IsXIYH_pBx`VkH7=3pcUe zz{#kZ>n3=iF)SQ-OG!--SV{tSQ~S+p?1m$GOplx`;1t=7^!#j0Qdh=ZZ$DtPdEa3owmn-DE-| zQBr8I_ET)a98FeOCZr6WF3FOy3q5kOFk6%cEz|435N=RSpe)B(fmVZRNHXWLNa|mM;h~;cM6C%O zE0ygGajfW~M|SK4N*ym*y`@B%$@wwS{U>dVndPJ#fA zEto?D4~6AfpHNU=rC+dCTQ9N6NPr$WHX5&>u`;1@Ji$tw(JaRks@HF$51TtjfZP)b ztvjh_*{>4{%3Fr&6Pv~5^vE{v|M>)?aI!8tMj?8+0~)j$z0wmHy+Om^4cZa}sMb?v zn81jY2&ApJU|?Wq5$~XJDKd7-mv8CM?QjRk7r4Hr#{=}WQ7EY}3J=)VMz8qV=uP%@ zf`In535-}7^|hgiuT7+-__|^Zjn5(nZ~9$l(<3`O7^;rAu{8=M8Ajm&JKN|LXB)lA z&Q1`}&NhJ&E2GXfG;y|xv=nDoZ=~ahF%BPa9Zrwza12-WZ~A8xN>Yr%19rI4D-Jh$ zlO3KQpdD@kBUVNoZfN3g6KN?9uiQf0ozdergRZyfk-a^3zrAe~N;-_f1NOGjE8aGG zlf9iFpuKGZBUVPeZD`_c6KM(FR^d{sjBbZqPt&8@kc@0ZVzfyDj5fGAeib!AfR%h1!5PGG-KHE*F=emaYa6H{36VAY6&y0BMaTkikvOq8tbv=&tiNeYfdidn5F*c^K5+3dSc1F~Q!RT1G(mtG zzPO_fUWqc|vKndPL&s#c?F~gzYg7ESnUSUT{cdXM(M_#4J4_Iu-U_LWUkWiY(&3v( z?A>@nktEub15M&ZZW8IyO=3Elp$P(##Df0ya@XjRq?^ctEz%2v$Yt>=L12kh91KN# zWpsj4Z0UAn#$W6H2LssZW zI}oq@e86pQ=+SL&Lgz{ONf0Qt{1|a5KPEoA{1}R))}}=FAV$_gT<)fo9^JHhQ>O$0 zY%`RwgJGnluQbtNW3_dY36w-yfzFz`cb>_N#ATjj$+`2S$#2b3lYbGH$#jn%*=0CN z5It(b#eV-*N=z*C^_b1XfH1Ock4lw~F`Vx?V;4Mnn?9@$+) zd5h*r&A~kB<$t|y@8zGd=Sg(#C2^7z&SI``D*-*SiEBBD$$?&H{Qz~R@-89g(Ie2xl*i>j*=ePs*%l9j1rlt7$q`OF`!`iV>Hp zXyUVHDuyDdwJ9SUmU*eY%1tdjx~cVs@d*M2XDUWUhU+F0d!}M2l0=(wph?WTNu)28~_(OeI0U znyHMXhPTK`8>2){+?!abGsFAg_bx|8QDn3k>o*+Q2UP&_*BQ9mc z#Am;iVJMPni((fesY6!iNIMYE7uUM&4L!Q;O<3h+rjj5)qxX`0VZ>$4+r)>%S*FD> z6iKa3Ik1_^b#7Ye(M_v2Q%Mjgai(IVrLQ#6>6wZNltfyAg=Z>eEG#n>OU|9C99ndy z;!QQUY`AY;42#EPLx&#OV;C*GHE&*AhmkjLNzf7Uy_f&{%U51Z8w`6d|G?gdZwmGp zUcUCr4dMdnGw6|B5cKw8=PfQs z5C}Hiy|HD2fb@I&XRUOC#@b-jAdEa>ZA8Fc7)Y>>D5glh#ii~>ak-r3qepf*4Yu`o zDcl&6L?j4cL@le~C6qd&L>633tOx5-XF?-3QRqLV)P2G&b@b?#I?n|O0%&O><8m2c zBnV)oyV${DZ+K&LiR+BDa1KZAmAV80dV3}qpBReNJEM~*rqoeeU~)woLYri@6n^Mi zTwp)xHk0(|Hj`fZ69h)qOd2K9Oqy7wnKYr&Oj@D;lmdH`TVUzYEwG*o5(I)~GHh3+ zz$OUnS2JmJNvmh94VuX?a%o`_1ng$gP^7>bo&UUM@@BW0q{kx7WP-rRnn|NX>bi+l znn@EX&7>9jPbqb`xTTIB-BRZ@lL-PrGwDrA69jnWp~(9cUNdQQ9jur1jkU{6GwGGO z1c9ThX3|ik)ES*bv6@MfE7B0!Bx)v2OW}vU#m(fW+-8y<-Dc9utpouqoRr?L8zr(D zVq(Qo2PNKwN;7GNngTnb^|O(U);=u`k%=EYvO{o^kNZu}AqfIl7-oTRZY}Lrf&fn2 zi3jzut@TA-db942GAd>1-xw_ofC-Hx$r>jWTwNHM|85ok$qpYqvj5PH#``ZpfEL!G z{*z88K>!^E?;NrB%C-)rgZJwqXLDM^x5A7rc^Ai6OC1E2LlYQDiq(4%$v9UkyQRUZ z?50FZb+$+cyo~i3@wcd^NA`EH4-$6r;=Tldf;$67MwZ7-B=*jLp+xKerO4dxipY5f zuZ{k!n?!nalNh$qlEegof=M(ol0*}UokT;CB-)e%P2%U=B+{ds#IV(oBqj*RZdUwB zG$SL+awZbARAvRzP$Y>KrSRgMSuT^sIZMu6oNIVX7UymkZ^=?BJ+im(7VKNIIJZ=; zZ>X!G1Hdoec%^krIKTIr&+fhAV>Pwm7Wf@*=FuaYQ^$=+a$wP(ylBPvyhJP=B|UP) zBU>#qN@TUnD3R4N6B>ykVYSRT0%`S6MvDwkO&ru@QwwSWWqHjCv|3O@l7eZGin?)R z{nr;!Al^vGVL-Kzb3)6yuE6%(WIfG^rH zdZi8k7wz2ZW-&c-76)%H7wqG`UcqRSI$*Q~b0)8$OAw&Zc64eP_I5@_M%yM5 z%AU|gh9fSrIR}O3A!9FYjkYCWt&pDVK5?1cbwiKrGVIutzEES7NL@Bcct@gjlL?JP zfpfNcD|Ok3o5b+e7fHtbk_;I%&?6@Udwr6OIrdqls9U@nbc{Zk=NWx+gN_M}#J1lz z=oo!+RNus=Uz9X~awO9Vv>Hl7lJy0PH1ZpC{#|@2y6BO8S>g>kMp{}gBTcOrHAW^d zq8d$`KR1qMQdo9ncKc=5P^4wgs!hOrs09iit4X1I1FWh1Yx z?e7gbM(^8Py|tt_zUNC2SjovZfe|YyFgi##Oc|tGj&cX-Clno|d!y`_LqiWrp2=XB z9y!l&M)0j!muPIWr%Xmhcfbzvz+Owx0tZqfIt5C0Pc$dl9un81jY2ps9~->8z|zcDO%_@5x)4F3&Bve+mE=YYqyk4l!yz>^+1 z%SSf0HAMyEUeGC3#(&?33xujFi#0pSzk4Ve_s zBYQ)yTbe+L#R_zXVz&jmTvR=yQF=2}Gm?-_$c!Yg$I0U*Z-$y6fO8CybxXsPAyJ&c zBeS(f+#{C?(j&WPw6WE@R4_q+8tf7-73`JRWK)(NIX2$gYu#i*57OgID{+xa1uM_W zW#}U|3Ew>Y%zLOC-oG0K?_S{c;H_iyS-X}OB*BjmXOLs;$IzAMVj_=#o z?Z$J_VjjrA-e}dcX=6c9x1$SM@pP)T9jzwFO$&mo3kVI#btYPdVxxv9qS;dAWJ{IK zmf*Uuk!6GE(ydXe=t8R=TUUv|*X_G>Iw0YsG}b+Yb#GEQS5`lT|8 zeyq81K7T#(^~u&)I!^E$P}?F}^>!4+!C4UOMtN;ZES-j%)V9RhhakIc5t5W1i4Mb6 z=fb$~OPH?(J^IK$k=HswXP_R-(G#Z)?Phc{kF!4Z8iay1_s8hLxNhh{jEPWhFq;T* z>3w{TihVA9#ewFiXszSk*%(o8jPP8-xOs~mkGL=A4gfU=eiz9KAvSJ9u|$B|8>+Z>%|`jKvm5=OK+ z>o4#YESk}!q1K7IF6a?7J#k$K)+D@EK9)}X1(t^S>|gnsR9BZd{I@J$-cH}NE%Is8 z@H^^KT_h4cH#9b3pn>X=AKTV8(D|NRZ+lyt+iu2+(Q3c>8tz3Tecmv&NU=m*w;(66 z48e5@2nXuzNshNCMZE2e9%AX#P{qCT8VZXSMOc6HrB&j>L06N?SnVJjXeuW=shk{1 zr8gRkrN!Rt!Ku&IsZJ`VMpEfbvtsFz%5m=v?v|NIe-=4I6m@}U78i&iNFn!} zpT*9B-OeAb##r9;pN+b&P<*eiuE@)^8cyOg#yiN4cYt!PTOZeQq*9J=@ z`fQkq1pPfHGHipTSj5s>xMz+vmx59%X#9lYdUO>km-&V0q5*%nm18JU5JO7Q{jiaZfMz;=oEhnWfzs z%wBuY0N5>dEFJEY7CUISVu{ofQ1X(3-r|BXTc=D`C1&fC(Ktmn(_TS|rDGH;M`w0Z zZ@8aDLsU!U5le8L4R;t`(TJrVp^HYWl@yj#Z-sx9p0r5R4Nkokij;tm5+2Vm1yZVZ zNGZA)GrP=`AH4zDI!9-UXquxl1-pg&F{>0^dUcyL2i*$0b!OzavWeQI^P;IY&KOaZ zx)ak$yN-xmvK}CI1ua36T`nE9U8>Z`njwjNna*&D9A{G4DPA`dORq!u2x@X{agSGv#d!=JH#yM=aS6js>mwuu#YAr^tpGCgxml3k?AkJHFjPOQwVuVXS zo!hur`S#);TS>quw)Q!p&lE+eZgZXLHdj}Xaioc>+lX?^E9RnGMs=ba zRT()J*-(k)Vl=~L=vL%Z@$5>nK-R6qf?&4cEs=>4E}b^1sY{Br4?(r+z}f;)toJ4< z8g8S^)?~bsTyEG9Ec3QP!`4*>I})2zeu)h;lY-SC$*;A#E{d8u$yt@;SC`&|8A#BE z#JT}1jCWJk;{>$H0V(qmCm8!b*7;g+KuFv(XbbY|dq5K3%*%*na_T>I()caOK8di51J&S5T~SjVqQUsjS((h(s)2Ud($f6I(lG=Jx(-UTJ$Y#jUcqV=SxLV{r3a9)YALAjlvn12 zGUW{wx>H^r@fMu&MrW;xy@Uoe_!xcbLhUEn`&+2}LRbOEKDSR11i!OKmDHLfzLQ1h-Ge5p3x3evi>Puxh z2X{N4-D|CJ%6pA=8oaO{!&T8Gi=d(lYn(j7@iswX=`@O@8Z)AP+pEK(c(HEX#SW~y zvmM@SB$kdoh3jxQ(sHWtX!9*u<3ZWRlGteUNKJmMW(+KYPC*!wrJ-=qnPQ}ARnsms z10yNki=EoASZ6FUBkn~BCuzZ3E3KkKzmh;t+_y{lj@56KZ+~4o*<@)l>{ttD$^3}FDy0eM`aRS z(y5BBU~=zOrdWFX+%GvFr09q)8NW-^bgx&mLX50u6|G0=S}9stRzV+`kEGFFUlv|>vi<8bhHsn zzjk`0;f$rzU_TfS@0YR7y4Z_zk1?@(%M}v4OUJZ7T5H3`M{2D|p5#PysxzF9O&U%W z1pSdPq~eIRU=$mwMa^3u?T-$2`lEw&6+$sD)*l6LLA8ns88C|qyiY?VFIGJ^OfI2e ztACBF;Y%AQy66Oq)h~!j@kK~E;4RxjoYv$J?TTQI5f%yQRbuHhL5tgT_uMYRvb!d6 zp_?`xWUO`&{0@9%1^-Ydm4`-B8IHmvm9g}MqXphzM}%b{E^*P{|}m zCRCPM=MdQMyQu{!IH4-#PKVZI+F!Cty)5iwB72BxKW}s}5y&YPiGYR(x*haJ6k?A{ z$HI>BsSu>&5`9GY|8Wa)xzorj*FFrUfMLy&CNq{kvMHdbkdh}c$`CnLy){I3?rDjx z!bKZY?@*FxmtIg}#%&w2s_u-K!!f;x9j3bp5u-N)to86%&D6hAGb=$dL>FlavYJhy zNV6GIijBQgxY#F6!r@K}a=6aTiIl?q7*2~W*&7jESmokDfVX84OQ*ULGdGQ9T)|e- z8~sT{(hrGU$y+J0^l$~W@G_`3Q5J2>bXkzdlebc0>9lHU6`ff7O4v$?miFkI`mLf^ zwnM~JjOZhi^n%_`a=>wp16G?-;mt|J2$xQyBdQp&_Blar7CWOZ5tb?=i37v$gCma0 zR}b#)%Vpd82K(I^%Mni9IYQSR88k#oY(%Gja#WPbAVQR3fj4Q1IIPOj(u#)vSKE~a zNm3nW9GLrB7A>G7q?V0gBz8xARUa$vLjnd?2oNC2L`QX1HOw$GJ?`nj5I(fK!rBFD zStK=HgpkBqfYw;rT_hpz!ST;O{LA{|-wwt091)ICg#Fh)ocZ2Y$E(Vkp6;F{2$-&y zFEd}he3|+3T}TZ91DnEi`ztkCfClCVXtFnfi{Q%Ze@8`y)Nf+bI9C*SIRKz3$wbP9A%eJG4?jc@Y|WJL!`roj$OUm&M9xfXe|K}@uu0t+ zh{GnM&e*It3wb#> zHZ}4~vYB!TU(y|geE*lCjv9YI3sA%00d=_U8m$7sx{2UqmUv<+a>*tuV`2(;B(Fi5 z#zZW_0tiN51Tt`veuM_6UXLSPNXj?m9P@^J^IE>y!L$fITrdq32&O?1!L*1zBbes> ze1M0m04{Sq1t5@P1TuW2TF{~brh*pLh>_}AvKO2!M2qBCCU)hnW2tIP8 z3TzYF;(&N|q$+}&k*dhwW<;t$j7Sx%jvc82D?(3Ty`9X6n!ltXRS{f=qauGsk=ex@ zhlcqt<`TlBeAIX;b>POv9pL8S$ihmb)J0e}TVtiv zffeBuI0zj`Dy1%h>wOL)f19y!2Z*s52P|^fkS!z=HX6+7JtC{SwCl1iiz}CYcORgrkxp7AngRyZ35YTzh+~kcrC1W&{^k}#!XxATjx8DKM-5CTN zA~^eqtO;2({7ei88bNUIo*fW|UZWa$;n3nT zM=~CkwzXKg9}xUox*uo-cZh8*=EQJa^-hIc6-^!!!HOmytOd@b;!Y8qegD)HilDT> zL`C*Ye1^6zcd5Y#;cU}R7{cL6r}9Cm1hNRu{g#;B0S^5ev1<13ivwqO8|mMg7BIFg z)wF=O4%ffwq|CZvOm%YI80&S-L%94Cbut{K2u?bY+7%Jycu@t}7Es{5A3;(>#7O{# zcBGC}L3rq>7+PZ>p5z79b(cdn(otX5LV^qbvKA6qxFH7O;QL00>$jUUOPFuoq*=0*Zq~vGEmdj_ zUIgcO2y^xK|1Ng+L~cA#V3z_Ya>k0Rors>wf=Twqx7ZG+61Qk6V6JwHmIC*&vWO`u zh~T_^LxHP-6Zi5WIM2AS!ZQ-DI5`Sl!#f{RYhxg8f}86^B7b_FD61%z#Xz6I)q)?Y zEhN2%Yv`@IQ-JtZ-6`RLuc)E0uOc`Wo@Gr$4GcpN;Gq_nR}rO(k{+kLs58$g0)8P-#*G;D>En7d7 zoulKj2z%m|vp=1kUhHPvarS>?e>3hlGi+ykKs^5PpPX|}|IP26Iq_ou#UsnR_w@H4 zT0MNEfAnPkM@Q)9+5XQ?(ap0teWTFi1K!*N_PqV1*U9zYdR;+(Z|xrr5NP<0HCPvI zcXRaj1QReJC+&p=Z{D3K7o+db?#xk5s>rA&pY*yD`7d0o@b{0M&+?dZm#9l_I%u@)*m~$`rhIG z{(UPi?2FnxyVwQCaXcaG#z)nL?YWv}H++UDxK<1rw^i%Q1!`(=p;o0-(V!fTe_=yy zjSR0jfdReBz;{(NDmNjM1Kdc&12<1o*<&U$IU+1?0UIlm1FXm+gM;iPM-iOT&NNI# z{iAvfC_zC)+IYw~;o}2xOa;Y%h+}Luqg_ zpMC!DBQSMU7;vNgz)gt+9kZq`e-puZxqPfa2&@y@!+{Bo6;fO_h>Z^)>Fb|lvV>5S`A#;tro$Ptrq#?RvS5uJLtBa^>Z2< z+Tw{rqL?n?2q;e%6D##IYUa2JgBJubX9mIWUWU}*6~T89e`5_^U_}ysYL+n}%)|DF6OWmf=uiLLj@LCel!@nUX}ylqkjV{Y>l?G=m0G}z zoGi`(vx!hLO6Gh%wl}gN_&tYVvTBZ@(q{~V_ ztGUNzr8xP^RyaAvHp_^CAXcS8Fic#fjFtpEmH0(vOd>&x{cvDeMC=SOZptiYv=Rr5!&ZJe z*-8Z4HS5S9JEcu$pGWF?ej+4J|86>)R??3*)|cJQg^AgT^KqIR6*N7 zA>K9-Cj$(7UM{tR2S-@3+JqylvE`%8>+xdQOyEE^6F5|hr=~>woaxj-!q}aIlZ42^ z<0N62g}*7;IU+c%bqpO|q&67?Gd5I$kuV0nD!H{n1m_qS;YGM}Tm<|Q0S0<6Hi-a& zHIT7IjH7!HG0yg7i&zAQh?6l(N*z%dQUonJn;*7T#I6qShq?w+8>>971rU$*h1TuT zq>_o?u;Jsyu)qvMfs=xvlBHr;5u6s+0wo)2`&-Jh0s9xU_XIPn!U?;Gtw199*c%ps z6&n`8M7Uuw8viB}COA!7C?*#9;~7m9xdX%$KgA27b^-tz2yPf)Tn)Uz@If~ue9+xV z4HUuE5$41d7tw?cRnRt2i2EQBCjqQKXF!OBIYSJsk@)zpP1$vWBZ0_!;7B0(vLQBe zm{Y9bB0U_h!h8$ItHQksQ49oC6v6cdHu0bq6&d?xhTPH!;b3A4;e-j+R5UJv^R`Xp zcA_&gfJ6VH(WzZ?7YuyrazlwN@u(0>I5}mxi0P@kOVZ<{{5Ejn@);cZiOot93OhOxxZwN{tIG%(Ip9Ld54d=E9})MNq}J_ zg7Z*ON{|WzMes6#W3G`51Cus08dxTMs0Czr6Cq4!)ks3PRVy2?-Wjwi70RJiCivHt zZlcKKkBVZUoG6orh*+q;fH0MgAqLs4{Eix+fY$;F3dY!w zis(6#(}vUtabicwlSmck2VuwHgV(QCd@!F}Pv8Q4< zrvt<|rxT__qP~Xj62Vn+EPXaMrJmxcA=axP`6FUyfN>|BB^_d-l_ecwhOLYOJG4>+ z=NXG|0yyPPP#MR*K#Pxk1+5gZ6F}@{eMFC#dB<=J2sZo+)lQ1k#TI2_!d;HquR@OG zI8B=T)GPz&a1ILSI22W5?JWwKM!B~eSP{zrYj!Lnf^#f0H6`-5fiNf8@YEI(AjbY~ zu*h5Hl}$>8TOv3ILK&gTaOpG_b9{vq)NnBbm}A9L%%yJY5yA5jbHiC{V8c=$h+6^i z$d15gh~T#vF^$OIt%Ol2*=w8hzyPS=0zmNnm4NS*ml44^B{r6q0oI4LmjM%G_;t^v zyo?C$#Wmk-j!|T)2NlJ_NFX-VyG4A2VI&}6n7}DRq%E{Ms&mo9OU*^6GrbVLtu-Oo z(6_#mP-V-oSJ8<=|GdT7X~*kj?c+c_EVH8?M_loVw1}Lnmt@^l>LotNP#H!F6gcq| zSa%US10>(NA8veA42j^pUzoIy^b{UU1izZN2nP>!gR$u&x?&x55k-O&rCZ6cifE~5 z{j4c+PROc72+f@qn{*>!&2aTNtjMlDnN=J0MnDii>JbF8Q;#Ben0h3c0szhw_y}OA zjNE{@U?v)2P!RDjBa3OYhydu&2%K^pJ0i$Dk}11e5nM+EB7d6^5dbkvCK{d{5s2Vt zEg}Fln0zpo9TAA&BS!?lhKK;fvm*i#+>8iB{x%R1B*VJYrAR;wuL)Ma8d%FHuQ;5^ z2G;wuR|nQzgjH#8%Bzduf2qu_$e&SUb}<#jygF)|D*6QR5qfn%z^j8(hA^&c`#pK- z%!`mB1A_=}r?$gL3+>cX4vyyklbyZcdZJ}JRKng1RN@p!+y#r6$pDirMG+c;`c!22 zr_?1*srd~|GK30~%;P4pTm(2cwuqeR*#2YSa^QxRi*Wc68@X|gnYVCmmSY0}WX?b! zT#ipI3W(r*yda2#0Dw3G_z2+aIyRh;g$m%r^XQHZ=-}95N4CeB>H;gGNMOyL>Wbj( zy~0D>CVyNs>;~iHY!WnKHKLQ_8B<*m{H!@PP{RNPbJ>nf1RvS40UI0}h-W)C5!`fa zB7d9V*nk+04Xlps*nky|4Op`sn+UGGm&l({WOgwX#T*-In<{EJHb9uhU`)q$i{aRA z*_dNPB{()zN;)=g85;@j6YNH1`y)zP$0Z9=oYf_ z0Kna$5y07XrMK&jfzsiK{OGO}=pZ(r8+(ojtZ=2kn(azOaQ2r|QzCy{G_ETJV%RCL zm_0`n!Oxm21vS`NFqiF0MevbbDX_tnf_Szo6~RqcD)P4(t`vyjO2O*bt`u0|N`W=o zm5SinUyA%0MP?UMQOuR1wyC0qD+PpU3>YGv`5kVec!yzS?ugc=)|)7z5)!?rluY!B znB_z-jq&&t6E$H}fS&T4;oL?JLu+gw{rAn8FW#l)iuvMQTCSTpUjzZn z7eOFfMII-yJFZXsK7AgIfi< zvE3@LVgvwdwp$g!*>_G&iTrWVxNa4QVY9$uwp$g!&zf5WHP~D*m+e+X@R8jru)(c@ zc(z*=!A-X+^0ygo6^P+h!Rpv<6H$is0IJiu@TxW*1XY%&nrfsiKBk1q9qG zINc1l`W3^$z1_f?GwUq+1m+Z^*5pCX5Qu$K9%kdZ1f{8HZbqp*7s<$|B{R zdE>>*A1T*`7qnN${P$OGyNOkjCa%yOe+xyOhAhV}w;+&lJJE zxaOP9F^Wv}prV*l1!7aZja^EBfKvsh3^B%f=9IQlSkIi&R*J{{dj1rZkoHBTWZGB6 ztkb?ILPJo0__Qya77l&EX|W4PtY-oajx-`?rhPZ(Qt=10JaK`|16rOGY7F5>h1A1v z!)lk|d3Fu*q#`(pF?AP0w4jYDNIioBr=EjFQV}Ns7>6TMch^98=%^T4BjQ;em`F%Y zt)+#46BJ@xfOPo+)_i{KQTtkYAdf)m4_@VQt|i8vX+ zFe=Ghf9jn1L%JofBM<48P*g$z0g5o%qat(nLUOnEy4f~$MQuE@h2BI&hu-`wwL+P( zB=@P63RH*fMRg7>2GZd5k+IgyLHatKtO02bQ{>HHA~;>GKynsk5MIj=odyORMp@J! zraAoYO&Mj67^Ccw(MH*zvs}ZCxo>Eea4z>7nx*huZZzhw;YS2#%^Lq)E>QoO?s{-? zebDvM=2w#w6P#j3K29cb$?@bKJrmRq3_N5{FM7cP0~7wa-m^|Gxoyb5?BQ;E;aOjqMPVOIdlqKxK*Mdyg%a92rlpES`?Pec2G42}%6L+cxzo5+~* zqdLqis*{-|Z4@!H1rCB4u^kLBbWY%#h5)~*1-OMUjg}(^It)jk8#@&MtVjg_Yj!F? z1lOqmk-yDI1pqPpHCW6}1&H9>foJ8w5~yLW2j;R<0U|h?ZZJ385Ct}*0zf=F6(E9} zsQ{6`4Wt4Fj%XmpbQ!GPO${GwIuES(Xr~IS_Y+omIxm8MOW6gHKcmR(Vk(MF=TX~K z(QgwUp_v8*%rrP<2qW@dHx5p1PyUuRFbKoHr47uW={zdI0ijZIIxk|T866o=6rmxg zPeo>cpVWs`5RO<8F+5^Lau>ZKpBkb!~o3!{1WRw<^_EwOVZzOU+ujNniaf`GQ;bteR7I-BQ6WyZU3% zt(8j6lGC!P1;+v;Rjw5ZR-sU{%1*7OA!}C2cHE}ha_Y@u)xk&4wu-evty(IU%Pozw zP;?5-nrGGBLZMo&Rv7ZyuD952JY&x;c?~+vzvOfqt!Z!8UF`X_wRip1V|#Lsa$!yv z=9b@hAy>(rIq`1)SBI95zE6)>?DC%N=5EYcxz&B|QYpP*(OdMl6v}qJX;mwB({hUi zr%tpc{EKJXjy>CGEzLVU|C9Igj~xHtNHRx~($@)0_WX-g*`2fYBJpvx26XtB0d-9T zH94y=lcb+&yFFi*(AyvU)2MS*!+FYco>u*0yY@nN`Wdh1-%q@+?cUoz)m#4g?&Y7o z9aZ_`2d}UF7IW@ zjL7`b>}=1kB=M36PthwOv$G_@f)-ta7bX z@N}maTCJjEdCgL>WYxWLUUho0Sh4ao(xg(g>eR|r^|3^dg}i6wTcxt)Kt0NZs?{o# z9jn#!TBVAvUM_n1x>G5X>sGPs*0s)*%lTHJ)~dUXSF`N8rEr$ZP1mZFiZXuFIv&+p=$tx7< z1y%h@rJT-edvU4b(Gw0V$sDv&znGHi@B481)#LhImDS_lrFUUi`>bZoX%&jLRjU-6 z6^O^8<`&&Tz3J4ws%7gTWqIXN-uA2}wWC$Ci;BTYvqpo8#+Y02T9%~-%9e`jH4ApJ z+$>jH^sjDo)yn5-P&(yiF<+_IHO^|SUM{(Lx9QaCcCpT5-``SoEZ6cJtIk5t+gd!e zLYd@4qn-wDr3gZ`a=BVBl`N-HvfWy-q^j4fO5H1ZHlfW|n$0qOobW%Tk(pF8!%xP^*#JmYO!%JF;S02HU_>z$FbmdwRa- z-wZL3EQuN*z3o2WS@MdJZkv+LEWRrcy$$tgC`y>{8E zSXQ%MFFH=GTH&!b;crD3H0JE5Nq;qC`TqVN_fMb7m2w)Zrm!xDR|a?%m*xUAJJ$9b z=)e3uU3>Yxz5O5f>){~2?P`Gxu~VtE+^SP?v|8Fu-mTOsPLueq)=FA|n}tG=3`@1; zd9@Z5E9sLjqSn@%73u-6>}c!KESD<9LeX_vtwPf)YBR5g?US?ZCK>y`?$C=5J^!xd z_g`8)_9~gvl@Ct!kAFX>i*x;-A76g$WiqbB{ObEJ^>=@;{MxbpEAO27_~>%)uoDbS)4D9E6epRE;FISO`ypzI^?YUh~1$og#-zLwPSNwy%3FV9T-T0WklIafZ&EczOBN-xBPZlP|3u`Yrn@^^g@A zg5?AM6b$+RLA%vjq=y0gMjVB13bpCZZ`?cItv&KZ3LJLj$nCBkds~WgK-1#}U-fPBxtPSagE{ln#-K7Z!JA3~_FKfk>HmHzi%)AlZ~boB6;v+x`} zn4|iHM*nt*Q5WR;ZyeF}!=|&-IdHW9)`9;1-}U^hsw0A?FW4P>F600eKYW8czV=pH z;<`iFpm69`Yr4g9saYjYq(_!ha>>P$)6cst8fDrsIn|P7)e7Xxt#Z@0v=36WDG2jA z^B4&?Yae;$#0wOt<#Z87TL0j?E4`nQ49=X`z5L6=IUYI`sFJkV73@1eEn)}i*!fn? zb*to_oMxrOgeH8Lp%O)i^KPSSPt%~=zWl;R{r$(a8R{SZh{lpOYmzbQ`Il=;7Wsrv zlW1YX-uM@)ANLF_8^>+6@@}@+_-=Es3m{YG=C)$>$anA;0U0+UaZqV@dC z_|NWh3tnU1o+BPrk-IdvKobQn;)sW?+Q1L>Djy+Yc`%|&v=D)73x37W1po@8H&dcV zN1h#ngW?-H>{S23W zCSBT^ZMQop76_7dWDuP9p3Eqj_2#+c6G>urw@8xTmi$Z#!QZb=es}2xCU)~FJgsRC z+EbsM_5wMpR2xX+p0XDR&s9kR6!{2f<~*B1y%g{q2Y~6X_Ok-#cIU~t%mNXQ+a_JR zGRYtf*H0$DEzs?F6p(j1J9D5OrbyIP$>G3sxTHl+)oOz8sX(x*)Hges;=p`wL! z;+iDj)QXfYfF7j_phlt0K}c&+*!%bjB?^@bp939ABGD?8{Hir5$w{a{TNCn7`jf<= z)h7w6v?ukEbtK7gpgYocR-Gggr8!#?oRQ*OoA?yhn@fYT=~7W^O(;(O66s9xGc+do z8Tt~E1d^DxgldeUxUQtIX-!FfhMpupLrcQ3qX=jn2}Py8K|{j+QXd2TFsp0rFu!Tt zFsX-{5z1dvV!LA2)>>hLDV<1sVvR644D=!Wm9@dFu5=+Z3W^ufgixQ=hqxYG66!%s zt3gDh7Sn>nS13W^D|8?UUI6 z{S4~;0rfcAQ!gb?Hd?cdg{8%(bWj-k)~3MgGX|KN5ZE*+;CPr5svIApMw6diZnRru z=Aw@j#?aii)$XWAj*X(lg;|OayX}U8F;F>ed)8Z|o6!8LBUICioW7oR8+`wxe|c0u zf$Gx+?@ROgQv`#+m4&Fe)xwDYv~*NdtO3GcH t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/SimdTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/SimdTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/SimdTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SimdTest/temp/271ea3decb810db2.pyi b/Test/SimdTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/SimdTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/SimdTest/temp/271ea3decb810db2.stub.ll.dep b/Test/SimdTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SimdTest/temp/3f7c5e78d8652535.pyi b/Test/SimdTest/temp/3f7c5e78d8652535.pyi deleted file mode 100644 index abe01c2..0000000 --- a/Test/SimdTest/temp/3f7c5e78d8652535.pyi +++ /dev/null @@ -1,128 +0,0 @@ -""" -Auto-generated Python stub file from vipermath.py -Module: vipermath -""" - - -import t, c - -U_M_PI: t.CDefine = 3.14159265358979323846 -U_M_E: t.CDefine = 2.71828182845904523536 -U_M_PI_2: t.CDefine = 1.57079632679489661923 -U_M_PI_4: t.CDefine = 0.78539816339744830962 -U_M_1_PI: t.CDefine = 0.31830988618379067154 -U_M_2_PI: t.CDefine = 0.63661977236758134308 -U_M_LN2: t.CDefine = 0.69314718055994530942 -U_M_LN10: t.CDefine = 2.30258509299404568402 -U_M_2_SQRT_PI: t.CDefine = 1.77245385090551602730 - -def radians(degrees: t.CDouble) -> t.CDouble: pass - -def degrees(radians: t.CDouble) -> t.CDouble: pass - -def sin(x: t.CDouble) -> t.CDouble: pass - -def cos(x: t.CDouble) -> t.CDouble: pass - -def tan(x: t.CDouble) -> t.CDouble: pass - -def asin(x: t.CDouble) -> t.CDouble: pass - -def acos(x: t.CDouble) -> t.CDouble: pass - -def _atan_core(x: t.CDouble) -> t.CDouble: pass - -def atan(x: t.CDouble) -> t.CDouble: pass - -def atan2(y: t.CDouble, x: t.CDouble) -> t.CDouble: pass - -def sinh(x: t.CDouble) -> t.CDouble: pass - -def cosh(x: t.CDouble) -> t.CDouble: pass - -def tanh(x: t.CDouble) -> t.CDouble: pass - -def exp(x: t.CDouble) -> t.CDouble: pass - -def log(x: t.CDouble) -> t.CDouble: pass - -def sqrt(x: t.CDouble) -> t.CDouble: pass - -def abs(x: t.CInt) -> t.CInt: pass - -def fabs(x: t.CDouble) -> t.CDouble: pass - -def labs(x: t.CLong) -> t.CLong: pass - -def factorial(n: t.CInt) -> t.CDouble: pass - -def combination(n: t.CInt, k: t.CInt) -> t.CDouble: pass - -def permutation(n: t.CInt, k: t.CInt) -> t.CDouble: pass - -def pow(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def powf(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def cbrt(x: t.CDouble) -> t.CDouble: pass - -def hypot(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def floor(x: t.CDouble) -> t.CDouble: pass - -def ceil(x: t.CDouble) -> t.CDouble: pass - -def round(x: t.CDouble) -> t.CDouble: pass - -def trunc(x: t.CDouble) -> t.CDouble: pass - -def fmod(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def fmodf(x: float, y: float) -> float: pass - -def modf(x: t.CDouble, iptr: t.CDouble | t.CPtr) -> t.CDouble: pass - -def log10(x: t.CDouble) -> t.CDouble: pass - -def log2(x: t.CDouble) -> t.CDouble: pass - -def exp2(x: t.CDouble) -> t.CDouble: pass - -def expm1(x: t.CDouble) -> t.CDouble: pass - -def log1p(x: t.CDouble) -> t.CDouble: pass - -def asinh(x: t.CDouble) -> t.CDouble: pass - -def acosh(x: t.CDouble) -> t.CDouble: pass - -def atanh(x: t.CDouble) -> t.CDouble: pass - -def gamma(x: t.CDouble) -> t.CDouble: pass - -def erf(x: t.CDouble) -> t.CDouble: pass - -def erfc(x: t.CDouble) -> t.CDouble: pass - -def sqrtf(x: t.CFloat) -> t.CFloat: pass - -def sinf(x: t.CFloat) -> t.CFloat: pass - -def cosf(x: t.CFloat) -> t.CFloat: pass - -def tanf(x: t.CFloat) -> t.CFloat: pass - -def fabsf(x: t.CFloat) -> t.CFloat: pass - -def floorf(x: t.CFloat) -> t.CFloat: pass - -def ceilf(x: t.CFloat) -> t.CFloat: pass - - -class _U(t.CUnion): - d: t.CDouble - u: t.CUInt64T - -def isnan(x: t.CDouble) -> t.CStatic | t.CInt: pass - -def isinf(x: t.CDouble) -> t.CStatic | t.CInt: pass diff --git a/Test/SimdTest/temp/6f62fe05c5ea1ceb.pyi b/Test/SimdTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/SimdTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/SimdTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/SimdTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SimdTest/temp/7e529fe7a078cfef.pyi b/Test/SimdTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/SimdTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/SimdTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/SimdTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SimdTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SimdTest/temp/90c53dd6db8d41cf.pyi b/Test/SimdTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/SimdTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/SimdTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/SimdTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SimdTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SimdTest/temp/90f67f777f23b84b.pyi b/Test/SimdTest/temp/90f67f777f23b84b.pyi deleted file mode 100644 index 06ba45f..0000000 --- a/Test/SimdTest/temp/90f67f777f23b84b.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import vipersimd -import numpy -from stdio import printf -import stdlib -from stdlib import calloc -import t, c -import memhub -import testcheck - -arena: t.CExtern | t.CUInt8T | t.CPtr -pool: t.CExtern | memhub.MemPool | t.CPtr - -def clock() -> t.CLong | t.CExtern: pass - - -CLOCK_PER_SEC: t.CDefine = 1000 - -def test_avx2_add_sub_mul_div() -> t.CInt: pass - -def test_avx2_neg_abs_sqrt() -> t.CInt: pass - -def test_avx2_min_max() -> t.CInt: pass - -def test_avx2_scalar_ops() -> t.CInt: pass - -def test_avx2_hsum_dot() -> t.CInt: pass - -def test_avx2_fma() -> t.CInt: pass - -def test_batch_array_ops() -> t.CInt: pass - -def test_llvmir_scalar() -> t.CInt: pass - - -N_ELEM: t.CDefine = 40000 -N_ITER: t.CDefine = 50000 - -def scalar_add_array(a: t.CPtr, b: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def scalar_mul_array(a: t.CPtr, b: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def scalar_sqrt_array(a: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def benchmark_simd_vs_scalar() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/SimdTest/temp/_phase1_manifest.json b/Test/SimdTest/temp/_phase1_manifest.json index 7953ce7..861b4f1 100644 --- a/Test/SimdTest/temp/_phase1_manifest.json +++ b/Test/SimdTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SimdTest\\App\\main.py": {"sha1": "90f67f777f23b84b", "mtime": 1784566611.8616376, "size": 17408}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.py": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipersimd.py": {"sha1": "c24f25b14b4bbd0a", "mtime": 1782891155.5031893, "size": 15522}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SimdTest\\App\\main.vp": {"sha1": "90f67f777f23b84b", "mtime": 1784566611.8616376, "size": 17408}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.vp": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.vp": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipersimd.vp": {"sha1": "6dde8fc09b24666c", "mtime": 1785318562.31538, "size": 15568}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/SimdTest/temp/_sha1_map.txt b/Test/SimdTest/temp/_sha1_map.txt index 03ea062..1cabca9 100644 --- a/Test/SimdTest/temp/_sha1_map.txt +++ b/Test/SimdTest/temp/_sha1_map.txt @@ -1,14 +1,14 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -3f7c5e78d8652535:includes/vipermath.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -90f67f777f23b84b:main.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c24f25b14b4bbd0a:includes/vipersimd.py -c3a6aed1f1fb8b1e:includes/numpy\__init__.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +3f7c5e78d8652535:includes/vipermath.vp +6c658cc728d0bbf4:includes/stdlib.vp +6dde8fc09b24666c:includes/vipersimd.vp +748d0424e8976fa0:includes/testcheck.vp +90f67f777f23b84b:main.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c3a6aed1f1fb8b1e:includes/numpy\__init__.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/SimdTest/temp/ba12ed409d78139e.pyi b/Test/SimdTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/SimdTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SimdTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/SimdTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SimdTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SimdTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/SimdTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/SimdTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/SimdTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/SimdTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/SimdTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/SimdTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SimdTest/temp/c24f25b14b4bbd0a.pyi b/Test/SimdTest/temp/c24f25b14b4bbd0a.pyi deleted file mode 100644 index a7c0c1f..0000000 --- a/Test/SimdTest/temp/c24f25b14b4bbd0a.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from vipersimd.py -Module: vipersimd -""" - - -import t, c - -def simd_add4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_sub4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_mul4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_div4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_sqrt4d(a: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_neg4d(a: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_abs4d(a: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_max4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_min4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_mul_scalar4d(a: t.CPtr, scalar: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_add_scalar4d(a: t.CPtr, scalar: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_hsum4d(a: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_dot4d(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_fma4d(a: t.CPtr, b: t.CPtr, c_val: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_add4f(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_sub4f(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_mul4f(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_div4f(a: t.CPtr, b: t.CPtr, out: t.CPtr) -> t.CVoid: pass - -def simd_add_array(a: t.CPtr, b: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_sub_array(a: t.CPtr, b: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_mul_array(a: t.CPtr, b: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_div_array(a: t.CPtr, b: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_sqrt_array(a: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_abs_array(a: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_neg_array(a: t.CPtr, out: t.CPtr, n: t.CSizeT) -> t.CVoid: pass - -def simd_dot_array(a: t.CPtr, b: t.CPtr, n: t.CSizeT, out: t.CPtr) -> t.CVoid: pass - -def simd_sqrt(x: t.CDouble) -> t.CDouble: pass - -def simd_fabs(x: t.CDouble) -> t.CDouble: pass - -def simd_floor(x: t.CDouble) -> t.CDouble: pass - -def simd_ceil(x: t.CDouble) -> t.CDouble: pass - -def simd_round(x: t.CDouble) -> t.CDouble: pass - -def simd_trunc(x: t.CDouble) -> t.CDouble: pass - -def simd_fma(a: t.CDouble, b: t.CDouble, c_val: t.CDouble) -> t.CDouble: pass - -def simd_copysign(mag: t.CDouble, sign: t.CDouble) -> t.CDouble: pass - -def simd_neg(x: t.CDouble) -> t.CDouble: pass - -def simd_minnum(a: t.CDouble, b: t.CDouble) -> t.CDouble: pass - -def simd_maxnum(a: t.CDouble, b: t.CDouble) -> t.CDouble: pass - -def simd_exp(x: t.CDouble) -> t.CDouble: pass - -def simd_log(x: t.CDouble) -> t.CDouble: pass - -def simd_sin(x: t.CDouble) -> t.CDouble: pass - -def simd_cos(x: t.CDouble) -> t.CDouble: pass - -def simd_pow(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass diff --git a/Test/SimdTest/temp/c24f25b14b4bbd0a.stub.ll.dep b/Test/SimdTest/temp/c24f25b14b4bbd0a.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SimdTest/temp/c3a6aed1f1fb8b1e.pyi b/Test/SimdTest/temp/c3a6aed1f1fb8b1e.pyi deleted file mode 100644 index 68a99b1..0000000 --- a/Test/SimdTest/temp/c3a6aed1f1fb8b1e.pyi +++ /dev/null @@ -1,240 +0,0 @@ -""" -Auto-generated Python stub file from numpy.__init__.py -Module: numpy.__init__ -""" - - -from stdint import * -import stdlib -import string -import vipermath -import stdio -import t, c -import memhub - -MAX_NDIM: t.CDefine = 4 -float64: t.CTypedef = t.CDouble -float32: t.CTypedef = t.CFloat -int64: t.CTypedef = t.CLong -int32: t.CTypedef = t.CInt -uint8: t.CTypedef = t.CUnsignedChar -pi: t.CDefine = 3.14159265358979323846 -e: t.CDefine = 2.71828182845904523536 - -@t.Object -class ndarray[T]: - data: T | t.CPtr - shape: t.CArray[t.CSizeT, MAX_NDIM] - strides: t.CArray[t.CSizeT, MAX_NDIM] - ndim: t.CInt - size: t.CSizeT - owns_data: t.CInt - pool: memhub.MemManager | t.CPtr - def __new__(self: ndarray, pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> t.CInt: pass - def __add__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __sub__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __mul__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __truediv__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __floordiv__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __mod__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __neg__(self: ndarray) -> ndarray[T] | t.CPtr: pass - def __len__(self: ndarray) -> t.CInt: pass - def at2d(self: ndarray, row: t.CSizeT, col: t.CSizeT) -> T: pass - def set2d(self: ndarray, row: t.CSizeT, col: t.CSizeT, val: T) -> t.CInt: pass - def delete(self: ndarray) -> t.CInt: pass - def fill(self: ndarray, val: T) -> t.CInt: pass - def copy(self: ndarray) -> ndarray[T] | t.CPtr: pass - def reshape(self: ndarray, new_shape: INTPTR, new_ndim: t.CInt) -> ndarray[T] | t.CPtr: pass - def sum(self: ndarray) -> T: pass - def mean(self: ndarray) -> T: pass - def min(self: ndarray) -> T: pass - def max(self: ndarray) -> T: pass - def argmax(self: ndarray) -> t.CInt: pass - def argmin(self: ndarray) -> t.CInt: pass - def dot(self: ndarray, other: ndarray[T] | t.CPtr) -> T: pass - def T(self: ndarray) -> ndarray[T] | t.CPtr: pass - def print_arr(self: ndarray) -> t.CInt: pass - -Float64Array: t.CTypedef = ndarray[t.CDouble] -Float32Array: t.CTypedef = ndarray[t.CFloat] -Int64Array: t.CTypedef = ndarray[t.CLong] -Int32Array: t.CTypedef = ndarray[t.CInt] -Uint8Array: t.CTypedef = ndarray[t.CUnsignedChar] - -def _alloc_ndarray(pool: memhub.MemManager | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def _compute_strides(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def _empty_like(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def array(pool: memhub.MemManager | t.CPtr, data: t.CDouble | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def zeros(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def ones(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def full(pool: memhub.MemManager | t.CPtr, n: t.CSizeT, val: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def arange(pool: memhub.MemManager | t.CPtr, start: t.CDouble, stop: t.CDouble, step: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def linspace(pool: memhub.MemManager | t.CPtr, start: t.CDouble, stop: t.CDouble, num: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def empty2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def zeros2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def ones2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def eye(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def diag(pool: memhub.MemManager | t.CPtr, vals: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_abs(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sqrt(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_exp(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_log(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sin(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_cos(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_tan(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_pow(a: ndarray[t.CDouble] | t.CPtr, p: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def add_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def mul_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def sub_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def div_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def matmul(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def dot_product(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_sum(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_mean(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_min(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_max(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_argmax(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_argmin(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def var(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def std(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def norm(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def clip(a: ndarray[t.CDouble] | t.CPtr, lo: t.CDouble, hi: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def concatenate(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def sort_arr(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def reverse(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_log10(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_log2(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_floor(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_ceil(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_round(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sign(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_tanh(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sinh(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_cosh(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arcsin(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arccos(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arctan(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arctan2(y: ndarray[t.CDouble] | t.CPtr, x: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_degrees(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_radians(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_isnan(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_isinf(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_maximum(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_minimum(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def cumsum(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def diff(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def flatten(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def trace(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def outer(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_where(condition: ndarray[t.CDouble] | t.CPtr, x: ndarray[t.CDouble] | t.CPtr, y: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_count_nonzero(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_all(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_any(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_not_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_less(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_greater(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_less_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_greater_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def empty(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def full2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT, val: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def zeros_like(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def ones_like(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def arange1(pool: memhub.MemManager | t.CPtr, stop: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def linspace2(pool: memhub.MemManager | t.CPtr, start: t.CDouble, stop: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def meshgrid(x: ndarray[t.CDouble] | t.CPtr, y: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def det2x2(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def inv2x2(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def cross3(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_interp(x: t.CDouble, xp: ndarray[t.CDouble] | t.CPtr, fp: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def prod(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def median(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def percentile(a: ndarray[t.CDouble] | t.CPtr, q: t.CDouble) -> t.CDouble: pass diff --git a/Test/SimdTest/temp/c9f4be41ca1cc2b4.pyi b/Test/SimdTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/SimdTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SimdTest/temp/d089e25a15c6f6e0.pyi b/Test/SimdTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/SimdTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SimdTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/SimdTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/SimdTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SimdTest/temp/f5522571bcce7bcb.pyi b/Test/SimdTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/SimdTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/SimdTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/SimdTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/SimdTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/SimdTest/temp/f9d023d1df2bc9c5.vpi b/Test/SimdTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/SimdTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SimdTest/temp/ffaf70367668b227.stub.ll.dep b/Test/SimdTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SimdTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SimdTest/temp/ffaf70367668b227.vpi b/Test/SimdTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/SimdTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SlotsBugTest/output/44bd5632a417f7ac.deps.json b/Test/SlotsBugTest/output/44bd5632a417f7ac.deps.json index 81df99c..9320ba2 100644 --- a/Test/SlotsBugTest/output/44bd5632a417f7ac.deps.json +++ b/Test/SlotsBugTest/output/44bd5632a417f7ac.deps.json @@ -1 +1 @@ -{"ast.lexer": "0c212981c180e7fb", "lexer": "0c212981c180e7fb", "atom": "271ea3decb810db2", "ast.__init__": "34548789d646f432", "__init__": "34548789d646f432", "ast": "34548789d646f432", "ast.astaux": "4337fb260448bbe2", "astaux": "4337fb260448bbe2", "ast.exprs": "47767b5026a8ee15", "exprs": "47767b5026a8ee15", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.base": "5dab8cb390496d22", "base": "5dab8cb390496d22", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "string": "ba12ed409d78139e", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "ast.parser": "ee52c08239684346", "parser": "ee52c08239684346", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "ast.astaux": "34dc6a647fa19b7b", "astaux": "34dc6a647fa19b7b", "ast.match": "4dd6b3f1427d1cc5", "match": "4dd6b3f1427d1cc5", "ast.stmts": "657e182b27c2a022", "stmts": "657e182b27c2a022", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "ast.lexer": "8219423928c874da", "lexer": "8219423928c874da", "ast.base": "91497014ca775a64", "base": "91497014ca775a64", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "ast.tokens": "b547ac4f380bddb6", "tokens": "b547ac4f380bddb6", "ast.exprs": "c14a7bd64dff8c0b", "exprs": "c14a7bd64dff8c0b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "ast.__init__": "fa67083915eb2e30", "__init__": "fa67083915eb2e30", "ast": "fa67083915eb2e30", "ast.parser": "fde6db0747bdd959", "parser": "fde6db0747bdd959"} \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/0c212981c180e7fb.pyi b/Test/SlotsBugTest/temp/0c212981c180e7fb.pyi deleted file mode 100644 index f432b06..0000000 --- a/Test/SlotsBugTest/temp/0c212981c180e7fb.pyi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from ast.lexer.py -Module: ast.lexer -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal - -LEXER_MAX_INDENT: t.CDefine = 256 - -class Lexer: - src: str - pos: t.CSizeT - len: t.CSizeT - lineno: t.CInt - col: t.CInt - pool: memhub.MemManager | t.CPtr - indent_stack: t.CInt | t.CPtr - indent_top: t.CInt - paren_depth: t.CInt - tokens_head: Token | t.CPtr - tokens_tail: Token | t.CPtr - at_line_start: t.CInt - error_count: t.CInt - def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass - -def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass - -def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _is_alpha(ch: t.CChar) -> t.CInt: pass - -def _is_digit(ch: t.CChar) -> t.CInt: pass - -def _is_alnum(ch: t.CChar) -> t.CInt: pass - -def _is_hex(ch: t.CChar) -> t.CInt: pass - -def _is_space(ch: t.CChar) -> t.CInt: pass - -def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass - -def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass - -def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass - -def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass - -def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass diff --git a/Test/SlotsBugTest/temp/0c212981c180e7fb.stub.ll.dep b/Test/SlotsBugTest/temp/0c212981c180e7fb.stub.ll.dep deleted file mode 100644 index 610b274..0000000 --- a/Test/SlotsBugTest/temp/0c212981c180e7fb.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|b547ac4f380bddb6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/22bc0df83b3f0e62.stub.ll.dep b/Test/SlotsBugTest/temp/22bc0df83b3f0e62.stub.ll.dep deleted file mode 100644 index ea67498..0000000 --- a/Test/SlotsBugTest/temp/22bc0df83b3f0e62.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/22bc0df83b3f0e62.vpi b/Test/SlotsBugTest/temp/22bc0df83b3f0e62.vpi deleted file mode 100644 index 7d08ed0..0000000 --- a/Test/SlotsBugTest/temp/22bc0df83b3f0e62.vpi +++ /dev/null @@ -1,183 +0,0 @@ -""" -Auto-generated Python stub file from ast.base.vp -Module: ast.base -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .tokens import TokOp - -class ASTKind(t.CEnum): - Module: t.State - FunctionDef: t.State - ClassDef: t.State - Assign: t.State - If: t.State - For: t.State - While: t.State - Return: t.State - Expr: t.State - Name: t.State - Constant: t.State - BinOp: t.State - UnaryOp: t.State - Call: t.State - Compare: t.State - Expression: t.State - Interactive: t.State - FunctionType: t.State - Delete: t.State - AugAssign: t.State - AnnAssign: t.State - With: t.State - Raise: t.State - Try: t.State - Assert: t.State - Global: t.State - Nonlocal: t.State - Pass: t.State - Break: t.State - Continue: t.State - Import: t.State - ImportFrom: t.State - Match: t.State - BoolOp: t.State - Lambda: t.State - IfExp: t.State - Dict: t.State - Set: t.State - ListComp: t.State - SetComp: t.State - DictComp: t.State - GeneratorExp: t.State - Await: t.State - Yield: t.State - YieldFrom: t.State - FormattedValue: t.State - JoinedStr: t.State - Attribute: t.State - Subscript: t.State - Starred: t.State - List: t.State - Tuple: t.State - Slice: t.State - NamedExpr: t.State - ExceptHandler: t.State - Arguments: t.State - Arg: t.State - Keyword: t.State - Alias: t.State - WithItem: t.State - Comprehension: t.State - OpNode: t.State - MatchCase: t.State - MatchValue: t.State - MatchSingleton: t.State - MatchSequence: t.State - MatchMapping: t.State - MatchClass: t.State - MatchStar: t.State - MatchAs: t.State - MatchOr: t.State -class ASTCtx(t.CEnum): - Load: t.State - Store: t.State - Del: t.State -class OpKind(t.CEnum): - Add: t.State - Sub: t.State - Mult: t.State - MatMult: t.State - Div: t.State - Mod: t.State - Pow: t.State - LShift: t.State - RShift: t.State - BitOr: t.State - BitXor: t.State - BitAnd: t.State - FloorDiv: t.State - And: t.State - Or: t.State - Eq: t.State - Ne: t.State - Lt: t.State - Le: t.State - Gt: t.State - Ge: t.State - Is: t.State - IsNot: t.State - In: t.State - NotIn: t.State - Not: t.State - UAdd: t.State - USub: t.State - Invert: t.State - NoneOp: t.State - -CONST_INT: t.CDefine = 1 -CONST_FLOAT: t.CDefine = 2 -CONST_STR: t.CDefine = 3 -CONST_BOOL: t.CDefine = 4 -CONST_NONE: t.CDefine = 5 -CONST_CHAR: t.CDefine = 6 -FLAG_IS_ASYNC: t.CDefine = 1 -FLAG_SIMPLE: t.CDefine = 2 -FLAG_HAS_STAR: t.CDefine = 4 - -class ASTFlag(t.CEnum): - IsAsync: t.State - Simple: t.State - HasStar: t.State - -def _copy_str(pool: memhub.MemManager | t.CPtr, src: str) -> str: pass - -def _set_pos(node: AST | t.CPtr, lineno: t.CInt, col_offset: t.CInt, end_lineno: t.CInt, end_col_offset: t.CInt) -> t.CInt: pass - -def _inherit_pos(node: AST | t.CPtr, ref: AST | t.CPtr) -> t.CInt: pass - -def _init_ast(node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - -def _set_parent_list(lst: list[AST | t.CPtr] | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _append_child(lst: list[AST | t.CPtr] | t.CPtr, node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _binop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _augop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _cmpop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _emit(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_str(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_int(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, val: t.CInt64T) -> t.CSizeT: pass - -def _op_name(op: t.CInt) -> str: pass - -def _dump_list(lst: list[AST | t.CPtr] | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - -def _dump_op_list(lst: t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - - -@t.CVTable -class AST: - parent: AST | t.CPtr - pool: memhub.MemManager | t.CPtr - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - children: list[AST | t.CPtr] | t.CPtr - def kind(self: AST) -> t.CInt: pass - def type_name(self: AST) -> str: pass - def dump(self: AST, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - def accept(self: AST, visitor: t.CPtr) -> t.CInt: pass - def append(self: AST, node: AST | t.CPtr) -> t.CInt: pass - -def dump(node: AST | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT) -> t.CInt: pass diff --git a/Test/SlotsBugTest/temp/271ea3decb810db2.pyi b/Test/SlotsBugTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/SlotsBugTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/SlotsBugTest/temp/271ea3decb810db2.stub.ll.dep b/Test/SlotsBugTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/34548789d646f432.pyi b/Test/SlotsBugTest/temp/34548789d646f432.pyi deleted file mode 100644 index e046b0c..0000000 --- a/Test/SlotsBugTest/temp/34548789d646f432.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from ast.__init__.py -Module: ast.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp, _init_tables -from .base import AST, ASTKind, ASTCtx, OpKind, ASTFlag, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, FLAG_IS_ASYNC, FLAG_SIMPLE, FLAG_HAS_STAR, _init_ast, _copy_str, _set_pos, _inherit_pos, _set_parent_list, _binop_from_op, _augop_from_op, _cmpop_from_op, _emit, _emit_str, _emit_int, _dump_list, dump -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .astaux import ExceptHandler, Arguments, Arg, Keyword, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .visitor import ASTVisitor -from .lexer import Lexer, _lexer_init, tokenize, new_lexer -from .parser import Parser, _parser_init, parse_tokens, new_parser -from .parser import _parse_test - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass - -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/SlotsBugTest/temp/34548789d646f432.stub.ll.dep b/Test/SlotsBugTest/temp/34548789d646f432.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/4337fb260448bbe2.pyi b/Test/SlotsBugTest/temp/4337fb260448bbe2.pyi deleted file mode 100644 index 7ed88bd..0000000 --- a/Test/SlotsBugTest/temp/4337fb260448bbe2.pyi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from ast.astaux.py -Module: ast.astaux -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class ExceptHandler(AST): - type: AST | t.CPtr - name: str - def __new__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: ExceptHandler) -> t.CInt: pass - def type_name(self: ExceptHandler) -> str: pass - def dump(self: ExceptHandler, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arguments(AST): - args: list[AST | t.CPtr] | t.CPtr - vararg: AST | t.CPtr - kwarg: AST | t.CPtr - defaults: list[AST | t.CPtr] | t.CPtr - kw_defaults: list[AST | t.CPtr] | t.CPtr - def __new__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Arguments) -> t.CInt: pass - def type_name(self: Arguments) -> str: pass - def dump(self: Arguments, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arg(AST): - arg: str - annotation: AST | t.CPtr - def __new__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def kind(self: Arg) -> t.CInt: pass - def type_name(self: Arg) -> str: pass - def dump(self: Arg, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Keyword(AST): - arg: str - value: AST | t.CPtr - def __new__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Keyword) -> t.CInt: pass - def type_name(self: Keyword) -> str: pass - def dump(self: Keyword, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Alias(AST): - name: str - asname: str - def __new__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def __init__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def kind(self: Alias) -> t.CInt: pass - def type_name(self: Alias) -> str: pass - def dump(self: Alias, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class WithItem(AST): - context_expr: AST | t.CPtr - optional_vars: AST | t.CPtr - def __new__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def __init__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def kind(self: WithItem) -> t.CInt: pass - def type_name(self: WithItem) -> str: pass - def dump(self: WithItem, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Comprehension(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - ifs: list[AST | t.CPtr] | t.CPtr - is_async: t.CInt - def __new__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: Comprehension) -> t.CInt: pass - def type_name(self: Comprehension) -> str: pass - def dump(self: Comprehension, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/4337fb260448bbe2.stub.ll.dep b/Test/SlotsBugTest/temp/4337fb260448bbe2.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/SlotsBugTest/temp/4337fb260448bbe2.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/4337fb260448bbe2.vpi b/Test/SlotsBugTest/temp/4337fb260448bbe2.vpi deleted file mode 100644 index efa527a..0000000 --- a/Test/SlotsBugTest/temp/4337fb260448bbe2.vpi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from ast.astaux.vp -Module: ast.astaux -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class ExceptHandler(AST): - type: AST | t.CPtr - name: str - def __new__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: ExceptHandler, pool: memhub.MemManager | t.CPtr, type: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: ExceptHandler) -> t.CInt: pass - def type_name(self: ExceptHandler) -> str: pass - def dump(self: ExceptHandler, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arguments(AST): - args: list[AST | t.CPtr] | t.CPtr - vararg: AST | t.CPtr - kwarg: AST | t.CPtr - defaults: list[AST | t.CPtr] | t.CPtr - kw_defaults: list[AST | t.CPtr] | t.CPtr - def __new__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Arguments, pool: memhub.MemManager | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, vararg: AST | t.CPtr, kwarg: AST | t.CPtr, defaults: list[AST | t.CPtr] | t.CPtr, kw_defaults: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Arguments) -> t.CInt: pass - def type_name(self: Arguments) -> str: pass - def dump(self: Arguments, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Arg(AST): - arg: str - annotation: AST | t.CPtr - def __new__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Arg, pool: memhub.MemManager | t.CPtr, arg: str, annotation: AST | t.CPtr) -> t.CInt: pass - def kind(self: Arg) -> t.CInt: pass - def type_name(self: Arg) -> str: pass - def dump(self: Arg, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Keyword(AST): - arg: str - value: AST | t.CPtr - def __new__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Keyword, pool: memhub.MemManager | t.CPtr, arg: str, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Keyword) -> t.CInt: pass - def type_name(self: Keyword) -> str: pass - def dump(self: Keyword, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Alias(AST): - name: str - asname: str - def __new__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def __init__(self: Alias, pool: memhub.MemManager | t.CPtr, name: str, asname: str) -> t.CInt: pass - def kind(self: Alias) -> t.CInt: pass - def type_name(self: Alias) -> str: pass - def dump(self: Alias, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class WithItem(AST): - context_expr: AST | t.CPtr - optional_vars: AST | t.CPtr - def __new__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def __init__(self: WithItem, pool: memhub.MemManager | t.CPtr, context_expr: AST | t.CPtr, optional_vars: AST | t.CPtr) -> t.CInt: pass - def kind(self: WithItem) -> t.CInt: pass - def type_name(self: WithItem) -> str: pass - def dump(self: WithItem, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Comprehension(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - ifs: list[AST | t.CPtr] | t.CPtr - is_async: t.CInt - def __new__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: Comprehension, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, ifs: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: Comprehension) -> t.CInt: pass - def type_name(self: Comprehension) -> str: pass - def dump(self: Comprehension, buf: bytes, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/44bd5632a417f7ac.pyi b/Test/SlotsBugTest/temp/44bd5632a417f7ac.pyi deleted file mode 100644 index 63f8696..0000000 --- a/Test/SlotsBugTest/temp/44bd5632a417f7ac.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import ast - -class Result: - __slots__ = ('elem_type_node', 'count_node', 'is_pointer') - def __init__(self: Result, elem: ast.AST, count: ast.AST | t.CPtr, flag: bool) -> None: pass - elem_type_node: ast.AST - count_node: ast.AST | t.CPtr - is_pointer: bool - -def main() -> int: pass diff --git a/Test/SlotsBugTest/temp/47767b5026a8ee15.pyi b/Test/SlotsBugTest/temp/47767b5026a8ee15.pyi deleted file mode 100644 index 7890f3d..0000000 --- a/Test/SlotsBugTest/temp/47767b5026a8ee15.pyi +++ /dev/null @@ -1,241 +0,0 @@ -""" -Auto-generated Python stub file from ast.exprs.py -Module: ast.exprs -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, _dump_op_list, _op_name, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE - -class Name(AST): - id: str - ctx: t.CInt - def __new__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Name) -> t.CInt: pass - def type_name(self: Name) -> str: pass - def dump(self: Name, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Constant(AST): - int_val: t.CInt64T - float_val: t.CDouble - str_val: str - const_kind: t.CInt - def __new__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def __init__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def kind(self: Constant) -> t.CInt: pass - def type_name(self: Constant) -> str: pass - def dump(self: Constant, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BinOp(AST): - left: AST | t.CPtr - op: t.CInt - right: AST | t.CPtr - def __new__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def __init__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def kind(self: BinOp) -> t.CInt: pass - def type_name(self: BinOp) -> str: pass - def dump(self: BinOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class UnaryOp(AST): - op: t.CInt - operand: AST | t.CPtr - def __new__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def __init__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def kind(self: UnaryOp) -> t.CInt: pass - def type_name(self: UnaryOp) -> str: pass - def dump(self: UnaryOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Compare(AST): - left: AST | t.CPtr - ops: t.CPtr - comparators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Compare) -> t.CInt: pass - def type_name(self: Compare) -> str: pass - def dump(self: Compare, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Call(AST): - func: AST | t.CPtr - args: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - def __new__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Call) -> t.CInt: pass - def type_name(self: Call) -> str: pass - def dump(self: Call, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BoolOp(AST): - op: t.CInt - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: BoolOp) -> t.CInt: pass - def type_name(self: BoolOp) -> str: pass - def dump(self: BoolOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Lambda(AST): - args: AST | t.CPtr - body: AST | t.CPtr - def __new__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Lambda) -> t.CInt: pass - def type_name(self: Lambda) -> str: pass - def dump(self: Lambda, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class IfExp(AST): - test: AST | t.CPtr - body: AST | t.CPtr - orelse: AST | t.CPtr - def __new__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def __init__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def kind(self: IfExp) -> t.CInt: pass - def type_name(self: IfExp) -> str: pass - def dump(self: IfExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Dict(AST): - keys: list[AST | t.CPtr] | t.CPtr - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Dict) -> t.CInt: pass - def type_name(self: Dict) -> str: pass - def dump(self: Dict, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Set(AST): - elts: list[AST | t.CPtr] | t.CPtr - def __new__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Set) -> t.CInt: pass - def type_name(self: Set) -> str: pass - def dump(self: Set, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ListComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: ListComp) -> t.CInt: pass - def type_name(self: ListComp) -> str: pass - def dump(self: ListComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class SetComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: SetComp) -> t.CInt: pass - def type_name(self: SetComp) -> str: pass - def dump(self: SetComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class DictComp(AST): - key: AST | t.CPtr - value: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: DictComp) -> t.CInt: pass - def type_name(self: DictComp) -> str: pass - def dump(self: DictComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class GeneratorExp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: GeneratorExp) -> t.CInt: pass - def type_name(self: GeneratorExp) -> str: pass - def dump(self: GeneratorExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Await(AST): - value: AST | t.CPtr - def __new__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Await) -> t.CInt: pass - def type_name(self: Await) -> str: pass - def dump(self: Await, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Yield(AST): - value: AST | t.CPtr - def __new__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Yield) -> t.CInt: pass - def type_name(self: Yield) -> str: pass - def dump(self: Yield, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class YieldFrom(AST): - value: AST | t.CPtr - def __new__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: YieldFrom) -> t.CInt: pass - def type_name(self: YieldFrom) -> str: pass - def dump(self: YieldFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FormattedValue(AST): - value: AST | t.CPtr - conversion: t.CInt - format_spec: AST | t.CPtr - def __new__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def kind(self: FormattedValue) -> t.CInt: pass - def type_name(self: FormattedValue) -> str: pass - def dump(self: FormattedValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class JoinedStr(AST): - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: JoinedStr) -> t.CInt: pass - def type_name(self: JoinedStr) -> str: pass - def dump(self: JoinedStr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Attribute(AST): - value: AST | t.CPtr - attr: str - ctx: t.CInt - def __new__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Attribute) -> t.CInt: pass - def type_name(self: Attribute) -> str: pass - def dump(self: Attribute, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Subscript(AST): - value: AST | t.CPtr - slice: AST | t.CPtr - ctx: t.CInt - def __new__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Subscript) -> t.CInt: pass - def type_name(self: Subscript) -> str: pass - def dump(self: Subscript, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Starred(AST): - value: AST | t.CPtr - ctx: t.CInt - def __new__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Starred) -> t.CInt: pass - def type_name(self: Starred) -> str: pass - def dump(self: Starred, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class List(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: List) -> t.CInt: pass - def type_name(self: List) -> str: pass - def dump(self: List, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Tuple(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Tuple) -> t.CInt: pass - def type_name(self: Tuple) -> str: pass - def dump(self: Tuple, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Slice(AST): - lower: AST | t.CPtr - upper: AST | t.CPtr - step: AST | t.CPtr - def __new__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def kind(self: Slice) -> t.CInt: pass - def type_name(self: Slice) -> str: pass - def dump(self: Slice, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class NamedExpr(AST): - target: AST | t.CPtr - value: AST | t.CPtr - def __new__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: NamedExpr) -> t.CInt: pass - def type_name(self: NamedExpr) -> str: pass - def dump(self: NamedExpr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class OpNode(AST): - op: t.CInt - def __new__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def __init__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def kind(self: OpNode) -> t.CInt: pass - def type_name(self: OpNode) -> str: pass - def dump(self: OpNode, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/47767b5026a8ee15.stub.ll.dep b/Test/SlotsBugTest/temp/47767b5026a8ee15.stub.ll.dep deleted file mode 100644 index b3836d9..0000000 --- a/Test/SlotsBugTest/temp/47767b5026a8ee15.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.pyi b/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.pyi deleted file mode 100644 index dd15aa2..0000000 --- a/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.pyi +++ /dev/null @@ -1,82 +0,0 @@ -""" -Auto-generated Python stub file from ast.match.py -Module: ast.match -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list - -class MatchCase(AST): - pattern: AST | t.CPtr - guard: AST | t.CPtr - def __new__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchCase, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, guard: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchCase) -> t.CInt: pass - def type_name(self: MatchCase) -> str: pass - def dump(self: MatchCase, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchValue(AST): - value: AST | t.CPtr - def __new__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchValue) -> t.CInt: pass - def type_name(self: MatchValue) -> str: pass - def dump(self: MatchValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSingleton(AST): - value: AST | t.CPtr - def __new__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSingleton, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: MatchSingleton) -> t.CInt: pass - def type_name(self: MatchSingleton) -> str: pass - def dump(self: MatchSingleton, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchSequence(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchSequence, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchSequence) -> t.CInt: pass - def type_name(self: MatchSequence) -> str: pass - def dump(self: MatchSequence, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchMapping(AST): - keys: list[AST | t.CPtr] | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - rest: str - def __new__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def __init__(self: MatchMapping, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, rest: str) -> t.CInt: pass - def kind(self: MatchMapping) -> t.CInt: pass - def type_name(self: MatchMapping) -> str: pass - def dump(self: MatchMapping, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchClass(AST): - cls: AST | t.CPtr - patterns: list[AST | t.CPtr] | t.CPtr - kwd_attrs: list[AST | t.CPtr] | t.CPtr - kwd_patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchClass, pool: memhub.MemManager | t.CPtr, cls: AST | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr, kwd_attrs: list[AST | t.CPtr] | t.CPtr, kwd_patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchClass) -> t.CInt: pass - def type_name(self: MatchClass) -> str: pass - def dump(self: MatchClass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchStar(AST): - name: str - def __new__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchStar, pool: memhub.MemManager | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchStar) -> t.CInt: pass - def type_name(self: MatchStar) -> str: pass - def dump(self: MatchStar, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchAs(AST): - pattern: AST | t.CPtr - name: str - def __new__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def __init__(self: MatchAs, pool: memhub.MemManager | t.CPtr, pattern: AST | t.CPtr, name: str) -> t.CInt: pass - def kind(self: MatchAs) -> t.CInt: pass - def type_name(self: MatchAs) -> str: pass - def dump(self: MatchAs, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class MatchOr(AST): - patterns: list[AST | t.CPtr] | t.CPtr - def __new__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: MatchOr, pool: memhub.MemManager | t.CPtr, patterns: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: MatchOr) -> t.CInt: pass - def type_name(self: MatchOr) -> str: pass - def dump(self: MatchOr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.stub.ll.dep b/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.stub.ll.dep index b3836d9..2812636 100644 --- a/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.stub.ll.dep +++ b/Test/SlotsBugTest/temp/4dd6b3f1427d1cc5.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|91497014ca775a64|928c0ff6d8c69ec9|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/5dab8cb390496d22.pyi b/Test/SlotsBugTest/temp/5dab8cb390496d22.pyi deleted file mode 100644 index 7056767..0000000 --- a/Test/SlotsBugTest/temp/5dab8cb390496d22.pyi +++ /dev/null @@ -1,182 +0,0 @@ -""" -Auto-generated Python stub file from ast.base.py -Module: ast.base -""" - - -import t, c -from stdint import * -import memhub -import string -import viperlib -from .tokens import TokOp - -class ASTKind(t.CEnum): - Module: t.State - FunctionDef: t.State - ClassDef: t.State - Assign: t.State - If: t.State - For: t.State - While: t.State - Return: t.State - Expr: t.State - Name: t.State - Constant: t.State - BinOp: t.State - UnaryOp: t.State - Call: t.State - Compare: t.State - Expression: t.State - Interactive: t.State - FunctionType: t.State - Delete: t.State - AugAssign: t.State - AnnAssign: t.State - With: t.State - Raise: t.State - Try: t.State - Assert: t.State - Global: t.State - Nonlocal: t.State - Pass: t.State - Break: t.State - Continue: t.State - Import: t.State - ImportFrom: t.State - Match: t.State - BoolOp: t.State - Lambda: t.State - IfExp: t.State - Dict: t.State - Set: t.State - ListComp: t.State - SetComp: t.State - DictComp: t.State - GeneratorExp: t.State - Await: t.State - Yield: t.State - YieldFrom: t.State - FormattedValue: t.State - JoinedStr: t.State - Attribute: t.State - Subscript: t.State - Starred: t.State - List: t.State - Tuple: t.State - Slice: t.State - NamedExpr: t.State - ExceptHandler: t.State - Arguments: t.State - Arg: t.State - Keyword: t.State - Alias: t.State - WithItem: t.State - Comprehension: t.State - OpNode: t.State - MatchCase: t.State - MatchValue: t.State - MatchSingleton: t.State - MatchSequence: t.State - MatchMapping: t.State - MatchClass: t.State - MatchStar: t.State - MatchAs: t.State - MatchOr: t.State -class ASTCtx(t.CEnum): - Load: t.State - Store: t.State - Del: t.State -class OpKind(t.CEnum): - Add: t.State - Sub: t.State - Mult: t.State - MatMult: t.State - Div: t.State - Mod: t.State - Pow: t.State - LShift: t.State - RShift: t.State - BitOr: t.State - BitXor: t.State - BitAnd: t.State - FloorDiv: t.State - And: t.State - Or: t.State - Eq: t.State - Ne: t.State - Lt: t.State - Le: t.State - Gt: t.State - Ge: t.State - Is: t.State - IsNot: t.State - In: t.State - NotIn: t.State - Not: t.State - UAdd: t.State - USub: t.State - Invert: t.State - NoneOp: t.State - -CONST_INT: t.CDefine = 1 -CONST_FLOAT: t.CDefine = 2 -CONST_STR: t.CDefine = 3 -CONST_BOOL: t.CDefine = 4 -CONST_NONE: t.CDefine = 5 -FLAG_IS_ASYNC: t.CDefine = 1 -FLAG_SIMPLE: t.CDefine = 2 -FLAG_HAS_STAR: t.CDefine = 4 - -class ASTFlag(t.CEnum): - IsAsync: t.State - Simple: t.State - HasStar: t.State - -def _copy_str(pool: memhub.MemManager | t.CPtr, src: str) -> str: pass - -def _set_pos(node: AST | t.CPtr, lineno: t.CInt, col_offset: t.CInt, end_lineno: t.CInt, end_col_offset: t.CInt) -> t.CInt: pass - -def _inherit_pos(node: AST | t.CPtr, ref: AST | t.CPtr) -> t.CInt: pass - -def _init_ast(node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - -def _set_parent_list(lst: list[AST | t.CPtr] | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _append_child(lst: list[AST | t.CPtr] | t.CPtr, node: AST | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _binop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _augop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _cmpop_from_op(op_id: t.CInt) -> t.CInt: pass - -def _emit(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_str(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, text: str) -> t.CSizeT: pass - -def _emit_int(buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT, val: t.CInt64T) -> t.CSizeT: pass - -def _op_name(op: t.CInt) -> str: pass - -def _dump_list(lst: list[AST | t.CPtr] | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - -def _dump_op_list(lst: t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - - -@t.CVTable -class AST: - parent: AST | t.CPtr - pool: memhub.MemManager | t.CPtr - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - children: list[AST | t.CPtr] | t.CPtr - def kind(self: AST) -> t.CInt: pass - def type_name(self: AST) -> str: pass - def dump(self: AST, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass - def accept(self: AST, visitor: t.CPtr) -> t.CInt: pass - def append(self: AST, node: AST | t.CPtr) -> t.CInt: pass - -def dump(node: AST | t.CPtr, buf: t.CChar | t.CPtr, size: t.CSizeT) -> t.CInt: pass diff --git a/Test/SlotsBugTest/temp/5dab8cb390496d22.stub.ll.dep b/Test/SlotsBugTest/temp/5dab8cb390496d22.stub.ll.dep deleted file mode 100644 index 42d081a..0000000 --- a/Test/SlotsBugTest/temp/5dab8cb390496d22.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/657e182b27c2a022.pyi b/Test/SlotsBugTest/temp/657e182b27c2a022.pyi deleted file mode 100644 index 0a2057d..0000000 --- a/Test/SlotsBugTest/temp/657e182b27c2a022.pyi +++ /dev/null @@ -1,226 +0,0 @@ -""" -Auto-generated Python stub file from ast.stmts.py -Module: ast.stmts -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, FLAG_IS_ASYNC - -@t.CVTable -class Module(AST): - def __new__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Module, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Module) -> t.CInt: pass - def type_name(self: Module) -> str: pass - def dump(self: Module, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assign(AST): - targets: list[AST | t.CPtr] | t.CPtr - value: AST | t.CPtr - def __new__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assign, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assign) -> t.CInt: pass - def type_name(self: Assign) -> str: pass - def dump(self: Assign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class If(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: If, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: If) -> t.CInt: pass - def type_name(self: If) -> str: pass - def dump(self: If, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class For(AST): - target: AST | t.CPtr - iter: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: For, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, iter: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: For) -> t.CInt: pass - def type_name(self: For) -> str: pass - def dump(self: For, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class While(AST): - test: AST | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - def __new__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: While, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: While) -> t.CInt: pass - def type_name(self: While) -> str: pass - def dump(self: While, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Return(AST): - value: AST | t.CPtr - def __new__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Return, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Return) -> t.CInt: pass - def type_name(self: Return) -> str: pass - def dump(self: Return, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expr(AST): - value: AST | t.CPtr - def __new__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expr, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expr) -> t.CInt: pass - def type_name(self: Expr) -> str: pass - def dump(self: Expr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionDef(AST): - name: str - args: AST | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - flags: t.CInt - def __new__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: FunctionDef, pool: memhub.MemManager | t.CPtr, name: str, args: AST | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: FunctionDef) -> t.CInt: pass - def type_name(self: FunctionDef) -> str: pass - def dump(self: FunctionDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Expression(AST): - body: AST | t.CPtr - def __new__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Expression, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Expression) -> t.CInt: pass - def type_name(self: Expression) -> str: pass - def dump(self: Expression, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Interactive(AST): - body: AST | t.CPtr - def __new__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Interactive, pool: memhub.MemManager | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Interactive) -> t.CInt: pass - def type_name(self: Interactive) -> str: pass - def dump(self: Interactive, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FunctionType(AST): - argtypes: list[AST | t.CPtr] | t.CPtr - returns: AST | t.CPtr - def __new__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FunctionType, pool: memhub.MemManager | t.CPtr, argtypes: list[AST | t.CPtr] | t.CPtr, returns: AST | t.CPtr) -> t.CInt: pass - def kind(self: FunctionType) -> t.CInt: pass - def type_name(self: FunctionType) -> str: pass - def dump(self: FunctionType, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ClassDef(AST): - name: str - bases: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - decorator_list: list[AST | t.CPtr] | t.CPtr - type_params: list[str] | t.CPtr - def __new__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr) -> t.CInt: pass - def __init__(self: ClassDef, pool: memhub.MemManager | t.CPtr, name: str, bases: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr, decorator_list: list[AST | t.CPtr] | t.CPtr, type_params: list[str] | t.CPtr) -> t.CInt: pass - def kind(self: ClassDef) -> t.CInt: pass - def type_name(self: ClassDef) -> str: pass - def dump(self: ClassDef, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Delete(AST): - targets: list[AST | t.CPtr] | t.CPtr - def __new__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Delete, pool: memhub.MemManager | t.CPtr, targets: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Delete) -> t.CInt: pass - def type_name(self: Delete) -> str: pass - def dump(self: Delete, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AugAssign(AST): - target: AST | t.CPtr - op: t.CInt - value: AST | t.CPtr - def __new__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: AugAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, op: t.CInt, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: AugAssign) -> t.CInt: pass - def type_name(self: AugAssign) -> str: pass - def dump(self: AugAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class AnnAssign(AST): - target: AST | t.CPtr - annotation: AST | t.CPtr - value: AST | t.CPtr - simple: t.CInt - def __new__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def __init__(self: AnnAssign, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, annotation: AST | t.CPtr, value: AST | t.CPtr, simple: t.CInt) -> t.CInt: pass - def kind(self: AnnAssign) -> t.CInt: pass - def type_name(self: AnnAssign) -> str: pass - def dump(self: AnnAssign, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class With(AST): - items: list[AST | t.CPtr] | t.CPtr - flags: t.CInt - def __new__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def __init__(self: With, pool: memhub.MemManager | t.CPtr, items: list[AST | t.CPtr] | t.CPtr, is_async: t.CInt) -> t.CInt: pass - def kind(self: With) -> t.CInt: pass - def type_name(self: With) -> str: pass - def dump(self: With, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Raise(AST): - exc: AST | t.CPtr - cause: AST | t.CPtr - def __new__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Raise, pool: memhub.MemManager | t.CPtr, exc: AST | t.CPtr, cause: AST | t.CPtr) -> t.CInt: pass - def kind(self: Raise) -> t.CInt: pass - def type_name(self: Raise) -> str: pass - def dump(self: Raise, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Try(AST): - handlers: list[AST | t.CPtr] | t.CPtr - orelse: list[AST | t.CPtr] | t.CPtr - finalbody: list[AST | t.CPtr] | t.CPtr - def __new__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Try, pool: memhub.MemManager | t.CPtr, handlers: list[AST | t.CPtr] | t.CPtr, orelse: list[AST | t.CPtr] | t.CPtr, finalbody: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Try) -> t.CInt: pass - def type_name(self: Try) -> str: pass - def dump(self: Try, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Assert(AST): - test: AST | t.CPtr - msg: AST | t.CPtr - def __new__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Assert, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, msg: AST | t.CPtr) -> t.CInt: pass - def kind(self: Assert) -> t.CInt: pass - def type_name(self: Assert) -> str: pass - def dump(self: Assert, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Global(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Global, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Global) -> t.CInt: pass - def type_name(self: Global) -> str: pass - def dump(self: Global, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Nonlocal(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Nonlocal, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Nonlocal) -> t.CInt: pass - def type_name(self: Nonlocal) -> str: pass - def dump(self: Nonlocal, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Pass(AST): - def __new__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Pass, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Pass) -> t.CInt: pass - def type_name(self: Pass) -> str: pass - def dump(self: Pass, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Break(AST): - def __new__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Break, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Break) -> t.CInt: pass - def type_name(self: Break) -> str: pass - def dump(self: Break, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Continue(AST): - def __new__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def __init__(self: Continue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def kind(self: Continue) -> t.CInt: pass - def type_name(self: Continue) -> str: pass - def dump(self: Continue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Import(AST): - names: list[AST | t.CPtr] | t.CPtr - def __new__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Import, pool: memhub.MemManager | t.CPtr, names: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Import) -> t.CInt: pass - def type_name(self: Import) -> str: pass - def dump(self: Import, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ImportFrom(AST): - module: str - names: list[AST | t.CPtr] | t.CPtr - level: t.CInt - def __new__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def __init__(self: ImportFrom, pool: memhub.MemManager | t.CPtr, module: str, names: list[AST | t.CPtr] | t.CPtr, level: t.CInt) -> t.CInt: pass - def kind(self: ImportFrom) -> t.CInt: pass - def type_name(self: ImportFrom) -> str: pass - def dump(self: ImportFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Match(AST): - subject: AST | t.CPtr - cases: list[AST | t.CPtr] | t.CPtr - def __new__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Match, pool: memhub.MemManager | t.CPtr, subject: AST | t.CPtr, cases: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Match) -> t.CInt: pass - def type_name(self: Match) -> str: pass - def dump(self: Match, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/657e182b27c2a022.stub.ll.dep b/Test/SlotsBugTest/temp/657e182b27c2a022.stub.ll.dep index b3836d9..2812636 100644 --- a/Test/SlotsBugTest/temp/657e182b27c2a022.stub.ll.dep +++ b/Test/SlotsBugTest/temp/657e182b27c2a022.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|5dab8cb390496d22|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|91497014ca775a64|928c0ff6d8c69ec9|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.pyi b/Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/SlotsBugTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.pyi b/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/SlotsBugTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/SlotsBugTest/temp/_phase1_manifest.json b/Test/SlotsBugTest/temp/_phase1_manifest.json index f560c33..5e69f0f 100644 --- a/Test/SlotsBugTest/temp/_phase1_manifest.json +++ b/Test/SlotsBugTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SlotsBugTest\\App\\main.py": {"sha1": "44bd5632a417f7ac", "mtime": 1784709295.115248, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.py": {"sha1": "34548789d646f432", "mtime": 1784102404.6307266, "size": 3409}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.py": {"sha1": "4337fb260448bbe2", "mtime": 1784006094.7981195, "size": 11489}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.py": {"sha1": "5dab8cb390496d22", "mtime": 1784197698.3282094, "size": 14966}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.py": {"sha1": "47767b5026a8ee15", "mtime": 1783239758.809719, "size": 40615}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.py": {"sha1": "0c212981c180e7fb", "mtime": 1783400609.908198, "size": 23535}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.py": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.py": {"sha1": "ee52c08239684346", "mtime": 1784102405.1933146, "size": 85445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.py": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.py": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SlotsBugTest\\App\\main.vp": {"sha1": "44bd5632a417f7ac", "mtime": 1784741370.3609664, "size": 714}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\__init__.vp": {"sha1": "fa67083915eb2e30", "mtime": 1786033550.3346176, "size": 3770}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\astaux.vp": {"sha1": "34dc6a647fa19b7b", "mtime": 1786033586.0642571, "size": 11475}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\base.vp": {"sha1": "91497014ca775a64", "mtime": 1786033954.7782319, "size": 15215}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\exprs.vp": {"sha1": "c14a7bd64dff8c0b", "mtime": 1786034120.289799, "size": 40831}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\lexer.vp": {"sha1": "8219423928c874da", "mtime": 1786034611.5303524, "size": 24712}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\match.vp": {"sha1": "4dd6b3f1427d1cc5", "mtime": 1782961799.8492737, "size": 12309}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\parser.vp": {"sha1": "fde6db0747bdd959", "mtime": 1785348036.106818, "size": 87525}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\stmts.vp": {"sha1": "657e182b27c2a022", "mtime": 1783929993.759902, "size": 37926}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ast\\tokens.vp": {"sha1": "b547ac4f380bddb6", "mtime": 1783165480.469121, "size": 13722}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}} \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/_sha1_map.txt b/Test/SlotsBugTest/temp/_sha1_map.txt index dc99569..2001037 100644 --- a/Test/SlotsBugTest/temp/_sha1_map.txt +++ b/Test/SlotsBugTest/temp/_sha1_map.txt @@ -1,18 +1,19 @@ -0c212981c180e7fb:includes/ast\lexer.py -271ea3decb810db2:includes/atom.py -34548789d646f432:includes/ast\__init__.py -4337fb260448bbe2:includes/ast\astaux.py -44bd5632a417f7ac:main.py -47767b5026a8ee15:includes/ast\exprs.py -4dd6b3f1427d1cc5:includes/ast\match.py -5dab8cb390496d22:includes/ast\base.py -657e182b27c2a022:includes/ast\stmts.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -b547ac4f380bddb6:includes/ast\tokens.py -ba12ed409d78139e:includes/string.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -ee52c08239684346:includes/ast\parser.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +34dc6a647fa19b7b:includes/ast\astaux.vp +44bd5632a417f7ac:main.vp +4dd6b3f1427d1cc5:includes/ast\match.vp +657e182b27c2a022:includes/ast\stmts.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +8219423928c874da:includes/ast\lexer.vp +91497014ca775a64:includes/ast\base.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +b547ac4f380bddb6:includes/ast\tokens.vp +c14a7bd64dff8c0b:includes/ast\exprs.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +fa67083915eb2e30:includes/ast\__init__.vp +fde6db0747bdd959:includes/ast\parser.vp diff --git a/Test/SlotsBugTest/temp/b543bc1dfb592119.stub.ll.dep b/Test/SlotsBugTest/temp/b543bc1dfb592119.stub.ll.dep deleted file mode 100644 index 4565d8a..0000000 --- a/Test/SlotsBugTest/temp/b543bc1dfb592119.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -22bc0df83b3f0e62|285b6aa29a34754d|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/b543bc1dfb592119.vpi b/Test/SlotsBugTest/temp/b543bc1dfb592119.vpi deleted file mode 100644 index 4910ab4..0000000 --- a/Test/SlotsBugTest/temp/b543bc1dfb592119.vpi +++ /dev/null @@ -1,241 +0,0 @@ -""" -Auto-generated Python stub file from ast.exprs.vp -Module: ast.exprs -""" - - -import t, c -from stdint import * -import memhub -import string -from .base import AST, ASTKind, ASTCtx, OpKind, _init_ast, _copy_str, _set_parent_list, _emit, _emit_str, _emit_int, _dump_list, _dump_op_list, _op_name, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR - -class Name(AST): - id: str - ctx: t.CInt - def __new__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Name, pool: memhub.MemManager | t.CPtr, id: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Name) -> t.CInt: pass - def type_name(self: Name) -> str: pass - def dump(self: Name, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Constant(AST): - int_val: t.CInt64T - float_val: t.CDouble - str_val: str - const_kind: t.CInt - def __new__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def __init__(self: Constant, pool: memhub.MemManager | t.CPtr, const_kind: t.CInt, int_val: t.CInt64T, float_val: t.CDouble, str_val: str, lineno: t.CInt, col: t.CInt) -> t.CInt: pass - def kind(self: Constant) -> t.CInt: pass - def type_name(self: Constant) -> str: pass - def dump(self: Constant, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BinOp(AST): - left: AST | t.CPtr - op: t.CInt - right: AST | t.CPtr - def __new__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def __init__(self: BinOp, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, op: t.CInt, right: AST | t.CPtr) -> t.CInt: pass - def kind(self: BinOp) -> t.CInt: pass - def type_name(self: BinOp) -> str: pass - def dump(self: BinOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class UnaryOp(AST): - op: t.CInt - operand: AST | t.CPtr - def __new__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def __init__(self: UnaryOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, operand: AST | t.CPtr) -> t.CInt: pass - def kind(self: UnaryOp) -> t.CInt: pass - def type_name(self: UnaryOp) -> str: pass - def dump(self: UnaryOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Compare(AST): - left: AST | t.CPtr - ops: t.CPtr - comparators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Compare, pool: memhub.MemManager | t.CPtr, left: AST | t.CPtr, ops: t.CPtr, comparators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Compare) -> t.CInt: pass - def type_name(self: Compare) -> str: pass - def dump(self: Compare, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Call(AST): - func: AST | t.CPtr - args: list[AST | t.CPtr] | t.CPtr - keywords: list[AST | t.CPtr] | t.CPtr - def __new__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Call, pool: memhub.MemManager | t.CPtr, func: AST | t.CPtr, args: list[AST | t.CPtr] | t.CPtr, keywords: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Call) -> t.CInt: pass - def type_name(self: Call) -> str: pass - def dump(self: Call, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class BoolOp(AST): - op: t.CInt - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: BoolOp, pool: memhub.MemManager | t.CPtr, op: t.CInt, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: BoolOp) -> t.CInt: pass - def type_name(self: BoolOp) -> str: pass - def dump(self: BoolOp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Lambda(AST): - args: AST | t.CPtr - body: AST | t.CPtr - def __new__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Lambda, pool: memhub.MemManager | t.CPtr, args: AST | t.CPtr, body: AST | t.CPtr) -> t.CInt: pass - def kind(self: Lambda) -> t.CInt: pass - def type_name(self: Lambda) -> str: pass - def dump(self: Lambda, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class IfExp(AST): - test: AST | t.CPtr - body: AST | t.CPtr - orelse: AST | t.CPtr - def __new__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def __init__(self: IfExp, pool: memhub.MemManager | t.CPtr, test: AST | t.CPtr, body: AST | t.CPtr, orelse: AST | t.CPtr) -> t.CInt: pass - def kind(self: IfExp) -> t.CInt: pass - def type_name(self: IfExp) -> str: pass - def dump(self: IfExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Dict(AST): - keys: list[AST | t.CPtr] | t.CPtr - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Dict, pool: memhub.MemManager | t.CPtr, keys: list[AST | t.CPtr] | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Dict) -> t.CInt: pass - def type_name(self: Dict) -> str: pass - def dump(self: Dict, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Set(AST): - elts: list[AST | t.CPtr] | t.CPtr - def __new__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: Set, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: Set) -> t.CInt: pass - def type_name(self: Set) -> str: pass - def dump(self: Set, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class ListComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: ListComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: ListComp) -> t.CInt: pass - def type_name(self: ListComp) -> str: pass - def dump(self: ListComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class SetComp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: SetComp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: SetComp) -> t.CInt: pass - def type_name(self: SetComp) -> str: pass - def dump(self: SetComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class DictComp(AST): - key: AST | t.CPtr - value: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: DictComp, pool: memhub.MemManager | t.CPtr, key: AST | t.CPtr, value: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: DictComp) -> t.CInt: pass - def type_name(self: DictComp) -> str: pass - def dump(self: DictComp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class GeneratorExp(AST): - elt: AST | t.CPtr - generators: list[AST | t.CPtr] | t.CPtr - def __new__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: GeneratorExp, pool: memhub.MemManager | t.CPtr, elt: AST | t.CPtr, generators: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: GeneratorExp) -> t.CInt: pass - def type_name(self: GeneratorExp) -> str: pass - def dump(self: GeneratorExp, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Await(AST): - value: AST | t.CPtr - def __new__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Await, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Await) -> t.CInt: pass - def type_name(self: Await) -> str: pass - def dump(self: Await, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Yield(AST): - value: AST | t.CPtr - def __new__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Yield, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: Yield) -> t.CInt: pass - def type_name(self: Yield) -> str: pass - def dump(self: Yield, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class YieldFrom(AST): - value: AST | t.CPtr - def __new__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: YieldFrom, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: YieldFrom) -> t.CInt: pass - def type_name(self: YieldFrom) -> str: pass - def dump(self: YieldFrom, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class FormattedValue(AST): - value: AST | t.CPtr - conversion: t.CInt - format_spec: AST | t.CPtr - def __new__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def __init__(self: FormattedValue, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, conversion: t.CInt, format_spec: AST | t.CPtr) -> t.CInt: pass - def kind(self: FormattedValue) -> t.CInt: pass - def type_name(self: FormattedValue) -> str: pass - def dump(self: FormattedValue, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class JoinedStr(AST): - values: list[AST | t.CPtr] | t.CPtr - def __new__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def __init__(self: JoinedStr, pool: memhub.MemManager | t.CPtr, values: list[AST | t.CPtr] | t.CPtr) -> t.CInt: pass - def kind(self: JoinedStr) -> t.CInt: pass - def type_name(self: JoinedStr) -> str: pass - def dump(self: JoinedStr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Attribute(AST): - value: AST | t.CPtr - attr: str - ctx: t.CInt - def __new__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Attribute, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, attr: str, ctx: t.CInt) -> t.CInt: pass - def kind(self: Attribute) -> t.CInt: pass - def type_name(self: Attribute) -> str: pass - def dump(self: Attribute, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Subscript(AST): - value: AST | t.CPtr - slice: AST | t.CPtr - ctx: t.CInt - def __new__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Subscript, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, slice: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Subscript) -> t.CInt: pass - def type_name(self: Subscript) -> str: pass - def dump(self: Subscript, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Starred(AST): - value: AST | t.CPtr - ctx: t.CInt - def __new__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Starred, pool: memhub.MemManager | t.CPtr, value: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Starred) -> t.CInt: pass - def type_name(self: Starred) -> str: pass - def dump(self: Starred, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class List(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: List, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: List) -> t.CInt: pass - def type_name(self: List) -> str: pass - def dump(self: List, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Tuple(AST): - elts: list[AST | t.CPtr] | t.CPtr - ctx: t.CInt - def __new__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def __init__(self: Tuple, pool: memhub.MemManager | t.CPtr, elts: list[AST | t.CPtr] | t.CPtr, ctx: t.CInt) -> t.CInt: pass - def kind(self: Tuple) -> t.CInt: pass - def type_name(self: Tuple) -> str: pass - def dump(self: Tuple, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class Slice(AST): - lower: AST | t.CPtr - upper: AST | t.CPtr - step: AST | t.CPtr - def __new__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def __init__(self: Slice, pool: memhub.MemManager | t.CPtr, lower: AST | t.CPtr, upper: AST | t.CPtr, step: AST | t.CPtr) -> t.CInt: pass - def kind(self: Slice) -> t.CInt: pass - def type_name(self: Slice) -> str: pass - def dump(self: Slice, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class NamedExpr(AST): - target: AST | t.CPtr - value: AST | t.CPtr - def __new__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def __init__(self: NamedExpr, pool: memhub.MemManager | t.CPtr, target: AST | t.CPtr, value: AST | t.CPtr) -> t.CInt: pass - def kind(self: NamedExpr) -> t.CInt: pass - def type_name(self: NamedExpr) -> str: pass - def dump(self: NamedExpr, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass -class OpNode(AST): - op: t.CInt - def __new__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def __init__(self: OpNode, pool: memhub.MemManager | t.CPtr, op: t.CInt) -> t.CInt: pass - def kind(self: OpNode) -> t.CInt: pass - def type_name(self: OpNode) -> str: pass - def dump(self: OpNode, buf: t.CChar | t.CPtr, size: t.CSizeT, pos: t.CSizeT) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/b547ac4f380bddb6.pyi b/Test/SlotsBugTest/temp/b547ac4f380bddb6.pyi deleted file mode 100644 index e960341..0000000 --- a/Test/SlotsBugTest/temp/b547ac4f380bddb6.pyi +++ /dev/null @@ -1,166 +0,0 @@ -""" -Auto-generated Python stub file from ast.tokens.py -Module: ast.tokens -""" - - -import t, c -from stdint import * -import memhub -import string - -class TokenType(t.CEnum): - EndMarker: t.State - NewLine: t.State - Indent: t.State - Dedent: t.State - Name: t.State - Number: t.State - String: t.State - FStringStart: t.State - FStringMiddle: t.State - FStringEnd: t.State - Op: t.State - Nl: t.State - Comment: t.State - Encoding: t.State -class Keyword(t.CEnum): - NotKeyword: t.State - False_: t.State - None_: t.State - True_: t.State - And: t.State - As: t.State - Assert: t.State - Async: t.State - Await: t.State - Break: t.State - Class: t.State - Continue: t.State - Def: t.State - Del: t.State - Elif: t.State - Else: t.State - Except: t.State - Finally: t.State - For: t.State - From: t.State - Global: t.State - If: t.State - Import: t.State - In: t.State - Is: t.State - Lambda: t.State - Nonlocal: t.State - Not: t.State - Or: t.State - Pass: t.State - Raise: t.State - Return: t.State - Try: t.State - While: t.State - With: t.State - Yield: t.State - Match: t.State - Case: t.State - Type: t.State -class TokOp(t.CEnum): - LPar: t.State - RPar: t.State - Lsqb: t.State - Rsqb: t.State - LBrace: t.State - RBrace: t.State - Comma: t.State - Colon: t.State - Dot: t.State - Semi: t.State - At: t.State - Equal: t.State - RArrow: t.State - PlusEq: t.State - MinusEq: t.State - StarEq: t.State - SlashEq: t.State - DSlashEq: t.State - PercentEq: t.State - AtEq: t.State - AmpEq: t.State - VBarEq: t.State - CaretEq: t.State - GtGtEq: t.State - LtLtEq: t.State - StarEqEq: t.State - DSlash: t.State - StarStar: t.State - LtLt: t.State - GtGt: t.State - LessEq: t.State - GreaterEq: t.State - EqEq: t.State - ExclaimEq: t.State - Less: t.State - Greater: t.State - Plus: t.State - Minus: t.State - Star: t.State - Slash: t.State - Percent: t.State - Amp: t.State - VBar: t.State - Caret: t.State - Tilde: t.State - ColonEq: t.State - Ellipsis: t.State - Bang: t.State -class Token: - type: t.CInt - op_subtype: t.CInt - kw_subtype: t.CInt - str_val: str - int_val: t.CInt64T - float_val: t.CDouble - is_float: t.CInt - is_complex: t.CInt - lineno: t.CInt - col_offset: t.CInt - end_lineno: t.CInt - end_col_offset: t.CInt - next: Token | t.CPtr - def __new__(self: Token, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass -class KwEntry: - name: str - kw_id: t.CInt - next: KwEntry | t.CPtr - def __new__(self: KwEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_kw_head: t.CExtern | KwEntry | t.CPtr -_kw_pool: t.CExtern | memhub.MemManager | t.CPtr - -def _kw_intern(pool: memhub.MemManager | t.CPtr, name: str, kw_id: t.CInt) -> t.CInt: pass - -def _kw_lookup(name: str) -> t.CInt: pass - -def _init_keywords(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - - -class OpEntry: - name: str - op_id: t.CInt - length: t.CInt - next: OpEntry | t.CPtr - def __new__(self: OpEntry, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -_op_head: t.CExtern | OpEntry | t.CPtr - -def _op_intern(pool: memhub.MemManager | t.CPtr, name: str, op_id: t.CInt) -> t.CInt: pass - -def _init_operators(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _init_tables(pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_token(pool: memhub.MemManager | t.CPtr, ttype: t.CInt, lineno: t.CInt, col_offset: t.CInt) -> Token | t.CPtr: pass - -def token_set_str(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, src: str, start: t.CSizeT, length: t.CSizeT) -> t.CInt: pass - -def token_set_str_literal(pool: memhub.MemManager | t.CPtr, tok: Token | t.CPtr, text: str) -> t.CInt: pass diff --git a/Test/SlotsBugTest/temp/b547ac4f380bddb6.stub.ll.dep b/Test/SlotsBugTest/temp/b547ac4f380bddb6.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/SlotsBugTest/temp/b547ac4f380bddb6.stub.ll.dep +++ b/Test/SlotsBugTest/temp/b547ac4f380bddb6.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/ba12ed409d78139e.pyi b/Test/SlotsBugTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/SlotsBugTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/SlotsBugTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SlotsBugTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/c3b259b4059f8668.pyi b/Test/SlotsBugTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/SlotsBugTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/SlotsBugTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/SlotsBugTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/SlotsBugTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/c9f4be41ca1cc2b4.pyi b/Test/SlotsBugTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/SlotsBugTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/d089e25a15c6f6e0.pyi b/Test/SlotsBugTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/SlotsBugTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/SlotsBugTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/SlotsBugTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/de3357cb9182715e.stub.ll.dep b/Test/SlotsBugTest/temp/de3357cb9182715e.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SlotsBugTest/temp/de3357cb9182715e.vpi b/Test/SlotsBugTest/temp/de3357cb9182715e.vpi deleted file mode 100644 index 858bf0c..0000000 --- a/Test/SlotsBugTest/temp/de3357cb9182715e.vpi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from ast.__init__.vp -Module: ast.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp, _init_tables -from .base import AST, ASTKind, ASTCtx, OpKind, ASTFlag, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, CONST_CHAR, FLAG_IS_ASYNC, FLAG_SIMPLE, FLAG_HAS_STAR, _init_ast, _copy_str, _set_pos, _inherit_pos, _set_parent_list, _binop_from_op, _augop_from_op, _cmpop_from_op, _emit, _emit_str, _emit_int, _dump_list, dump, _op_name -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .astaux import ExceptHandler, Arguments, Arg, Keyword, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .visitor import ASTVisitor -from .lexer import Lexer, _lexer_init, tokenize, new_lexer -from .parser import Parser, _parser_init, parse_tokens, new_parser -from .parser import _parse_test - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def parse(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass - -def parse_expression(src: str, pool: memhub.MemManager | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/SlotsBugTest/temp/ee52c08239684346.pyi b/Test/SlotsBugTest/temp/ee52c08239684346.pyi deleted file mode 100644 index ee09339..0000000 --- a/Test/SlotsBugTest/temp/ee52c08239684346.pyi +++ /dev/null @@ -1,215 +0,0 @@ -""" -Auto-generated Python stub file from ast.parser.py -Module: ast.parser -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, Keyword, TokOp -from .base import AST, ASTCtx, ASTKind, OpKind, ASTFlag, _set_pos, _binop_from_op, _augop_from_op, _cmpop_from_op, _copy_str, _inherit_pos, _init_ast, CONST_INT, CONST_FLOAT, CONST_STR, CONST_BOOL, CONST_NONE, FLAG_IS_ASYNC -from .exprs import BoolOp, BinOp, UnaryOp, Lambda, IfExp, Dict, Set, ListComp, SetComp, DictComp, GeneratorExp, Await, Yield, YieldFrom, FormattedValue, JoinedStr, Constant, NamedExpr, Attribute, Subscript, Starred, Name, List, Tuple, Slice, Call, Compare, OpNode -from .stmts import Module, Expression, Interactive, FunctionType, FunctionDef, ClassDef, Return, Delete, Assign, AugAssign, AnnAssign, For, While, If, With, Raise, Try, Assert, Global, Nonlocal, Pass, Break, Continue, Expr, Import, ImportFrom, Match -from .astaux import ExceptHandler, Arguments, Arg, Keyword as KwNode, Alias, WithItem, Comprehension -from .match import MatchCase, MatchValue, MatchSingleton, MatchSequence, MatchMapping, MatchClass, MatchStar, MatchAs, MatchOr -from .lexer import Lexer, _lexer_init, tokenize, new_lexer - -class Parser: - tokens: Token | t.CPtr - cur: Token | t.CPtr - pool: memhub.MemManager | t.CPtr - error_count: t.CInt - pending_decorators: list[AST | t.CPtr] | t.CPtr - def __new__(self: Parser, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_parser(pool: memhub.MemManager | t.CPtr) -> Parser | t.CPtr: pass - -def _parser_init(ps: Parser | t.CPtr, tokens: Token | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _advance(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_type(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_kw(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_str(ps: Parser | t.CPtr) -> str: pass - -def _cur_lineno(ps: Parser | t.CPtr) -> t.CInt: pass - -def _cur_col(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nl(ps: Parser | t.CPtr) -> t.CInt: pass - -def _skip_nls_and_newlines(ps: Parser | t.CPtr) -> t.CInt: pass - -def _expect_type(ps: Parser | t.CPtr, ttype: t.CInt) -> t.CInt: pass - -def _expect_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _match_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _accept_op(ps: Parser | t.CPtr, op_id: t.CInt) -> t.CInt: pass - -def _new_const_int(pool: memhub.MemManager | t.CPtr, val: t.CInt64T, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_float(pool: memhub.MemManager | t.CPtr, val: t.CDouble, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_str(pool: memhub.MemManager | t.CPtr, val: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_bool(pool: memhub.MemManager | t.CPtr, val: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _new_const_none(pool: memhub.MemManager | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _set_ctx(node: AST | t.CPtr, ctx: t.CInt) -> t.CInt: pass - -def _fix_store_ctx(node: AST | t.CPtr) -> t.CInt: pass - -def _parse_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_namedexpr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_lambda(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_or_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_and_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_not_test(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_comparison(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _match_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _advance_comp_op(ps: Parser | t.CPtr) -> t.CInt: pass - -def _parse_bitor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitxor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_bitand(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_shift(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_arith(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_term(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_factor(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_power(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom_expr(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_call(ps: Parser | t.CPtr, func: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_subscript(ps: Parser | t.CPtr, value: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_slice(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_atom(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_paren(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_brace(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sub_expr(ps: Parser | t.CPtr, src: str) -> AST | t.CPtr: pass - -def _parse_fstring(ps: Parser | t.CPtr, content: str, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comprehension(ps: Parser | t.CPtr, elt: AST | t.CPtr, vtype: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_comp_for(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_target_list(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_target(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_yield(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_varargslist(ps: Parser | t.CPtr, is_lambda: t.CInt) -> AST | t.CPtr: pass - -def _parse_arg_def(ps: Parser | t.CPtr, is_lambda: t.CInt) -> AST | t.CPtr: pass - -def _parse_suite_into_children(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_statement_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_simple_stmt_into(ps: Parser | t.CPtr, parent: AST | t.CPtr) -> t.CInt: pass - -def _parse_small_stmt(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _maybe_tuple(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_testlist(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_expr_stmt(ps: Parser | t.CPtr, first: AST | t.CPtr) -> AST | t.CPtr: pass - -def _parse_return(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_raise(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_global(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_nonlocal(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_from_import(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_alias_list(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_del(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_assert(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_compound(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_if_tail(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_while(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_for(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_try(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_except_handler(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_with(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_with_item(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_funcdef(ps: Parser | t.CPtr, is_async: t.CInt) -> AST | t.CPtr: pass - -def _parse_classdef(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_match(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _make_name_ast(pool: memhub.MemManager | t.CPtr, node: Name | t.CPtr) -> AST | t.CPtr: pass - -def _parse_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_closed_pattern(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_sequence_pattern(ps: Parser | t.CPtr, close_op: t.CInt, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_mapping_pattern(ps: Parser | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_class_pattern(ps: Parser | t.CPtr, cls: AST | t.CPtr, lineno: t.CInt, col: t.CInt) -> AST | t.CPtr: pass - -def _parse_match_case(ps: Parser | t.CPtr) -> AST | t.CPtr: pass - -def _parse_decorators(ps: Parser | t.CPtr) -> list[AST | t.CPtr] | t.CPtr: pass - -def _parse_module_body(ps: Parser | t.CPtr, module_node: AST | t.CPtr) -> t.CInt: pass - -def parse_tokens(pool: memhub.MemManager | t.CPtr, tokens: Token | t.CPtr) -> AST | t.CPtr: pass diff --git a/Test/SlotsBugTest/temp/ee52c08239684346.stub.ll.dep b/Test/SlotsBugTest/temp/ee52c08239684346.stub.ll.dep deleted file mode 100644 index e0deba7..0000000 --- a/Test/SlotsBugTest/temp/ee52c08239684346.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -0c212981c180e7fb|271ea3decb810db2|4337fb260448bbe2|47767b5026a8ee15|4dd6b3f1427d1cc5|5dab8cb390496d22|657e182b27c2a022|6f62fe05c5ea1ceb|71e0a3ffcb3ebfad|b547ac4f380bddb6|ba12ed409d78139e|c3b259b4059f8668|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/f5522571bcce7bcb.pyi b/Test/SlotsBugTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/SlotsBugTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/f5d13f1be34f417a.stub.ll.dep b/Test/SlotsBugTest/temp/f5d13f1be34f417a.stub.ll.dep deleted file mode 100644 index 2b2644e..0000000 --- a/Test/SlotsBugTest/temp/f5d13f1be34f417a.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/f5d13f1be34f417a.vpi b/Test/SlotsBugTest/temp/f5d13f1be34f417a.vpi deleted file mode 100644 index 44c435f..0000000 --- a/Test/SlotsBugTest/temp/f5d13f1be34f417a.vpi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from ast.lexer.vp -Module: ast.lexer -""" - - -import t, c -from stdint import * -import memhub -import string -from .tokens import Token, TokenType, TokOp, _init_tables, _kw_lookup, _op_head, OpEntry, new_token, token_set_str, token_set_str_literal - -LEXER_MAX_INDENT: t.CDefine = 256 - -class Lexer: - src: str - pos: t.CSizeT - len: t.CSizeT - lineno: t.CInt - col: t.CInt - pool: memhub.MemManager | t.CPtr - indent_stack: t.CInt | t.CPtr - indent_top: t.CInt - paren_depth: t.CInt - tokens_head: Token | t.CPtr - tokens_tail: Token | t.CPtr - at_line_start: t.CInt - error_count: t.CInt - def __new__(self: Lexer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def new_lexer(pool: memhub.MemManager | t.CPtr) -> Lexer | t.CPtr: pass - -def _lexer_init(lx: Lexer | t.CPtr, src: str, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(lx: Lexer | t.CPtr, offset: t.CSizeT) -> t.CChar: pass - -def _peek_cur(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _advance(lx: Lexer | t.CPtr) -> t.CChar: pass - -def _is_alpha(ch: t.CChar) -> t.CInt: pass - -def _is_digit(ch: t.CChar) -> t.CInt: pass - -def _is_alnum(ch: t.CChar) -> t.CInt: pass - -def _is_hex(ch: t.CChar) -> t.CInt: pass - -def _is_space(ch: t.CChar) -> t.CInt: pass - -def _emit(lx: Lexer | t.CPtr, tok: Token | t.CPtr) -> t.CInt: pass - -def _make_op_token(lx: Lexer | t.CPtr, op_id: t.CInt, length: t.CInt, lineno: t.CInt, col: t.CInt) -> Token | t.CPtr: pass - -def _handle_indent(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_name(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_number(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _emit_number(lx: Lexer | t.CPtr, start: t.CSizeT, start_lineno: t.CInt, start_col: t.CInt, is_float: t.CInt, is_complex: t.CInt, is_hex: t.CInt) -> t.CInt: pass - -def _read_string(lx: Lexer | t.CPtr) -> t.CInt: pass - -def _read_operator(lx: Lexer | t.CPtr) -> t.CInt: pass - -def tokenize(lx: Lexer | t.CPtr) -> Token | t.CPtr: pass diff --git a/Test/SlotsBugTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/SlotsBugTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/SlotsBugTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/f9d023d1df2bc9c5.vpi b/Test/SlotsBugTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/SlotsBugTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/fde6db0747bdd959.stub.ll.dep b/Test/SlotsBugTest/temp/fde6db0747bdd959.stub.ll.dep index ce247dd..5fa80eb 100644 --- a/Test/SlotsBugTest/temp/fde6db0747bdd959.stub.ll.dep +++ b/Test/SlotsBugTest/temp/fde6db0747bdd959.stub.ll.dep @@ -1 +1 @@ -22bc0df83b3f0e62|285b6aa29a34754d|4337fb260448bbe2|4dd6b3f1427d1cc5|657e182b27c2a022|6c658cc728d0bbf4|71e0a3ffcb3ebfad|aa246c6e6aa30484|b543bc1dfb592119|b547ac4f380bddb6|c9f4be41ca1cc2b4|f5522571bcce7bcb|f5d13f1be34f417a|f6ab8989f3545e83|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|34dc6a647fa19b7b|4dd6b3f1427d1cc5|657e182b27c2a022|6c658cc728d0bbf4|71e0a3ffcb3ebfad|8219423928c874da|91497014ca775a64|928c0ff6d8c69ec9|aa246c6e6aa30484|b547ac4f380bddb6|c14a7bd64dff8c0b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6ab8989f3545e83 \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/ffaf70367668b227.stub.ll.dep b/Test/SlotsBugTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SlotsBugTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SlotsBugTest/temp/ffaf70367668b227.vpi b/Test/SlotsBugTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/SlotsBugTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SprintfTest/output/f492cb40d913400b.deps.json b/Test/SprintfTest/output/f492cb40d913400b.deps.json index f9bd8c9..abc15a3 100644 --- a/Test/SprintfTest/output/f492cb40d913400b.deps.json +++ b/Test/SprintfTest/output/f492cb40d913400b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SprintfTest/temp/14d33679f7fadf1f.pyi b/Test/SprintfTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/SprintfTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/SprintfTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/SprintfTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/SprintfTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SprintfTest/temp/6f62fe05c5ea1ceb.pyi b/Test/SprintfTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/SprintfTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/SprintfTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/SprintfTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SprintfTest/temp/71e0a3ffcb3ebfad.pyi b/Test/SprintfTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/SprintfTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/SprintfTest/temp/7e529fe7a078cfef.pyi b/Test/SprintfTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/SprintfTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/SprintfTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/SprintfTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SprintfTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SprintfTest/temp/90c53dd6db8d41cf.pyi b/Test/SprintfTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/SprintfTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/SprintfTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/SprintfTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SprintfTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SprintfTest/temp/_phase1_manifest.json b/Test/SprintfTest/temp/_phase1_manifest.json index 24b4d25..48f92f6 100644 --- a/Test/SprintfTest/temp/_phase1_manifest.json +++ b/Test/SprintfTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SprintfTest\\App\\main.py": {"sha1": "f492cb40d913400b", "mtime": 1782821953.0346377, "size": 4235}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SprintfTest\\App\\main.vp": {"sha1": "f492cb40d913400b", "mtime": 1782821953.0346377, "size": 4235}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/SprintfTest/temp/_sha1_map.txt b/Test/SprintfTest/temp/_sha1_map.txt index 3921ea1..5c6667a 100644 --- a/Test/SprintfTest/temp/_sha1_map.txt +++ b/Test/SprintfTest/temp/_sha1_map.txt @@ -1,10 +1,10 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -f492cb40d913400b:main.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f492cb40d913400b:main.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/SprintfTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SprintfTest/temp/c3b259b4059f8668.pyi b/Test/SprintfTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/SprintfTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/SprintfTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/SprintfTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/SprintfTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SprintfTest/temp/c9f4be41ca1cc2b4.pyi b/Test/SprintfTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/SprintfTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SprintfTest/temp/f492cb40d913400b.pyi b/Test/SprintfTest/temp/f492cb40d913400b.pyi deleted file mode 100644 index f8cf5c7..0000000 --- a/Test/SprintfTest/temp/f492cb40d913400b.pyi +++ /dev/null @@ -1,15 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -import stdio -import stdlib -import testcheck -import viperlib - -@t.CExport -def main() -> int: pass diff --git a/Test/SprintfTest/temp/f5522571bcce7bcb.pyi b/Test/SprintfTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/SprintfTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json b/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json index 325dbc6..b963d1a 100644 --- a/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json +++ b/Test/StringIterTest/output/924ed8cd4ea5c4c2.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_list": "7cadfe07e983fd90", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/StringIterTest/temp/14d33679f7fadf1f.pyi b/Test/StringIterTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/StringIterTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/StringIterTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/StringIterTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/StringIterTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/271ea3decb810db2.pyi b/Test/StringIterTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/StringIterTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/StringIterTest/temp/271ea3decb810db2.stub.ll.dep b/Test/StringIterTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/StringIterTest/temp/668790e6c9efdbae.pyi b/Test/StringIterTest/temp/668790e6c9efdbae.pyi deleted file mode 100644 index fdcae1d..0000000 --- a/Test/StringIterTest/temp/668790e6c9efdbae.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from _list.py -Module: _list -""" - - -import t, c -import memhub -import string -from stdint import * - -class list[T]: - __data__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __pool__: memhub.MemManager | t.CPtr - __elem_size__: t.CSizeT - __iter_index__: t.CSizeT - def __new__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __init__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __len__(self: list) -> t.CSizeT: pass - def append(self: list, item: T) -> t.CInt: pass - def get(self: list, index: t.CSizeT) -> T: pass - def __getitem__(self: list, index: t.CSizeT) -> T: pass - def set(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def __setitem__(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def pop(self: list) -> T: pass - def clear(self: list) -> t.CInt: pass - def __iter__(self: list) -> list[T] | t.CPtr: pass - def __next__(self: list) -> T: pass \ No newline at end of file diff --git a/Test/StringIterTest/temp/668790e6c9efdbae.stub.ll.dep b/Test/StringIterTest/temp/668790e6c9efdbae.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/StringIterTest/temp/668790e6c9efdbae.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/6f62fe05c5ea1ceb.pyi b/Test/StringIterTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/StringIterTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/StringIterTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/StringIterTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/StringIterTest/temp/7cadfe07e983fd90.stub.ll.dep b/Test/StringIterTest/temp/7cadfe07e983fd90.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/StringIterTest/temp/7cadfe07e983fd90.stub.ll.dep +++ b/Test/StringIterTest/temp/7cadfe07e983fd90.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/7e529fe7a078cfef.pyi b/Test/StringIterTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/StringIterTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/StringIterTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/StringIterTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StringIterTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/924ed8cd4ea5c4c2.pyi b/Test/StringIterTest/temp/924ed8cd4ea5c4c2.pyi deleted file mode 100644 index 16c5c7a..0000000 --- a/Test/StringIterTest/temp/924ed8cd4ea5c4c2.pyi +++ /dev/null @@ -1,38 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t -import stdio -import string -import c -import testcheck - -def test_string_ptr_iter() -> t.CInt: pass - -def test_string_ascii_sum() -> t.CInt: pass - -def test_manual_strcpy() -> t.CInt: pass - -def test_ptr_offset_compare() -> t.CInt: pass - -def test_manual_strlen() -> t.CInt: pass - -def test_reverse_string_ptr() -> t.CInt: pass - -def test_double_pointer() -> t.CInt: pass - -def test_ptr_arithmetic() -> t.CInt: pass - -def test_manual_strcmp() -> t.CInt: pass - - -class Vec2: - x: t.CInt - y: t.CInt - -def test_struct_ptr_access() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/StringIterTest/temp/_phase1_manifest.json b/Test/StringIterTest/temp/_phase1_manifest.json index 1197519..7262422 100644 --- a/Test/StringIterTest/temp/_phase1_manifest.json +++ b/Test/StringIterTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringIterTest\\App\\main.py": {"sha1": "924ed8cd4ea5c4c2", "mtime": 1782271507.3310895, "size": 6472}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringIterTest\\App\\main.vp": {"sha1": "924ed8cd4ea5c4c2", "mtime": 1782271507.3310895, "size": 6472}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/StringIterTest/temp/_sha1_map.txt b/Test/StringIterTest/temp/_sha1_map.txt index 78e625a..c5db190 100644 --- a/Test/StringIterTest/temp/_sha1_map.txt +++ b/Test/StringIterTest/temp/_sha1_map.txt @@ -1,11 +1,12 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -668790e6c9efdbae:includes/_list.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -924ed8cd4ea5c4c2:main.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +7cadfe07e983fd90:includes/_list.vp +924ed8cd4ea5c4c2:main.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/StringIterTest/temp/ba12ed409d78139e.pyi b/Test/StringIterTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/StringIterTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/StringIterTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/StringIterTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StringIterTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/StringIterTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/StringIterTest/temp/c9f4be41ca1cc2b4.pyi b/Test/StringIterTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/StringIterTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/StringIterTest/temp/d089e25a15c6f6e0.pyi b/Test/StringIterTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/StringIterTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/StringIterTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/StringIterTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/StringIterTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/f5522571bcce7bcb.pyi b/Test/StringIterTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/StringIterTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/StringIterTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/StringIterTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/StringIterTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/StringIterTest/temp/f9d023d1df2bc9c5.vpi b/Test/StringIterTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/StringIterTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/StringIterTest/temp/ffaf70367668b227.stub.ll.dep b/Test/StringIterTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StringIterTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringIterTest/temp/ffaf70367668b227.vpi b/Test/StringIterTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/StringIterTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/StringTest/output/39178dc5ba692b92.deps.json b/Test/StringTest/output/39178dc5ba692b92.deps.json index e7bbdde..a783ef5 100644 --- a/Test/StringTest/output/39178dc5ba692b92.deps.json +++ b/Test/StringTest/output/39178dc5ba692b92.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/StringTest/temp/0035c95a18d4f8e8.pyi b/Test/StringTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/StringTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/StringTest/temp/067c78e9f121dce3.pyi b/Test/StringTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/StringTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/StringTest/temp/06f53cc594b4ac6c.pyi b/Test/StringTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/StringTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/StringTest/temp/14d33679f7fadf1f.pyi b/Test/StringTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/StringTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/StringTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/StringTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/StringTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringTest/temp/39178dc5ba692b92.pyi b/Test/StringTest/temp/39178dc5ba692b92.pyi deleted file mode 100644 index 6b53248..0000000 --- a/Test/StringTest/temp/39178dc5ba692b92.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import string -import testcheck - -def test_strlen() -> t.CInt: pass - -def test_strcpy() -> t.CInt: pass - -def test_strcat() -> t.CInt: pass - -def test_strcmp() -> t.CInt: pass - -def test_strncpy() -> t.CInt: pass - -def test_char_access() -> t.CInt: pass - -def test_snprintf() -> t.CInt: pass - - -import w32.win32memory - -def main() -> t.CInt: pass diff --git a/Test/StringTest/temp/6446627d4f07a1b5.pyi b/Test/StringTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/StringTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/StringTest/temp/6f62fe05c5ea1ceb.pyi b/Test/StringTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/StringTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/StringTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/StringTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/StringTest/temp/72e2d5ccb7cedcf1.pyi b/Test/StringTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/StringTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/StringTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/StringTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/StringTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/StringTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/StringTest/temp/7e529fe7a078cfef.pyi b/Test/StringTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/StringTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/StringTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/StringTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StringTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringTest/temp/_phase1_manifest.json b/Test/StringTest/temp/_phase1_manifest.json index 8420502..534f32e 100644 --- a/Test/StringTest/temp/_phase1_manifest.json +++ b/Test/StringTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringTest\\App\\main.py": {"sha1": "39178dc5ba692b92", "mtime": 1782271507.3310895, "size": 3265}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StringTest\\App\\main.vp": {"sha1": "39178dc5ba692b92", "mtime": 1782271507.3310895, "size": 3265}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/StringTest/temp/_sha1_map.txt b/Test/StringTest/temp/_sha1_map.txt index 26888fb..b6dad71 100644 --- a/Test/StringTest/temp/_sha1_map.txt +++ b/Test/StringTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -39178dc5ba692b92:main.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -7e529fe7a078cfef:includes/w32\win32base.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +39178dc5ba692b92:main.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/StringTest/temp/ba12ed409d78139e.pyi b/Test/StringTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/StringTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/StringTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/StringTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StringTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/StringTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/StringTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/StringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/StringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/StringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/StringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/StringTest/temp/f5522571bcce7bcb.pyi b/Test/StringTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/StringTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/StringTest/temp/f6b51804a0ba8ff0.pyi b/Test/StringTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/StringTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/StringTest/temp/ffaf70367668b227.stub.ll.dep b/Test/StringTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StringTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StringTest/temp/ffaf70367668b227.vpi b/Test/StringTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/StringTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/StructTest/output/24e26a8de1173993.deps.json b/Test/StructTest/output/24e26a8de1173993.deps.json index e7bbdde..a783ef5 100644 --- a/Test/StructTest/output/24e26a8de1173993.deps.json +++ b/Test/StructTest/output/24e26a8de1173993.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/StructTest/temp/0035c95a18d4f8e8.pyi b/Test/StructTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/StructTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/StructTest/temp/067c78e9f121dce3.pyi b/Test/StructTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/StructTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/StructTest/temp/06f53cc594b4ac6c.pyi b/Test/StructTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/StructTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/StructTest/temp/14d33679f7fadf1f.pyi b/Test/StructTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/StructTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/StructTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/StructTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/StructTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StructTest/temp/24e26a8de1173993.pyi b/Test/StructTest/temp/24e26a8de1173993.pyi deleted file mode 100644 index 0053550..0000000 --- a/Test/StructTest/temp/24e26a8de1173993.pyi +++ /dev/null @@ -1,39 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import string -import testcheck - -class Point(t.Struct): - x: t.CInt - y: t.CInt -class Rect(t.Struct): - origin: Point - size: Point -class Node(t.Struct): - value: t.CInt - next: t.CPtr | t.CVoid - -def test_struct_basic() -> t.CInt: pass - -def test_struct_nested() -> t.CInt: pass - -def test_struct_pointer() -> t.CInt: pass - -def test_struct_param() -> t.CInt: pass - -def point_sum(p: Point) -> t.CInt: pass - -def test_struct_array() -> t.CInt: pass - - -import w32.win32memory - -def main() -> t.CInt: pass diff --git a/Test/StructTest/temp/6446627d4f07a1b5.pyi b/Test/StructTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/StructTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/StructTest/temp/6f62fe05c5ea1ceb.pyi b/Test/StructTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/StructTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/StructTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/StructTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/StructTest/temp/72e2d5ccb7cedcf1.pyi b/Test/StructTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/StructTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/StructTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/StructTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/StructTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/StructTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/StructTest/temp/7e529fe7a078cfef.pyi b/Test/StructTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/StructTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/StructTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/StructTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StructTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StructTest/temp/_phase1_manifest.json b/Test/StructTest/temp/_phase1_manifest.json index a3de6f7..5cf4c18 100644 --- a/Test/StructTest/temp/_phase1_manifest.json +++ b/Test/StructTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StructTest\\App\\main.py": {"sha1": "24e26a8de1173993", "mtime": 1782271507.3310895, "size": 2500}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\StructTest\\App\\main.vp": {"sha1": "24e26a8de1173993", "mtime": 1782271507.3310895, "size": 2500}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/StructTest/temp/_sha1_map.txt b/Test/StructTest/temp/_sha1_map.txt index ad9f4f9..4a571e1 100644 --- a/Test/StructTest/temp/_sha1_map.txt +++ b/Test/StructTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -24e26a8de1173993:main.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -7e529fe7a078cfef:includes/w32\win32base.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +24e26a8de1173993:main.vp +285b6aa29a34754d:includes/stdio.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/StructTest/temp/ba12ed409d78139e.pyi b/Test/StructTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/StructTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/StructTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/StructTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StructTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StructTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/StructTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/StructTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/StructTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/StructTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/StructTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/StructTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/StructTest/temp/f5522571bcce7bcb.pyi b/Test/StructTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/StructTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/StructTest/temp/f6b51804a0ba8ff0.pyi b/Test/StructTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/StructTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/StructTest/temp/ffaf70367668b227.stub.ll.dep b/Test/StructTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/StructTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/StructTest/temp/ffaf70367668b227.vpi b/Test/StructTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/StructTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SysLibTest/output/0c67644125bea0fd.deps.json b/Test/SysLibTest/output/0c67644125bea0fd.deps.json index c1325a1..daaeb25 100644 --- a/Test/SysLibTest/output/0c67644125bea0fd.deps.json +++ b/Test/SysLibTest/output/0c67644125bea0fd.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/13110effbb0bb06c.deps.json b/Test/SysLibTest/output/13110effbb0bb06c.deps.json index a1ae125..daaeb25 100644 --- a/Test/SysLibTest/output/13110effbb0bb06c.deps.json +++ b/Test/SysLibTest/output/13110effbb0bb06c.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/28de517e3820658a.deps.json b/Test/SysLibTest/output/28de517e3820658a.deps.json index c1325a1..daaeb25 100644 --- a/Test/SysLibTest/output/28de517e3820658a.deps.json +++ b/Test/SysLibTest/output/28de517e3820658a.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/4826f733b0735536.deps.json b/Test/SysLibTest/output/4826f733b0735536.deps.json index c1325a1..daaeb25 100644 --- a/Test/SysLibTest/output/4826f733b0735536.deps.json +++ b/Test/SysLibTest/output/4826f733b0735536.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/59e00d50660b941e.deps.json b/Test/SysLibTest/output/59e00d50660b941e.deps.json index 2c96d96..2127cb0 100644 --- a/Test/SysLibTest/output/59e00d50660b941e.deps.json +++ b/Test/SysLibTest/output/59e00d50660b941e.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json b/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json deleted file mode 100644 index a1ae125..0000000 --- a/Test/SysLibTest/output/76dd6c275aa72b3b.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/7d8c26e41226955a.deps.json b/Test/SysLibTest/output/7d8c26e41226955a.deps.json index c1325a1..daaeb25 100644 --- a/Test/SysLibTest/output/7d8c26e41226955a.deps.json +++ b/Test/SysLibTest/output/7d8c26e41226955a.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/_shared_sym_includes.pickle b/Test/SysLibTest/output/_shared_sym_includes.pickle index 8fcc71627e040bd4585b5e55a8e018acd5231ecb..903f55876d2d0c85c21116127e25054b361fadf8 100644 GIT binary patch literal 831022 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

^-V`>qqT{lN?!$6yiMXBf7}Lx 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 x literal 768105 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�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 diff --git a/Test/SysLibTest/output/a03139660029514f.deps.json b/Test/SysLibTest/output/a03139660029514f.deps.json index 0ae036f..1b220d6 100644 --- a/Test/SysLibTest/output/a03139660029514f.deps.json +++ b/Test/SysLibTest/output/a03139660029514f.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SysLibTest/output/a335eb99f2e34479.deps.json b/Test/SysLibTest/output/a335eb99f2e34479.deps.json index c1325a1..daaeb25 100644 --- a/Test/SysLibTest/output/a335eb99f2e34479.deps.json +++ b/Test/SysLibTest/output/a335eb99f2e34479.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/a68b70f233541a7f.deps.json b/Test/SysLibTest/output/a68b70f233541a7f.deps.json index a1ae125..daaeb25 100644 --- a/Test/SysLibTest/output/a68b70f233541a7f.deps.json +++ b/Test/SysLibTest/output/a68b70f233541a7f.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/abbcbd92436cc16a.deps.json b/Test/SysLibTest/output/abbcbd92436cc16a.deps.json deleted file mode 100644 index a1ae125..0000000 --- a/Test/SysLibTest/output/abbcbd92436cc16a.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json b/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json index a378de2..e3d2a83 100644 --- a/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json +++ b/Test/SysLibTest/output/c70684ccfe48a5a9.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/SysLibTest/output/d152115b49e50218.deps.json b/Test/SysLibTest/output/d152115b49e50218.deps.json index a1ae125..daaeb25 100644 --- a/Test/SysLibTest/output/d152115b49e50218.deps.json +++ b/Test/SysLibTest/output/d152115b49e50218.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "subprocess": "2da636c61863c815", "os_backend": "59e00d50660b941e", "posix": "6503c97dde0c79c4", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "os.__init__": "76dd6c275aa72b3b", "__init__": "76dd6c275aa72b3b", "os": "76dd6c275aa72b3b", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "syslibtest_impl": "a03139660029514f", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "shutil": "abbcbd92436cc16a", "sys": "b5a965302cded36b", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "sys": "0c67644125bea0fd", "os.path": "13110effbb0bb06c", "path": "13110effbb0bb06c", "stdio": "285b6aa29a34754d", "posix": "28de517e3820658a", "os.__init__": "4826f733b0735536", "__init__": "4826f733b0735536", "os": "4826f733b0735536", "os_backend": "59e00d50660b941e", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "shutil": "7d8c26e41226955a", "string": "928c0ff6d8c69ec9", "syslibtest_impl": "a03139660029514f", "subprocess": "a335eb99f2e34479", "os._win32": "a68b70f233541a7f", "_win32": "a68b70f233541a7f", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c70684ccfe48a5a9", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "os._posix": "d152115b49e50218", "_posix": "d152115b49e50218", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/SysLibTest/temp/0035c95a18d4f8e8.pyi b/Test/SysLibTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/SysLibTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/SysLibTest/temp/0035c95a18d4f8e8.stub.ll.dep b/Test/SysLibTest/temp/0035c95a18d4f8e8.stub.ll.dep deleted file mode 100644 index f0e8002..0000000 --- a/Test/SysLibTest/temp/0035c95a18d4f8e8.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|f5522571bcce7bcb|f6b51804a0ba8ff0 \ No newline at end of file diff --git a/Test/SysLibTest/temp/067c78e9f121dce3.pyi b/Test/SysLibTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/SysLibTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/SysLibTest/temp/067c78e9f121dce3.stub.ll.dep b/Test/SysLibTest/temp/067c78e9f121dce3.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/SysLibTest/temp/067c78e9f121dce3.stub.ll.dep +++ b/Test/SysLibTest/temp/067c78e9f121dce3.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/06f53cc594b4ac6c.pyi b/Test/SysLibTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/SysLibTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/SysLibTest/temp/06f53cc594b4ac6c.stub.ll.dep b/Test/SysLibTest/temp/06f53cc594b4ac6c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/SysLibTest/temp/06f53cc594b4ac6c.stub.ll.dep +++ b/Test/SysLibTest/temp/06f53cc594b4ac6c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/0c67644125bea0fd.stub.ll.dep b/Test/SysLibTest/temp/0c67644125bea0fd.stub.ll.dep index 4bdbce3..4ee95b6 100644 --- a/Test/SysLibTest/temp/0c67644125bea0fd.stub.ll.dep +++ b/Test/SysLibTest/temp/0c67644125bea0fd.stub.ll.dep @@ -1 +1 @@ -067c78e9f121dce3|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|067c78e9f121dce3|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/13110effbb0bb06c.pyi b/Test/SysLibTest/temp/13110effbb0bb06c.pyi deleted file mode 100644 index 3584bd2..0000000 --- a/Test/SysLibTest/temp/13110effbb0bb06c.pyi +++ /dev/null @@ -1,35 +0,0 @@ -""" -Auto-generated Python stub file from os.path.py -Module: os.path -""" - - -import t, c -from stdint import * -import string -import memhub -import platmacro - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def sep() -> t.CChar: pass - -def _is_sep(ch: t.CChar) -> bool: pass - -def _dup_str(s: str) -> str: pass - -def _substr(s: str, start: t.CSizeT, end: t.CSizeT) -> str: pass - -def isabs(path: str) -> bool: pass - -def join(path1: str, path2: str) -> str: pass - -def basename(path: str) -> str: pass - -def dirname(path: str) -> str: pass - -def splitext_name(path: str) -> str: pass - -def splitext_ext(path: str) -> str: pass - -def normpath(path: str) -> str: pass diff --git a/Test/SysLibTest/temp/13110effbb0bb06c.stub.ll.dep b/Test/SysLibTest/temp/13110effbb0bb06c.stub.ll.dep index 21a57ff..bf9223f 100644 --- a/Test/SysLibTest/temp/13110effbb0bb06c.stub.ll.dep +++ b/Test/SysLibTest/temp/13110effbb0bb06c.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|93c1d18e35d188d6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/14d33679f7fadf1f.pyi b/Test/SysLibTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/SysLibTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/SysLibTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/SysLibTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/SysLibTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/271ea3decb810db2.pyi b/Test/SysLibTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/SysLibTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/SysLibTest/temp/271ea3decb810db2.stub.ll.dep b/Test/SysLibTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SysLibTest/temp/2da636c61863c815.pyi b/Test/SysLibTest/temp/2da636c61863c815.pyi deleted file mode 100644 index 7c91519..0000000 --- a/Test/SysLibTest/temp/2da636c61863c815.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -Auto-generated Python stub file from subprocess.py -Module: subprocess -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import string -import w32.win32base -import w32.win32file -import w32.win32process -import w32.win32sync -import posix - -OUTPUT_BUF_SIZE: t.CDefine = 65536 -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -class CompletedProcess: - args: str - returncode: int - stdout: str - stderr: str - def __new__(self: CompletedProcess, args: str, returncode: int, stdout: str, stderr: str) -> t.CPtr: pass - def __init__(self: CompletedProcess, args: str, returncode: int, stdout: str, stderr: str) -> t.CInt: pass - -def run(args: str, capture_output: bool, text: bool) -> CompletedProcess | t.CPtr: pass - -def _run_win32(args: str, capture_output: bool, text: bool) -> CompletedProcess | t.CPtr: pass - -def _run_posix(args: str, capture_output: bool, text: bool) -> CompletedProcess | t.CPtr: pass diff --git a/Test/SysLibTest/temp/2da636c61863c815.stub.ll.dep b/Test/SysLibTest/temp/2da636c61863c815.stub.ll.dep deleted file mode 100644 index a2c49f6..0000000 --- a/Test/SysLibTest/temp/2da636c61863c815.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -067c78e9f121dce3|06f53cc594b4ac6c|271ea3decb810db2|6503c97dde0c79c4|6f62fe05c5ea1ceb|7e529fe7a078cfef|93c1d18e35d188d6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb|f6b51804a0ba8ff0 \ No newline at end of file diff --git a/Test/SysLibTest/temp/59e00d50660b941e.pyi b/Test/SysLibTest/temp/59e00d50660b941e.pyi deleted file mode 100644 index 5236edb..0000000 --- a/Test/SysLibTest/temp/59e00d50660b941e.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from os_backend.py -Module: os_backend -""" - - -import t, c -from stdint import * -import platmacro -import os._win32 -import os._posix - -def os_exists(path: str) -> bool: pass - -def os_remove(path: str) -> int: pass - -def os_isdir(path: str) -> bool: pass - -def os_getsize(path: str) -> t.CInt64T: pass diff --git a/Test/SysLibTest/temp/6446627d4f07a1b5.pyi b/Test/SysLibTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/SysLibTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/SysLibTest/temp/6503c97dde0c79c4.pyi b/Test/SysLibTest/temp/6503c97dde0c79c4.pyi deleted file mode 100644 index d332326..0000000 --- a/Test/SysLibTest/temp/6503c97dde0c79c4.pyi +++ /dev/null @@ -1,189 +0,0 @@ -""" -Auto-generated Python stub file from posix.py -Module: posix -""" - - -import t, c -from stdint import * - -DIR: t.CTypedef = t.CVoid | t.CPtr -mode_t: t.CTypedef = t.CUInt32T -pid_t: t.CTypedef = t.CInt32T -off_t: t.CTypedef = t.CInt64T -dev_t: t.CTypedef = t.CUInt64T -ino_t: t.CTypedef = t.CUInt64T -nlink_t: t.CTypedef = t.CUInt64T -uid_t: t.CTypedef = t.CUInt32T -gid_t: t.CTypedef = t.CUInt32T -blksize_t: t.CTypedef = t.CInt64T -blkcnt_t: t.CTypedef = t.CInt64T -time_t: t.CTypedef = t.CInt64T -O_RDONLY: t.CDefine = 0 -O_WRONLY: t.CDefine = 1 -O_RDWR: t.CDefine = 2 -O_CREAT: t.CDefine = 0o100 -O_EXCL: t.CDefine = 0o200 -O_TRUNC: t.CDefine = 0o1000 -O_APPEND: t.CDefine = 0o2000 -O_NONBLOCK: t.CDefine = 0o4000 -O_CLOEXEC: t.CDefine = 0o2000000 -F_OK: t.CDefine = 0 # 文件存在 -R_OK: t.CDefine = 4 # 可读 -W_OK: t.CDefine = 2 # 可写 -X_OK: t.CDefine = 1 # 可执行 -S_IFMT: t.CDefine = 0o170000 # 类型掩码 -S_IFSOCK: t.CDefine = 0o140000 # 套接字 -S_IFLNK: t.CDefine = 0o120000 # 符号链接 -S_IFREG: t.CDefine = 0o100000 # 普通文件 -S_IFBLK: t.CDefine = 0o060000 # 块设备 -S_IFDIR: t.CDefine = 0o040000 # 目录 -S_IFCHR: t.CDefine = 0o020000 # 字符设备 -S_IFIFO: t.CDefine = 0o010000 # FIFO/管道 -S_ISUID: t.CDefine = 0o4000 # set-user-ID -S_ISGID: t.CDefine = 0o2000 # set-group-ID -S_ISVTX: t.CDefine = 0o1000 # sticky 位 -S_IRWXU: t.CDefine = 0o700 # 用户读写执行 -S_IRUSR: t.CDefine = 0o400 # 用户读 -S_IWUSR: t.CDefine = 0o200 # 用户写 -S_IXUSR: t.CDefine = 0o100 # 用户执行 -S_IRWXG: t.CDefine = 0o070 # 组读写执行 -S_IRGRP: t.CDefine = 0o040 # 组读 -S_IWGRP: t.CDefine = 0o020 # 组写 -S_IXGRP: t.CDefine = 0o010 # 组执行 -S_IRWXO: t.CDefine = 0o007 # 其他读写执行 -S_IROTH: t.CDefine = 0o004 # 其他读 -S_IWOTH: t.CDefine = 0o002 # 其他写 -S_IXOTH: t.CDefine = 0o001 # 其他执行 -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -PATH_MAX: t.CDefine = 4096 -NAME_MAX: t.CDefine = 255 -_SC_NPROCESSORS_ONLN: t.CDefine = 84 -_SC_PAGESIZE: t.CDefine = 30 -_SC_CLK_TCK: t.CDefine = 2 -DT_UNKNOWN: t.CDefine = 0 -DT_FIFO: t.CDefine = 1 -DT_CHR: t.CDefine = 2 -DT_DIR: t.CDefine = 4 -DT_BLK: t.CDefine = 6 -DT_REG: t.CDefine = 8 -DT_LNK: t.CDefine = 10 -DT_SOCK: t.CDefine = 12 -DT_WHT: t.CDefine = 14 -WNOHANG: t.CDefine = 1 -WUNTRACED: t.CDefine = 2 -WCONTINUED: t.CDefine = 8 - -class Stat: - st_dev: dev_t - st_ino: ino_t - st_nlink: nlink_t - st_mode: mode_t - st_uid: uid_t - st_gid: gid_t - __pad0: INT - st_rdev: dev_t - st_size: off_t - st_blksize: blksize_t - st_blocks: blkcnt_t - st_atim_sec: time_t - st_atim_nsec: LONGLONG - st_mtim_sec: time_t - st_mtim_nsec: LONGLONG - st_ctim_sec: time_t - st_ctim_nsec: LONGLONG - __unused0: LONGLONG - __unused1: LONGLONG - __unused2: LONGLONG -class Dirent: - d_ino: ino_t - d_off: off_t - d_reclen: USHORT - d_type: BYTE - d_name: CHARPTR - -def open(path: t.CConst | str, oflag: INT, *args) -> INT | t.State: pass - -def close(fd: INT) -> INT | t.State: pass - -def read(fd: INT, buf: bytes, count: t.CSizeT) -> ssize_t | t.State: pass - -def write(fd: INT, buf: t.CConst | bytes, count: t.CSizeT) -> ssize_t | t.State: pass - -def lseek(fd: INT, offset: off_t, whence: INT) -> off_t | t.State: pass - -def unlink(path: t.CConst | str) -> INT | t.State: pass - -def access(path: t.CConst | str, amode: INT) -> INT | t.State: pass - -def realpath(path: t.CConst | str, resolved: CHARPTR) -> CHARPTR | t.State: pass - -def rename(oldpath: t.CConst | str, newpath: t.CConst | str) -> INT | t.State: pass - -def chmod(path: t.CConst | str, mode: mode_t) -> INT | t.State: pass - -def stat(path: t.CConst | str, buf: Stat | t.CPtr) -> INT | t.State: pass - -def fstat(fd: INT, buf: Stat | t.CPtr) -> INT | t.State: pass - -def opendir(name: t.CConst | str) -> DIR | t.CPtr | t.State: pass - -def readdir(dirp: DIR | t.CPtr) -> Dirent | t.CPtr | t.State: pass - -def closedir(dirp: DIR | t.CPtr) -> INT | t.State: pass - -def mkdir(path: t.CConst | str, mode: mode_t) -> INT | t.State: pass - -def rmdir(path: t.CConst | str) -> INT | t.State: pass - -def getcwd(buf: CHARPTR, size: t.CSizeT) -> CHARPTR | t.State: pass - -def chdir(path: t.CConst | str) -> INT | t.State: pass - -def fork() -> pid_t | t.State: pass - -def execvp(file: t.CConst | str, argv: CHARPTR | t.CPtr) -> INT | t.State: pass - -def execv(path: t.CConst | str, argv: CHARPTR | t.CPtr) -> INT | t.State: pass - -def waitpid(pid: pid_t, status: INT | t.CPtr, options: INT) -> pid_t | t.State: pass - -def pipe(fds: INT | t.CPtr) -> INT | t.State: pass - -def dup2(oldfd: INT, newfd: INT) -> INT | t.State: pass - -def _exit(status: INT) -> t.CVoid | t.State: pass - -def getpid() -> pid_t | t.State: pass - -def getenv(name: t.CConst | str) -> CHARPTR | t.State: pass - -def setenv(name: t.CConst | str, value: t.CConst | str, overwrite: INT) -> INT | t.State: pass - -def sysconf(name: INT) -> LONG | t.State: pass - -def isatty(fd: INT) -> INT | t.State: pass - -def S_ISREG(mode: mode_t) -> bool: pass - -def S_ISDIR(mode: mode_t) -> bool: pass - -def S_ISLNK(mode: mode_t) -> bool: pass - -def S_ISCHR(mode: mode_t) -> bool: pass - -def S_ISBLK(mode: mode_t) -> bool: pass - -def S_ISFIFO(mode: mode_t) -> bool: pass - -def S_ISSOCK(mode: mode_t) -> bool: pass - -def WIFEXITED(status: INT) -> bool: pass - -def WEXITSTATUS(status: INT) -> INT: pass - -def WIFSIGNALED(status: INT) -> bool: pass - -def WTERMSIG(status: INT) -> INT: pass diff --git a/Test/SysLibTest/temp/6503c97dde0c79c4.stub.ll.dep b/Test/SysLibTest/temp/6503c97dde0c79c4.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SysLibTest/temp/6503c97dde0c79c4.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/6f62fe05c5ea1ceb.pyi b/Test/SysLibTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/SysLibTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/SysLibTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/SysLibTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SysLibTest/temp/71e0a3ffcb3ebfad.pyi b/Test/SysLibTest/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/SysLibTest/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/SysLibTest/temp/72e2d5ccb7cedcf1.pyi b/Test/SysLibTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/SysLibTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/SysLibTest/temp/76dd6c275aa72b3b.pyi b/Test/SysLibTest/temp/76dd6c275aa72b3b.pyi deleted file mode 100644 index cd52873..0000000 --- a/Test/SysLibTest/temp/76dd6c275aa72b3b.pyi +++ /dev/null @@ -1,41 +0,0 @@ -""" -Auto-generated Python stub file from os.__init__.py -Module: os.__init__ -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import os.path -import os._win32 -import os._posix - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def exists(path: str) -> bool: pass - -def isdir(path: str) -> bool: pass - -def isfile(path: str) -> bool: pass - -def getsize(path: str) -> t.CInt64T: pass - -def getcwd() -> str: pass - -def chdir(path: str) -> int: pass - -def mkdir(path: str) -> int: pass - -def remove(path: str) -> int: pass - -def rmdir(path: str) -> int: pass - -def rename(old_path: str, new_path: str) -> int: pass - -def chmod(path: str, mode: int) -> int: pass - -def listdir(path: str, out_names: str, max_count: ULONG) -> ULONG: pass - -def system(cmd: str) -> int: pass diff --git a/Test/SysLibTest/temp/76dd6c275aa72b3b.stub.ll.dep b/Test/SysLibTest/temp/76dd6c275aa72b3b.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SysLibTest/temp/7d8c26e41226955a.stub.ll.dep b/Test/SysLibTest/temp/7d8c26e41226955a.stub.ll.dep index b7fa37b..d17a3d7 100644 --- a/Test/SysLibTest/temp/7d8c26e41226955a.stub.ll.dep +++ b/Test/SysLibTest/temp/7d8c26e41226955a.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6b51804a0ba8ff0|f9d023d1df2bc9c5|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6b51804a0ba8ff0|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/7e529fe7a078cfef.pyi b/Test/SysLibTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/SysLibTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/SysLibTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/SysLibTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SysLibTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/90c53dd6db8d41cf.pyi b/Test/SysLibTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/SysLibTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/SysLibTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/SysLibTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SysLibTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/93c1d18e35d188d6.pyi b/Test/SysLibTest/temp/93c1d18e35d188d6.pyi deleted file mode 100644 index a8cd09e..0000000 --- a/Test/SysLibTest/temp/93c1d18e35d188d6.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from platmacro.py -Module: platmacro -""" - - -import t, c - -IS_WINDOWS: t.CDefine = 1 -IS_WIN64: t.CDefine = 1 -IS_X86_64: t.CDefine = 1 -IS_LP64: t.CDefine = 1 -IS_LITTLE_ENDIAN: t.CDefine = 1 -IS_LINUX: t.CDefine = 0 -IS_MACOS: t.CDefine = 0 -IS_ARM64: t.CDefine = 0 -IS_BIG_ENDIAN: t.CDefine = 0 -IS_ILP32: t.CDefine = 0 -PTR_SIZE: t.CDefine = t.CSizeT().Size -INT_SIZE: t.CDefine = 4 -LONG_SIZE: t.CDefine = t.CLong().Size -WORD_SIZE: t.CDefine = t.CSizeT().Size -CACHE_LINE_SIZE: t.CDefine = 64 -PAGE_SIZE: t.CDefine = 4096 -STACK_ALIGN: t.CDefine = 16 -MAX_PATH_LEN: t.CDefine = 260 -PLATFORM_NAME: t.CDefine = 1 -ARCH_NAME: t.CDefine = 1 -WINVER: t.CDefine = 0x0A00 -_WIN32_WINNT: t.CDefine = 0x0A00 -NTDDI_VERSION: t.CDefine = 0x0A000006 -HAS_SSE2: t.CDefine = 1 -HAS_AVX: t.CDefine = 1 -HAS_AVX2: t.CDefine = 1 -HAS_FMA: t.CDefine = 1 -HAS_NEON: t.CDefine = 0 -ALIGNOF_INT: t.CDefine = 4 -ALIGNOF_LONG: t.CDefine = t.CLong().Size // 8 -ALIGNOF_PTR: t.CDefine = t.CSizeT().Size // 8 -ALIGNOF_DOUBLE: t.CDefine = 8 -ALIGNOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_SHORT: t.CDefine = 2 -SIZEOF_INT: t.CDefine = 4 -SIZEOF_LONG: t.CDefine = t.CLong().Size // 8 -SIZEOF_LONG_LONG: t.CDefine = 8 -SIZEOF_FLOAT: t.CDefine = 4 -SIZEOF_DOUBLE: t.CDefine = 8 -SIZEOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_POINTER: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_SIZE_T: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_PTRDIFF_T: t.CDefine = t.CPtrDiffT().Size // 8 -BYTE_ORDER_LE: t.CDefine = 1 -BYTE_ORDER_BE: t.CDefine = 0 \ No newline at end of file diff --git a/Test/SysLibTest/temp/93c1d18e35d188d6.stub.ll.dep b/Test/SysLibTest/temp/93c1d18e35d188d6.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/SysLibTest/temp/_phase1_manifest.json b/Test/SysLibTest/temp/_phase1_manifest.json index 2df4e65..c7a2f3f 100644 --- a/Test/SysLibTest/temp/_phase1_manifest.json +++ b/Test/SysLibTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\main.py": {"sha1": "c70684ccfe48a5a9", "mtime": 1782828223.3150382, "size": 918}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\os_backend.py": {"sha1": "59e00d50660b941e", "mtime": 1782491896.4070306, "size": 1323}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\syslibtest_impl.py": {"sha1": "a03139660029514f", "mtime": 1782828233.2147534, "size": 12395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\__init__.py": {"sha1": "76dd6c275aa72b3b", "mtime": 1782826646.8940291, "size": 4395}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_posix.py": {"sha1": "d152115b49e50218", "mtime": 1782826648.538678, "size": 5665}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_win32.py": {"sha1": "a68b70f233541a7f", "mtime": 1782826646.872196, "size": 7601}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\path.py": {"sha1": "13110effbb0bb06c", "mtime": 1782826648.9189062, "size": 9499}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.py": {"sha1": "6503c97dde0c79c4", "mtime": 1783064077.6376991, "size": 10386}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\shutil.py": {"sha1": "abbcbd92436cc16a", "mtime": 1782826619.0231705, "size": 9131}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.py": {"sha1": "2da636c61863c815", "mtime": 1783847277.4569364, "size": 7627}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.py": {"sha1": "b5a965302cded36b", "mtime": 1783569641.07535, "size": 5509}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.py": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\main.vp": {"sha1": "c70684ccfe48a5a9", "mtime": 1782828223.3150382, "size": 918}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\os_backend.vp": {"sha1": "59e00d50660b941e", "mtime": 1782491896.4070306, "size": 1323}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\SysLibTest\\App\\syslibtest_impl.vp": {"sha1": "a03139660029514f", "mtime": 1782828233.2147534, "size": 12395}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\__init__.vp": {"sha1": "4826f733b0735536", "mtime": 1785922863.3479233, "size": 4559}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_posix.vp": {"sha1": "d152115b49e50218", "mtime": 1782826648.538678, "size": 5665}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\_win32.vp": {"sha1": "a68b70f233541a7f", "mtime": 1782826646.872196, "size": 7601}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\os\\path.vp": {"sha1": "13110effbb0bb06c", "mtime": 1782826648.9189062, "size": 9499}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.vp": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\posix.vp": {"sha1": "28de517e3820658a", "mtime": 1785335629.2014928, "size": 10586}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\shutil.vp": {"sha1": "7d8c26e41226955a", "mtime": 1785787875.2005863, "size": 9416}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\subprocess.vp": {"sha1": "a335eb99f2e34479", "mtime": 1785319401.2041914, "size": 7841}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\sys.vp": {"sha1": "0c67644125bea0fd", "mtime": 1785325556.7317626, "size": 5606}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.vp": {"sha1": "d137b1f3311f3a7f", "mtime": 1785902648.1442463, "size": 13765}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.vp": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.vp": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32sync.vp": {"sha1": "06f53cc594b4ac6c", "mtime": 1782297500.2581685, "size": 4726}} \ No newline at end of file diff --git a/Test/SysLibTest/temp/_sha1_map.txt b/Test/SysLibTest/temp/_sha1_map.txt index 9a92473..b69b5aa 100644 --- a/Test/SysLibTest/temp/_sha1_map.txt +++ b/Test/SysLibTest/temp/_sha1_map.txt @@ -1,28 +1,28 @@ -0035c95a18d4f8e8:includes/w32\fileio.py -067c78e9f121dce3:includes/w32\win32process.py -06f53cc594b4ac6c:includes/w32\win32sync.py -13110effbb0bb06c:includes/os\path.py -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -2da636c61863c815:includes/subprocess.py -59e00d50660b941e:os_backend.py -6503c97dde0c79c4:includes/posix.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -76dd6c275aa72b3b:includes/os\__init__.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -93c1d18e35d188d6:includes/platmacro.py -a03139660029514f:syslibtest_impl.py -a68b70f233541a7f:includes/os\_win32.py -abbcbd92436cc16a:includes/shutil.py -b5a965302cded36b:includes/sys.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3b259b4059f8668:includes/viperlib.py -c70684ccfe48a5a9:main.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -d152115b49e50218:includes/os\_posix.py -f5522571bcce7bcb:includes/stdint.py -f6b51804a0ba8ff0:includes/w32\win32file.py +04e5fe47ff2af528:includes/memhub.vp +067c78e9f121dce3:includes/w32\win32process.vp +06f53cc594b4ac6c:includes/w32\win32sync.vp +0c67644125bea0fd:includes/sys.vp +13110effbb0bb06c:includes/os\path.vp +285b6aa29a34754d:includes/stdio.vp +28de517e3820658a:includes/posix.vp +4826f733b0735536:includes/os\__init__.vp +59e00d50660b941e:os_backend.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +748d0424e8976fa0:includes/testcheck.vp +7d8c26e41226955a:includes/shutil.vp +928c0ff6d8c69ec9:includes/string.vp +a03139660029514f:syslibtest_impl.vp +a335eb99f2e34479:includes/subprocess.vp +a68b70f233541a7f:includes/os\_win32.vp +aa246c6e6aa30484:includes/atom.vp +b57252077e6b596b:includes/platmacro.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c70684ccfe48a5a9:main.vp +c9f4be41ca1cc2b4:includes/viperio.vp +d137b1f3311f3a7f:includes/w32\fileio.vp +d152115b49e50218:includes/os\_posix.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +f6b51804a0ba8ff0:includes/w32\win32file.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/SysLibTest/temp/_shared_sym.json b/Test/SysLibTest/temp/_shared_sym.json index b4031f30f4177f1dcb4ca89ee906d142e4d54cce..79b6ed9e90152cf48f812a2f8174b8e955f134d5 100644 GIT binary patch literal 762350 zcmeFa33OZ8c_v6n+(}8)zE!DIn@Xy3$>JhPs>M|x2ujo=A6Nt^N>!?Yu{`SH3IrG| zqEv0gu5?o2b7L~`F&xKnI*T(-I@>s#)5polHkqV7j?-y-96O#Qo$2m$pSZi-C-KB- z$KAH)-nRe`eD8w5#k)Tw;MH+igv8S2_y7O>xBD;e>;BNTu5DfPpL?ZK#o^rD)mSDK z$wy-;rBvLXO2*E_Gg;+KNc;V;{@X*=PaiCueyc?P+y03DALq1BJ;~f!K3gh2RQ@Y2 zN7IRvk~?GkIu*^469)X@yKBm9dL>gT|3y0@`CO^Er~Dt%?+C3a@lvtB{H6BIGCg)M z5+i?8Bu~DnBo_zBp^Ih zpR9iz&1R!_BZ=f{uJn4T*q6&^veBFLjG<&MvQkLLBNU)o+--gxS&L?)`geCnvp3I{ ziru#}$wcYxQnWate-r(NNIJTzXn$wrzsxH6LN;AO!#XX|ZnT$tMe(5n#a)yV$#gtb zND%VnOT`}lR3?+E5Ul5RG*zHKSr4T`u5`NCEt4}!#ja9uXf{VEos3h;kso$oHn)&T zrt=E@$@^z>q2$f9k|1Aqhmvn9C8@sI#> z^6yEV2!x=?Xd)RW|2d^eESX&ZkOQ8o<5?&g(9CYvCqqVeJ|`Cgs4 zIspeNALL>``NLd3nx{YP&P+CWGntMOc{I37|4{#l<-*&gSaC-rw^~9Y#X(&n=aqa^ zCyOQ;-IUVw#NJdgt)w&bXX##{+$X;`w3QMeE+Vj@plnYr^&q_qPR1m#8c6%lF-RQ&f6K+1xWi1 z?Ry4R2`M6}B$0eHSnQu6;%X2_>iWLYVyU>B{7?o3qN!w*9<@8GZldu+SjzGYasL(Q9k;WMNje33Kakl_Zf(tHQ*Ll4VArPd>kJm9~FbyPJc6c*03&T zWi)ykjS=~rP|-ORO{(a8-I~7^nN@lzt8d&p$c>|99(PfS7-X*XlQDF`2+;*{UAiDl z7 zYk_Gl!_FTS4LG4BPCR#6z7^S{XsdjG#>zlIp_#;n>d(0|0_$gi_kEK9AR!3 z2a^bGz!!psIqV2?hd7vooAiDH3++xvnBC%Fh61ld{Gl)~%w3K!d)$Y4l;&m5l$|Zt z(leH*8vTokllAirhPyOhNpch*LFK+`Qn;E~Kz~x9!RI+>02Nqo76+H2YxMO>8ul9; z@S(!YP4L}{HSrPh!dRvNeu#YHAOckAb-el>xEg=q7d1*4Nn1}(vN|74ld2=WCqDiZ(DCNpMbAzs=T?-7^D8T3(Uo&!7pmSxNtIb7vX;%< zPLgt_NTdb419*!rcGIdfXKeMnqix%=0*k|g26~4tcIRj2hjlh^~SBB8)jB(zaoB*e&G7yF2ESfFKqj&$DQ@tZd_*To^74tlY52Mc|1u#h7)vmPA=XnBHBbIe;m^g#PP1JM*w4UyI8nzNE3 z&QG6zX*Qj|u$A|tm*GFq#Mo6P1}WKRxq}^|Dtik#t#igvOSXMDFr=gJcrg&^9rcrF zV5*QHJtdAZCd@s0X|sETKTm@LC-pDvXMhT82UeqZ%q}J;fJD7_`-yh15!r5#$o7N_ zk?n@9&>nB^hKy{BgJol%a~3&5jegD8O-^iO?etjxfwp%2T1-GXzMP4HcM$Hd!eD2i z*l_H-yMMDj_&0ViE`GZkIQ&@_@(yut2IA-zZQ6|AVo3j?8q!}$0zJ?QppViZ&hq>_ zNe~jGWfL(3p)<09{Ztk@H~%lv&mD-6ZsnWlNP!VzZ{cJz`XEU6q}CQus~4g(t}usx zLF%%qUIcjFJnC$W9*K~?_nWkZb}h3$7NL#&PLB8%LQrXW)0keX<;`O{qj8qhok1~u zf25LdCvDWVBCxs{zh$qZ$9M+gNqrp@)1^Ou*VBEGrVOET9@=YQth&45X!N4VYw zvxnde&H1Jx^RsefYA)!PfWeXqb4Q+%(sS3r?l-|s&4%ZF3z4bo;Xnu&?;Zx;`7Qz7 zKYIz_sio=Z>n&q1DV}#`?+N$WyRU-QcP$cJoDM8Pb9WygTq?~vb1w&c1ZyNT`zmzj z6KM``X0HfUMMm|YLhMW{3)3uM@#ko=nPU)7oi#SQDsWp~YJ(5aEE5RUmX}#zNi5dg z6~4Cq(FA{0EZ7kPtUHl2{za0@D^HBUzodOK;%5A-d@_3UM|Zo(n_*^7O0^I>SvS$$(*{_i}DlUb+T+FUc4gXN&@d zSy7DhK7SBeSJRgYN8KX`qi=B@{9e)r3Mh;_2_L6sFSX`U(w7M+pj2RI=N8CQD6Fxh z&kzVPM9T%ZN6dNbj8V)WeD=;*oF#6{)Y*|E{;X&h!aE<`qVF3kDDGr`6A zi0lKO?|O_S9Rd;$1HMK7J(XcMZC)vWIEHZG4RWzYIO| zl+4^=Xl(&Ncgo@E>DdTjXJ|GEtyc@hw3nVlq?1Pt>j7EA%5`7V>4)4`>wIp{LhQ-DbKnMk#?QcK{T zX2BH@q7T!mWTK5imxGJY`sisEP5~Pz1`V9>T9;16bIQ0#0<`XsfwBck_Z@&RM=UTS zEx`IL3#$OlYhKWqxu6gFf}UaF6d<}g4W70{?emKdi|E^s&mS#N29+X zH?g+Ot28&Uw!P~$H?g+OD>p6vvsohsUrhvA!)dX;Cg2tn+dx)xIpBltyh)SA zEh$NXtnhr;j#*1-wFEe1t*7Na8&x^&UiE2t>^Bg@Yi!8+PmBIC@U}okwwuY<|eW+rltfJi#+>jNc7MH}p-Tt+scJZdr!7D2vt4Qsd zyA$e3EsXAz%2H>@ZCztJP*&Z*Pvmq0snc7NT-P{+h9;19hw{-pFuY)Mvq#4+B$RWb z=aumbV`nGNU5HlA9z9j;CA-5C%57&%xV}A=UFeXC4y)*hijJx-Y-ug_ke?_*=qyR@ ztuo#~Nflug-BM9XMXM@Gt0;4?ME3?4Vj3Be>CAmb2J#cZlA)hSLpqgAH@COcb$RI1 zekNE_^bu05W)h0CNR*d3kB@D&%-N0g*7n_F#a{Zu!IFgPib68sOc8u_n7z@N?z9y| zhaU11!IRK2qFn%gnatvtX z$i#2u7|NnW)aWPFh^O-j8yEzX5AqsElZY zV9N;Z-pTeo#R&%9Nsa}yvs5JFo=C)sR3tP)bi7CmL?VTBA*V3?@XojyWipI1OlpUb zfiV)YGxTJ^9N}DF0$4=}87Xxx!0nw*W|cH_3OGSB+y|)DHP$JeA{o-i{g$r8=VAQ< zLIM)lG46Y7A`1LFuq5bDM6yaerKFvyKwRft{-ty-c{8mfLMW5X*YKZdif*J3LkCID z-Q{$C?~+k+1?N5Yl4RK3HFic~XPGX36wPiymVPm0>86jNppP7hNIJU8CQ6Tg3t~`L zS|`Rfw`HWyf7!RFm7RhKiAX!KV|rH1WYl8s?MyOp;^`9d+aCpR|1K>cp~Gja_JYSC zs%S+;H&ujcKAhnQ)p)~3P`(@OC11%jK0hEgr%CV<{fnJ2Y9~q(-M$BdvDmYw=hg+l zENZDy`iSI+^_0#}x`q!1t8T#r0L7nV@zb!Gbp0L>MlC%q0^>ot;M+-Njf6a1zXya- zbH+e18txxmzXycziYVQ~?nqvEy7YEQ`#4HJlC7G?$FcH9MPD%O=suFzwa*{QXA5yl(0ZlVJ(En4 z0LJ$EBct=O7Nxlzn2-l17Xp&{vP3;D9~)g6A0H+E7d^jHRUFt<)SznRb{mXxyPkL|lVb#;TZmXi!ZeYJ){r60U4%lU zuZNa;Dm5|#hR7XP(Ic;yYOYG(sKr6|Djao^Gb$W8WNXz;jZ<45y0c1@QCGHwI9N1J zMa5_ur=ox~jYB5DzFpcv;|%y0^4aO+%1W)8zMAiec-wCFOJv(iOa@M3de*Z^ay=bw z2bjp=j>)tMj@klyb5DI{T5RJ!`9HUZk3qdfQ5knF-ML)Hi4}Mp*vjt-vPB8k3kD6MG z=225lhfOpzH?^i{e0_`JHs*_5XN$&NIML`OH6hH0RW6-jh)GSk;Erx(R7cQSGwpEy z2CZapQZuXJqmvh6=g+Q;jgOz37zIs;Akxp}u4d8VVNZe@O{vkTOrs;@A=QTAnZl%`{0D3UwcIpEe+gZ#seV-+RWddrILU1P$+xhlB z1jpB&IPz|9Yi{pxI4*auWU_pZ%{A^WdIp~*9(nE22h8b8o$ZBvfbib6s>#|lOufn- zC4PI2D@OOyd64G(gLMkUhqiTX>!SZO;B+u69yRIkgaci1r=nJvulJ!kg~J7z=v$8_ z^Q5<|DXDPC_BK+P^viq7xgJ}RhgPt8c7+TGMFDilY;4r!_rq{f(!G{sH8OAUv}|O4 zx6Jo>86K`zp^pH{K%%h5nCY>F449t9CN*Jx6!SdX**@n-;pCzxqTEUHO(QXsgDD8L z9t6;rjMo60g&-B}QWtAFLT5|CKZlb7nls{cBWlE**z*mz?81-3a$ZR@rnhfl85(#O z=1v}VwhH)3KtaeUd0s&f>+{(VNUg^ZC16DToGKNU!pcuk!F`;3T0h6qyYz1}=#f1@tT{ zny8eRxjlmJKF>M+EHIaOhm$pM;XN+fa)v(-%;h;*^6oNtt;jC|bJ>5HZ_uE3m&@C~ zI64A80nFv8IqxpR*M0pm9GCm4_cb#+6ZBLzxXS)jU^a(>e(yHJ-{w!kv3X#5b|!Fb zHXNAtt~2;`{+Dok9$Kbc4uyT;rI2V&^QTanD&fUHOs6`!Faxh#u~T!PG>0$tDM)_L z&V*(!$-X)7X1AaY|2N?{-M<_TEY1^Nd)FG(SGMi;wf-$YW(OmS(?NOeIv2BR&VH;p zM&lp@A{hW0A}PzTjFwb%Rj!i(xLVP7!fUkv!jx&Q$)h}mOikFX%V>^?-o#K1NG95BM8EQIfKA0c64cyUSg14BH< zfH>bJKv0Rg@hvO_WWE51|1#2+E~kc%`L1sF895k?$U%8(jyIm?hxsrQX21I|2Z+*{ z3kI$Qpe2@eZaFdYN>^9E02A3g6AAJqX80NT2m_)B7od9)9v^Lxc4DC<;5v3M!{d9D zg-?J^?Y;(&?=coW5$+qwfzQlC`!M^S}IRhIX(!UBmgV-*q1( ztt6S@eSPM~_#_kKPYA-uTP?$nk&HKF@KJ=HO8Ln9^2m?zDJI5u3*sYhJq$laI%LrK zKE5mnBX6AmKgQEcj3)$P4}jc8zQ-(n>o~@OctMPDT)ecn0IYDvSr7&JILq)5Cs+^#xj5J0A)aGF z6y)KMyU17Q$A1?mSrGdK-Nj(|GVonI&w?n(hg*h+c!32`kPCMW9^yq7L;>DSe<%=; zBB20u&XGQB{0-ghzG=sRh^)Vk(Z2-krqY)UM~uSw2>;qhUpE{v3b>B_3%>B>$h;3a zYyL$agV7O5btcI_{5z{1JI!G3XD3LczsQgjD6oz^3vg7T&P? zc!w$81>dDWX!g|rFwU1*IFGxJbBN;f&q2(dXxE?%_B4b1aYojN;(3KPZQ1G^DLACl4(m9llVk;L9yqv4R3rTfx+zQ?(g6eM zte8X=9-;X-zg*Zn@409_Sds>-K;J9zAg-?!(&Q~!468)M@D?vo>2v~Z$d!4vBn`pg z9@05YMw*I(P4{Uy!md7Al7_)iXI553q5dR`*#>IkXi3@$jyj>-7KQp?cWqu9M@!N! zaMa0krd6noqa|rK9O|9=y-uf+>098qHyrfj< zOVVCA)Vp;lkEL$ql5Yw#+)Q0=KVFjd!J*$(Mjub-MO|_xc-!fcv>y(;;WOovtMF{! zbhacNfWvLXT69S@R|MibfZCih?5(IksNCAGI<)qq=Qq#`DteI=54?*^4R}dKFU!bR zbMU||H-)42S~SD{Xse33q{Ez3{}04xFE6gf|42Rf=ha4mufhR0ZUtS~&4s&sD~|7` zz%??AmhhvMPh%zgg!aj}BKRrtiGwH^IHDNRu%1okmFB22SD^!;O0e>YP-U@-DocD+ z`7Us(q;iUKt2wINsnCH?<)2hO5vqK56;2rDuzibXz>CUSxnXO=_=Ln(|pJa z;K-x#xRT3pAulTr9lEJJ{-{a>{xu&V*5L?Y_;W;urq-f)+i;<@_}fL`U1V=CN2vMzaKMcVzj})owX@dqOrkiG zsDevJc9mB;9Aitzsf_%Cn>%}b;y;6v1|zt-spRA9&H2wnJzRLYRCW)@$H@uuv1WMX zt=Ht*oA|%L$wxW7^0dVqd1Bbqwb)2mo3L=|e}$6h$a$-Qd4>`y+20B3MhV@nvKUAJQ67&hdf%2sr3OVQs9r+mNw}0nS$O zzQ9L@kHV3`&f3 zRyUbk{Q~(P_>cqclQ)L&K9RoJidVgDo?cB5gym5rtN%_{Ks z_`v^5IPiP)b_JK#c;X+cg8!3z@IM6)-<_?N`2VPa{|9{V0hc@)D$k8okN7`TVgCvr z_TPeIy@9<0HXoLew*CG?BSvfcEr^D1-u}A~%M5MvjfiE2w*6kjvNCG_?T90~Z`Bz) z5)Ci9LpCKE4_|G*FVR5R=35gDlx@B{(LmYe8x#$Hf$nW&l!8KpqE6E^%KzCgDr zRua+ezEjbH6n^3-=w?L=Qr_L=jTNA6zOAtWw9R)mR)Dto=0*!p_|1Qi`x`4j+kA^-1!$Y^ax_zd zt=Z`K9Lv54*iB_c3cuI!c@|Ou3puPv;kP@!z(OiuD~Ex!6LvfrP&;7L<5B$uyu41!-sOel$ut$gZpQ-vDViP6R7=IXr(pA94?*@n}qd!oOQUZiB4ggnx;G z+zDC13IDbTxf!y86aKXrazA7RCvPJfzaE0z5?N8WEhy=L+!a}2XnSvrG#J|cdn3&j zst(v5X?TDgu|u*)3uKxYaUpYbe0DLC4)qP$+CT{z)j6QC*cVxi6%vWNa0v0oPLMWO zebrjNk9_IIB(V*YR1sFuEvMxu#r}9^?e0o4#W$g+JhKRHX1a`ytLTx}OZ-Ngh|qmH zq-`IXE6R!IZY<@LZ0<%_$*v}4sGm@KhphHpQqZy4HZ&1`}r+`r%BjKn!`*Uf@6O-z5HA@(&M?SJU;@*^C3;+ zd)mIirRBn=yB-5)y{G9L+gC4)^$)|bzBjv?&nkS8f;s-BYSN#}^WfV#GY;8H4rws@-F~tE{Jes6edW=?^Ykk4!DiL_)K#2DtJw{3-Sk2F@#8UE4%d{N_+0 zpG=(rf3PX;+I+Gk?O|ZA?}bXOexa)Uc(dC$-Auo8ak-u=j(?k`k{jPAPaZU&026&X4e4+@--kcS2OTi^wcorLVsc>kxA`alm=M}b0sh0tTj*kL> zNfOgY2+ft?-p9C%C1B#9tQ7(B2lyF2asUR?)#Tv67Iit?3w-1N3@}YS(Lr%$uWlT; z97q0OnwC8BCk+}adAuEsq>?$ljcr>YEbjI%rE|%fX(i!D(d>z*OUN(N0w)wemrlP` zlJAvHp)0ubIMIuew71DxxKZV7bbMtc9vfF;E762|wQ#jV@_s_WTt1rRBcZ7p=*mOQ zdXAPX%Rn8UOVO7I=_uvS%4qa78Y88R6Dm5VqDdK@m%2#t*g>fa9a7O@6&+F0Q578{ z#gh+r_U`N{xTm804<`02JRU~{B1tmfM#IO;5{$n?bZN4{sfo61FF1U9W<9Wyj6Tz z)7mtl*BXhS@edCZ77QC9*>1GgbTkjh&T&}1HLG}gx3eDCPn0C0wVLT2TRC@bZ0y|m z(O5jLoR7t0Q1No_tQ=klFA5QeVy}NTooD44ev@7nNg5{h{*&}eH$uVMHm`ds7@QM= zlr0^f)lpJ?4ux`wuv7@j;&3^EMEL5QJ^BkB?=CpJeH5=S5#D8m%o63V>Y%Cdf?+cL z%1%LQ?yu-y?BK5ICrT2nEP}yU?3=nC4hUmxeaXn6xwsh^0NRh=X~sn*sAB9VYcHpX}#z>-*|j+8xMO_W*8{bilGv}h2BxjRKMcL$5P+KH0%5Ew?n+_|89 ziT*3bCEQbH?p!8)lm6?hsy?T4m)1bSaJSek3^YE!kKr@@dmZI*IFvmaf5q^2XBBUq z`T8{-F)i=};%m>cI4|)eMdM^?cbp`DAdzJ%U@-eNn8GaWpc%@s)bTzYF|AvLVJ!Z( zAaz{q^Vcd@(vFp+$H0IV`(|iISA;lqBJ#}4xOGD3D6PYV;b^gEZpsG^b6STajQ4mqJejOjKSZ3q2qlT8t>$UQ2tI%Fz|j#$NLN%-hN%4#{}Kq zK|`R&SU31HI^uW0A?_v*c7o7qFU~Baf372a77l3-K`Kg9_0h+5rk?t*I@U9=SOsY* ze3s=zeM^T)ciaN0W6DxN$_amx^=7s6DJ_0I3kZ|Gs*Aa#_#-%5M00uE;%y`7?BR^sy$({drq z$}PRF!#xKFw_m%Z!tf3lrj!LZtplEf1w1|`7BKPoS%BZG1Ew2qfi5oP@Z^M8z{Kfi z0scW9@C87?nt>GvnAZBR@9O zuS2FgaUmfKyvRD_8aMe1I%K*W7YK3>eb5r)DjRPftbq1E>R4Zd!`e%+3i6kU+d&_C zm?7;y=xE;sj8>4>Y@lT(-ug~yA>T`IXtlyNaZcrc#$C2WI;;bJ84mD(F3bWgk|ED5 zuj8~1*#`_+s70cXYgnY`bjVY1khdqr=w|#MXzt1BO+?Z$(j~b-CTK@ekWR*b&jR_H z4w7!jg#n3uBZS@}p4^$)MeRgMqT6v{FcxqxV)6Yt zM!FUk2;+`|s2j=5D*lKLlJ3L>11ZQkVs~%+oDP!i!vzB=>Pj;6iNB$PyaETZS1V~E zZ=xdf>pyO17|PG+I3+loeIb!RpV`d-`v2%a=iq=25U+N6c4j6bh^I`b|5=AR4+ph3 zNfKS6>eQG{-ZyoeG91o6f^&3I6i}w4H+Y%|wIl^$fsT)f0?PFEj_N=cV1Z6fhyu#= z_@35*z5)oeAo7kf-M;5^po?%o`zcUymz3%IUD1(-fRT#3rOY?wS9PReV5H)%DbowY zI?^RLq`kT1n~ErP#PkB+)Nx*g!`YV;36$v?yzEuT#!S5`#vlnM1mbg0+h zp!O5ROVA2Js+UA8WE*3L)^C>C%I)&4DRzU z)6_MCzn|67z6OYvf)y6le3ibXIpwbZQU`hi4ro6GD$Zs4HVf%jb)>HYBNgW|?WPf_ z6HmXTBYgu9=?ZNI5+=Prz5M-I>ss7=IOs^rAp<%5WXodp z(fSa7peH%=Xj)M!M#%q~#qH{&B?)lQB^?+}rJSM`Cgxvf0k@qlNpSNnE5b%bLW1B@VN9$wxflv<{cf19I zF^ikdmL$LtndaFon3P$@ZJaGhfHN~q+$|WLS;lRgElGewH0k;Ys#|CUuCQ5}_$EuW z*^iebz@eI^69GJ1v#i+kb0rCI$fhai;%05)4HmaIoh?a#6E{ss6FQ?2e}o0ye!L{X z&EG7?M*4_KF^(H+6sPTQ(5ajwrn4@V@tQ`Jlurj80cxJ!l1ZRt z%9l@5>FEIn?C2xB;R##k%R6&Xy#= zF{0+%j=*W6_#O-R=EEfkaHgnvxWLh(m{rD6j@-<{B?)l8sCm!zv5aEIjAB+O88k)6*phaPDXoc2O;Vtiq3K?DTX=0-Ql=da}CI2^vL;S(PAV zPquQrBmvGNHKSGXt}3W8nbk#Bj#l-fB?)jgscBcq(V|+FSv_TCKh8K?k^twFT5yZf zaI6+HD{fuC0S+#;;1;FbSRH3p+`4W9oMdX^*5<8=NkOw3(8{=tvn2^|w5jRA(X&Ne zaOM;G=EEfkaM-E!a8XyB)t^@OT`Af1I}SMh)QVixC1>@kRUy}JIp9E4(|aRS7dFBQ zD~w)(viDX#U6KH&qnh5EcF~2U;%>9R+mDwdz)`7|P1~65tS36TN0%g-QO;ZiT*byd(imR4uJ$u06tfr;Yv|n<;A{D0QRy0HPPXb~NdlbzYF;YnF|g&^Ob?bMz-h21t-*)F zmhY5yvLpcxhb?0kb(@(f*s7By32;_y`D9VInVEd8I$4qcN5`5zxyZq)tl42@pWHlL zk^qOvnmOl|%#5>FE($>s8wPvzyIrCIGUXlRE+*;9#yYfs|)_%Ms0gk@49xv|FGo4!d@sb2M z4%alZB8SCp>DiixOA_FKTvOk*WKM2b-<407B*2-ure{fJtF~fvZrQW7oG(d$gLKVH zNBlc+<7M%$(3zA@!(_?cZ_4(Ce};H=-O^Th=@%+4=|^Cbyz z0Pr5;ZC#f?_&LBuryoF)0LKEGb!5=ffy+f?#=(*VI48JQXS%WxId71o&$5r$Q`CjdK89lF}7gY2j`ODr#&Ui^h zFU!ccfu?Gbn|$Xy`B%PILJKN-MMaA;3X$Ik%Vl-MB z;%Wo5M$d0J{A6mapKJil73IWpH^UCVljj;>oVw2J6*v07h#QAd*i8Hs?k|h^`ZZL$ZZ>0&TI%S9z z+46hg>C)RJ?c=B^Wr`Fk%)REc}w>{8DPw;Y)Mis1$u?uzNX zc>c;35eSD|Q1t-huk@_kR5pR)DfCf+fTJW^3 z&4VYWu&$>1po7|h#H4p+B~{3wX6%S530@fOzQUjr+<_!P%aUczG~sz_nqhNR1;0hz zA+7`h6mqQ&By+}%&>w%Cpk>5(_~-a20T|>OlyD=|HMN3iJoHpsO>5z$+K4%9{HE-L z(-GPWdghEP@#!W3As9>Jm&JZ!4CXm9t28ecmgh)MCh93V;gE?DIGN~P z$tp@Swuj0?vv#N5D`6TAJNCi}KyU7Dj+D55q(`%g2qsbuU-^8p9`A>y%=^*;Ux^mC4Fds788Z}hkF`@AA(QgF_p6zQUQAbVh50e4*ke2woG02)Ht=Rod0mpjy4 zPLZFp4doPfM|1IHGLp)yE7^E7#~0vnA;rBDL(sBGiFo|!K zjj!G15?S-@X;TG59c5tLMZ@i!UZh2Uu5n#&tYxJaHLgeb5{w?#*&WLq0VFN$1LArg zx$9{mmtD)QX$=EffnTjxXYAd5hsp(7um>syA}+rt1=i^W9J+v(F9JycwE!uF&sEj< zytxU$d9=bex3jy0RMH*vvR26C^q|~MJ*Ex6G}8J_KtYJFt^qrM+OgN6bWjHkuwAyXU8@ZQ8)4A! zWv9itU_7TDporVvi0$_-zq5!QffIz@Rb{nVIk1!#mcOhs2Jj@nSptp$N&rp#AUCx? zsV^mag37%s&JLj${Z+dpnr(X6!uAhs>)O^u|8Z&F7b^uslL4Lph#95UunX{rMF0fz zod$m3UZ0or*%XOr*ZxspuCMWh`}_%C2s8h{x%-a;a-Dd2IiA+}h9i=w4{yu&3c_$pB>4g?OO&>jj z@15-GsyUL{6<*r|KkeZA`gv~@j@Lc8wN$dX(9f~1&kX*$$pCyh0l#Lg4}@~J%fWsA z-Zu^>1P4i`FPXl1re*ylMdnYS^_;l(?peEaqWY(3LA%H%I#_-JNdjyk*6>XBLw~`Aw@Yh!hg$0 z7{I20D#D165hHBG2hLdubC`VMxI2J#@|L^fYPmdqo)0=;Ww-@;v!#NLnFLd9#P}!y zSSnq<9fB*S@%QtQ0=3<+f`)wJwCDkmMd9grP-*yT#GVVDt}2fr~aoZihPBSB7h}2rg0Hhse?z(TaC;< z@`=O902Z#0NqJhB?{57Hp5y}#Sjj=wj+nsREa<@3`H%yaHdt8hVub^K4Id$O8ECP1{_^%Qu&USx2D}yXc^aC+&u2MvnM1t7|DGuOt?-nYfYz z90;h@SCI5eGZQ1D5AkECo%;_2~#IX0VRNvWdz9`K!5^TP|+)DV?CN1sGcn^#U0rKUpJg? z92|?HK`y03iR*no)#R}zZN=H~(eaCulV{J4T|75BvEtrz;o4L31|vjBBJ0U?lkHKP z5>?VE>Pne;3H_6imv9!VFYYQ=PG7+Xo+HuMSs9Ip+hP3;Z z9>87;@W^VckVx=N!R6vKsf??Ty?nYP(dT_9=F2>cuU!+p%kmTOIzygL%iJr`Q9fL| zL+A^nYs{`~ybf5H4er(8AEP(9@e(;e<8Gr5q@Blqz(*fIn|RbBKOJQr2P?pV{Q$bt znqNCKluPW1M6);fR$6meKYZ_bq7WpB2yinw#Iy0q^OF-3qhse{O7!eX!o9e#w&m2w zbsJ6`@DJ$ZB4IS%pkKNX?9_(Xzm|&TS29_?MWeNHB;EixhXHU8xyjkuo*>JQ<8X`}j3m>^Jk{jQsHWEO_CZW+J^{zxkqUd8NJ-Yx%n%p&L1gmD z)-ahr0`ZvKc&vE}j>+9kI@_&N(XD+D=ExvC4a-$N!>hdnk#!ndZ*1>?H(w4WzXOiR zeXG$sx#XLSqKqwuVsVAaB(E60)X}Oe_Tb6kO#mg$iF8ULb!pZ zWaNL~j5vK0b4>-*PL2#x6|l0BD&!DXe#9{4R1%^(D_nNgI$IKG%P){5^ixSt?r=^} ztKX%oX8^9lKBUf;1KRHlBnQJ(4qQlv?U;<`YOqhH@ zi=$b_X+G3|X$MU+cTVbI2hmtu?sv`TN8KX&X~LsusMumCvKGzdBJoTi&FF2}A{gaD ziT}-uTFJ$5b0rt&CoUw;PK-?`7cQQkT#25AD!CYntVEM3aH9P?ooIAI*`L!d#TQ-- zMe><^G^NQ1+#SGwrvu#u50vs15a_mdY1e>`Rs-T_PfWR)+a8|_O_9r_YDLS>pK1Y-5}%q=dRwni!CgLi(qgZ$n=3mGeeyI>8Z0 z47!u)m5is>8*D0c$#~Pblt6smp`;(o>gNa1|E4`|Kz!}X6;@ZH*=D*pU4E@?^Vo{^ z=Rxt-zYtjp&s^YA&s+&Jt?-Ht>32dn|CMjKUvYIHujKNYD{`hKDZ(P_2aqI^HFTtd zfVO1o57CO8UlkRsKY%0wrU9)~XhlM>iVD^rK#~A+gmx-$M`T<&z<~<-48K9xd5O!+0me5Lyd4nf43s4qIG&?3HJswP`r?>|$~<;V75D~Gb9t&-v^v;a zZAbj#%0x_=7>!3qr?CG~k_e!Vi6FR9B^lKwJ9m@F| zNEEiVeMjU--l5ycH6@$OoN0;X#1~&CcS$So!q3q!#Z4aUGk`iPQxVmFnt7ncuLAO3 zsWF5N8Nc1MjX+zl-9*VA<877n;Au~-VxCjcGsQlCC?CxyU3!kAsm`yQH7`V?vf?;^bOYUT`r(TGw{zNxU_Nij6q51=pYr3o82M;G zQ{M;AbsOjf6}>2Rp?48Edr3tv%g9$#B57t1i0}I&T5cnfTT|jmQt`Ty%5W~8HPSrA zUa~GAmQqN6u9)V_2aES=qr9idJs{o>+|H%lz4XK?Oiq}c+2xWOO)|!{^jQqal!tJY1F$w_Pm!ZB20)?iJqV<5C=ej>g_HDO~qB z@Dl|6W+AaV9QYYNA_3aggJmLhijnO%5w{=(!>|X z!PMHKl2fv`S&8TtJ;~s2?*yg8Kx%DT$=%9l)|^G6L&(sVS_>!hB=zB3z|1{(tbvS& z{apfD7Iq}ouQ3SFJ;jdF+eax70$lHC0`w6H2r5>8gm7^buV$T_p(o(o+HarSp$j>l4s}#cV%sHkWwR9$k#^>e9%vL)uyBvpri<7 zvl-TEdaGcxGbKb;!&&op%g)+ZSf$uYu~&k*x~s9 zjETQK|JUu%AH$}`@PFxW{NG~X?|?)Y-c55kj=^uIBs%b89tkEoo&+M(UHcXmgZ@A$ z6ruHMi}SwlY)}TydM$3wdKLT8LN*gua;!J9PPzWYJ`_e-CCX@e#vMb4p~Si&5wk2> zbVNR+IG9-1C8D$GAW|dl@{=2vR}6XME8#V}V~yR?T6OwpscMTUdEg}5DlK*E+Lsgb zn<^8n&sBe%G)G!%-+R7l4=NeaY5si|MK<1b^h(rgn@m+>t^5r&994@U-%Auj47-z~ zljUu?o*X`at9f6Alf#j)l3h)vD;kl@J7h?r(2)|Iy{q*GoQUkbq~rr+Wv@SzFwLfm zLPE`&peFK;wqmMAdJoiS`i~NF*uo_I>leeW|efl8OhP7J_^Y)ceW@b;6!1c zO%zz!kuB6nEn(o!FFg=qpo-E6D{x{ktS4?|q5S&~MQt!kCsq&l?87-;ks$6?dsW9gR!->q!P=SosODCF;8ZE_p)=cr% z9IWS=CN33{f|G|~(%)5BRXlMZy-0KS>FCuooH*<*=Tw`J258|2qFPz;Hdkv9Qlq-;Q%l92}Vh8JXTWhLGNClf=oXrr0OGea88n6p-rs-Auo zhi0YD4miIXP8J5KEHn{ndZK_5GE#)SqrDGK6#B!doG+Ei#JP&NYULarj70T^y1KS? z(SMNa$^s_$LX7W$6M{Y>1T$HMF{*D1PqG1JfIT;X%T4%RI8hiPqCmXItI1;RQZCF_#(I&qvm_erLGis_r@b0+ImW~ZL>DXg7lZFF}^Ru!qOvVyA^>1%s zK6DpC=E%s>)kxL>YG!|qw9Wm6Q3p)0{>1=68VO$}zfJ=K-o*mE-F?9OO~6;@Bf*8h zVk>%u>Bc8V2KT#drP-hIkNSH`&f^dSYKHREM9M6 z-}_z$==rX0_fhXPQTyiRB0fKD`3F{2bP<;mkFR{^JCAg^4|qh^$B|Z=ly47GRG?rUPN0|8ihDVsIFkx5pW9B>`CXYwH|mB1@q_=yGtmCG35Kg;zjU!-_XN zt?!nAjucKX@XmJ$0NfW^j$EFdhStfCGBANT#xwYeBgon z6D+_2k~RBg$!?q0!hMnjS3n%F@AB-W%dLfbk_GpD?u+vwl2)Ay&(61)!%s0F3$ZuH zrUG-p<;eYTkxwyk3lQyNzNz5Vzf!bA zu`}z*^!V7CKD_lzYd4`=5?1)zbdA!2ie723b)>#t3y6o)$`hM{E=jHb4~rHv+{N8p@j6h`(O>o^vJqjmjsU>7jT>fDo_o@eF{2 zGPj^V-}N)gRH_HK;!}hgThafWmG2?+AFF)gqW_D0^amUe`KV3)%iYb*)Rr?i5Yy;s zbT?y#k2-*}5g)fvhm_KR3`@jCKH>n*1$?X)ahfPbca|N?Kpy<7e6#_aiT99=Hf{~c z!(Y_ykXd>6<;thA68;PAlX<`XijPcyW8fS`$hEm}c>4^O`2!q&W_Q4df~h7zQyt^@ zNj?$)4*s&c-y$Y~;VXm?W#exh{WV@SmVKgxU#WcOIqNKTe3g%ufWxkiIjS8ubn)E^ zQAoY-dn%uZ)_Je?$<#XE!$&2+`A)}eR1!4s3I7ZqEdXa5*>9hiVMqA0e53%J>vO^; z7G+o1jT__}DJvjygZ{4S&ip+eaR5i!*yDtXp=yFU`l~rUbcxGQ0}gU=j0D`9?1G=; zqX6I#6T3@GBtU09r;B1Vni)~L(SM91e3Sqj;9=L9gc1TKdf@NnBL(2_3cCX@a+(GH zSwfKVJ^}m-eB=R~+h8Y8`OdgM$N_(jj~;+C3+y_?r6C6R?={IVb;y6`qXb~bzTH!I zr-dIMy-cr&Nr;EZCyoR#V88kiyVuox13P}14>w?o_F*U7&Gu~Lcop|o_^1HboorVK zF10ITwTco&K1u-g<~mZsm1bT135^tH#_-d-tTy!5_y_~omTI@5<{M?Jnu8$wR8QK} zgo)m$TGo3HfQthm8&{uXQlLXRS?zfVQv?VB+Pt;Zo_4TcZ}(o;rh3Dg=2v^_ z#gu`THCzFA!`g3w(Q(!)3kcaBYqx*~_>Sq9wO;^(0-e!7%Y@$<9kr)zR>0tXtBn9; zi>*BfFo@7H69C+EYc~Og|KABsxONR-wrqApSFT+HSm2w!P}{fZGH-y~8GXBU{2kQD zYfl1nSZ8ld0(3;HuRUSj{=L7BnA^M=*q#XQjP782oO?fX8A7%T+lyg4tAE&zzq1;O zPuU{f4(u>~hm8mw+H!0sM2Geu+sn;5r73x2^IZUb=Imm0VAr?5Zli&n5=AnEYBoIU zC(}Vf0e^TlC<8+!Z`wsU@!XB2oRZDm&l$r73;vv9~3hEv6XX(d*;Ih$U| zIK$!`9518eDtd&hdwPQWd$Pfi(>Q#R)J91z?zG)NNflwn!ieI)Tqb_YpDCpC&NRRm z_H}igeyc?2h0e-o^fVeH;2iMcd^vzoJ^SH@PuT9AYkv|viN1bCBcGCM1QdXmDD3etf zccf#eF%Viy*1REyy4l)7CEDU;G1}rKP;F5VIQwFN3>*tbg0dfat_$sS`bnLtv7;4DmDq+hV!22;{HH7uVg)eaK*B3qB+C!Wq3G?{aIAoh3Gm!srxTiYt}cpP|e|9Wx+W( zQ5YnXv^`;Pp@39anaO!TVOS`na*C%JNJ|CDbQqP7_myV22qz39dKg?TcJ@Ny7fD~k zyNF=Cq@tH)-xfTAI5Els*0Xq(Ph6ExemH5_w;WC8XENCkX^u=O!5AieI|2lzrj&R^m0VI1fRmB~4pI`h zBS21!N)}Vkcw&Q)>T(CzB{;D;Xo$^xA(cVcjBo+E_s_VA!CacBTp<6vOql%gcFPX)nXAs z(X5j2RE0Kh>b`ncdIe4<4w+dN-EerS!o}fUZbv*JII-AYEf$`txL=>3m*8aLSjEls zXVM8WA19N(8qFr7v6SaokY{G{-h5wKkyqhF<8UaYC~G#U@Q1j(i*n9hk3@_NN%_IK zk{+p<5AkyLT-n$ga8h%`S!zhs;-c6zpIGw*iA#{)fD``GfK_nYkX6BUgQkv%aahKx8iHm*#`hfk^1GZ!s{ds)hX<-2-_H^XW5+5-DXBclHhQNu&_)~nu0G!`jSr)8GhRA8Y_}}tT18{b2 zWpAiP4Y8AK@s0&9y#YA1wX#cDqX)nUSA2>Pr5r8dXZT12IIMKMPGcitbSYk_B36ix zSb#%1k5&^)#K=y3N27_B%-lR)1mEMM5a3u!Hiepd8L(z*K30Q5Kf^~Mz(I_aEx(#h za%n6h{!E1^B$@Tcl}|Py`aBZY>)TUW;%GPSVKUkp>(X>BQ`DCNnNBL+5 zIP~P9YQ5{?2o(I=6~Ykn^m~<0HuLm{d}IQg@==RS%?TF%N`)|lO#ij=$wsEX<0BK` zSc^?J(5$nsy~KEn7A><9rFzH(J{YnnE=&0dK1Tk43CL8zBC zLK($5*w05Dz%d4!-YXoa(_~NaCP6}0LBhAHsFmiU7GU@O6OOXvW-mYfK!rd=L0QVy zsqw4)88LnzsUqHw@(~ZPXZ>V7#A{aCey2hr8~Ogv%AXPP{j18Si4y*d_Q|}re@s4c zXf?n_?MJGKS?Q;7y=@zRjgJ_BP0E{|8LN9!1@s}}Lt!rY0Bq3R^eA6V61RKs@C$tO z0Bla(BqFA-B&<~xNBKws*qFIVM5;;Rx`@2ZM-RZJ#7&R$6_qNm>>vL;A6Wn!@-~@m z=SC}0?Rog~gg%w>g+Jw^7GNXVrdl~?YKd%1!~avGnD$;zyqxb;(Qo?_m)!#Fzp}+6 zLc6i>Q+xyg>^<6a{ls@7;W<8<0QTK%3h7(lg@f1mXa?ADa<)2P=;-#7O-iO*#oZyz zD4QI=3jB^}O?kNbB2>_~d!q_d>NOIyecQ^;D!y~&eEFN}$l?)8mrA44JvOu*iuT?* z)v32`M^0I50v#GA`!49Zi`{6ix%uJ%{`$_YF5~yl%4qa78Y3-%6Dm5VqR9<(Ug{@( z{RhdsqeCh>tfC_-I;x^$WTEWCGCHoJN61%Ckbh6gwUTNZwuKw`@5!;~e%|4;8_gBv z#B(>6a!NLLBdlasld^KBkh?Lhe`Lb z@zK$<%F0SCc9#5aGJfXvTC(Kgewqz*%TY%9BFS8YS5Az%2F2~k3#GS9HHSMs%aR$@ zC7BVmq@}*QR!f>0KiM9l2!8B3k!tsr5V4rtA4wF}BDs8)OB>Wby`oO#u&pWOz#!-S zyU=ML9HaXpxk8MW&*gVa%TtrKBXV+r+-{@np9}`pKGqyMP@j$HFfpJ_i9q+gCz*@J z_$G7eqpg-U7JsO#Yg-rnr@=ntO@@c1+q-clndZ{#&iCDTX!h=RqfN)O zwbaIZF+A^&MRQ6zy2>|Vrv5AL*>k78f3#~Bh|ztCWY*&|T9(l@6*0CoZ_<~rQ zz(9Q7nOjRG^U9rk#N&30xJ?_Ifw(Tag zmN#{%1I6#B39!Zo{E%cTJX@Pjl;U3?aLb8O{0TnrfQiEqlg;iY5b@{v&;w@EDmU8o ztQ!8hCJ9DT4Sz%XWY!%24?fBOCYW}ba^Z5K2_JuzOCLBUUc|)S!zOg0c^B;GBLrX) zqO2R-Pe$MsKJ_e|LzAk_-lOV0lob`ga2?|zBZbfR*&$HBtg@OBzIGRLFQ{su&eNXCG@Tsst9xZ}?mY>ffMauC zig;hV#<^x`hmmwLSG?D(^yr>q-*;NMdBTPJZkGc5wI^M^?=`d890}-CaDuRpL>iGu zl8oAqL|X8+@Yx$0E1E2Cp13eJxpIDdJa+c{__=fAlkSx_*W_$*ua$USK+~E+3i@F2 zB`QYlsdQE~+#V~xz2K%Lbu;vZ28i8N*V_wpT64YWyAu$3pbLs=)aDnKX z8xY&8t~p_Qd_BRHv(k$Wn(1rnu$~3_oCw6@D$5;5ypd1+X-O}_WfeEKg5#^VJdU@< zeA9PhAdXk*aW9Q^Rc>LeGZ4$G)OvQ+yX398YJOLj?B!?1tPw1cyV@WDI5p^%Qx+S zazgz6p6`%z=rA5cV%H@*Q1I<4(ci}`Z-?HCvN zz#nf3c$c41@soVuX`M8XcC!e&_oCRc7sbcm7;d@hF25(@%Y4%Q1RVG(X&3smh99Q+ zl*S{}lW@eaNP^f`COpkY3)&?Bqy{Zcp7-E#A3wM}4JQ&7UE%g~3qCi_r5xS?hyGwC zp)v2f7FqCxFGuDAGH{x97X$Eo_corKrJlnf{cMgY+D9vpJ2Xi>P^JJdpXpo%eof!d zb5oB$7+jnN#z!n!Gutg?2FVsYDbXAefI23k?kO%V-bt<& zR&{!KY9l7nXzVkMhJR@>6l{sLnA~hF@Mx5n0LLwq9Z?8b?2lbd=8`ei^tKjtu;R}? zLD=HvF3y^zcp{~Kz<=4-5?Q~vS=Ng~OX*}hlTiF9${5JlDhs&dBqY0wgPtcqx0;9) z`w=N{JrcMYki#@B0-sHM!6yCvF-f^Qompo&!ma7(0@ifJ;q^sjO^N3HnL?VCBIpb^ zc=!6%WHw)jrifVhiB@EI!<|8l5tA69cr@Md)aWU6youaH(g&GzKAWM}Bb1NkS@)wO z++>lKa_@X_DHLd>t@PV$r(}iP)>LJO~5x|ogFX_C)NYE zm2`e46}`#IBYHZKwb7u?$!Y+fX zxrw2(b;2T?4D7AQKvR~Yh9uzIakhTv?2wecvex;Q-zfkB|Dp5$#D4% zWBJAC8l5%V&nMzgXM@a!=G@e(oJ~yRh zd-4Ji7A^W2E15}D?c;dK@Nu{E#?4lSUl7sF>=$! zd1Ayr2i<9$1cw-5I58StRH6w_8MR|^L#j1Wk8~=co$fV(J+LvCXE=~0p=Zui0NGdOFEw`zqT zkFenOyAOA-0au@J*b20JSZGJYp`DdOfyHoSJ~$l!R#JOeXivD0)>O-{EY13*NML%l zC5ZR25Wnm`;sb^>2d;$!@-(qSGjqO6Az&8oX90en`+yG_fGd_axDDX$k0qEYJc>@M8w(tFw#YCEr{m99W#6mB|+d<7eedz*2sQgs^WIhAG2Y;PnOf;KNAc585?kO-{^g|q#B>4 zWAepGz!OYD+%Jn)@sEh5z)?E|?u#Xy_>aZne$cChx=x)4F0-U==M8MsorX8WW3oL zaFUFNf4gKf5aHA06Gt@#;2I6PEK~@>xktey#atCBf_$U^+#q2mMWsW4lN5Ru5oh_Z z18z>R--`zgUo*Ro%SW6L)+pasza9n)OO2P7oo{3WRY+U>T9|Zx&z}BXq zt5>>eyfBW}M?uU-LBI*9_AuHqNX*R!r|QAF_yhG3@Q3*b2sr$+CIJOX;P2E&z(3?8 zAmH4~M{HWK5?8o9>(Cm$f0d6gfHNQMgsHg9E)xdtU9oz~2goN5(+N24@G+avSk#ut z`G@!gjZ#K`rd6PPd_)7B^tUz9+|*ZPzk+zch()wjKB55*xjSQ%G@_oMr{3WbADsXP zyx9YM;S=BRr}(G>INZ$sh+Wa)P0TSeA8qtyrRMw9zvUwb;9##U$zfGMAL{Db)HnJznSa+x#0=~i~SRD7T&#H2iG;3T1du>obYgimXqjA2*!9emUQ zoa?kDb*xfTzp#|46Re`nVik3k_^1Oo(8wNuxHRDi-{Hd!ILzlEn{jq$x)1&+AN053 zl1H`P8-z@@!N03r3?oTw^?d(;k63^+T zVvnK>5_H6b6DInO7 zl4buoW{!$I&tvldS~6noOKsEbM%V6*rYROu`n-3M-68=VY?ib zVHa&at;L?NvtVz?tV=^j6J_fE@5*zx0-Y87;Wvov(2QN?J7e<9$mUoE_?{uBoVzb-5d8 zRYhqPW$u*xA?AU^h zJ+8B{%~9h2jZRh^CKccJN~h57`pbFwO(R`HvIQG^U1X!~q+SEI9KayAUxU7kv;bfW zF7~;|Mcp*EJ<6HIKxkx#DEtDBMYh?TGH54V?cbv6jhQ(D)v1y9`!qjy<(+U{V7DM#gCc!us5 z1Li9&TH1oIZpPL7t$ghW$oR|jy$LkPKDmjfr;5EOnogt?VA&#%i6n$*?x{_!eY` zs7@uann^HZ0C!Jyb=A@XCxqw${Iw^E?w5#uaZ3?yprnehif*YWrEY$cFYuHzY@n5T zbZie9KdC@J6hF7wkl|O?ppB_}yi;rO4r3OwcGq9{Jspeu2Rat{PjoEuUtuBlY!tI3 ztzH|IAx_Y`a~QD2G%IsJQE}wSTs~Wf=g-V7_?JWB#ivWXt5n)k8ozKlZZqdmt6%U3oTcOK`3)M8ql7uNLW!?W^L z-yGRh9}0vcGqZDn$U>0zOF+M2&|V3rWXqNBkbh99k@q$$Y~l`XIJkqw!4TPA7a$AF ze9&1X+8*HqR1&dNS4X+LI2#Ud-F^NLpLRny!W6JncUXrx9heJ%2u6D<~%YvDd>j4WgaPj*=3s{rEZ4cTi)wCe9 z6H4N>g%(D#)xzkGz`oBSxqE}S3C^zt=UtgI;QJW8DvbyCJ znfU(}i`L3oTHC|LTC=prx)qshX8R*jnPZgpkgb{jTKi<~Y5N>)*?3+>FR186QoQ>v zQke0Qie8qHPeoHQ^2>Av77CzCq_js{mUo4Gha?57M1gy{n6oB+Wee#6cRsVjrtt7YYOy+l_78evmy6RXI_ z2G_p?9i7tgzm9MPRQuTA2Ebe9PO#t#sQS^?;28S8GmF@)VR=W?vssfbol)9m_1Zh6 z%5AU`r~un0($C_ktm|`D8=COi6UpVHc`khBcHvKJewnd#xsDR+!C|k&nhx{Q9a1`o zGT%oi;$9Cf%OM@QspRA9iAZvFEycxg-P>|z@z-~jtLSaz^Bd(Z-uttD-tNXZweE4a z)O5-Q5OW9PD3Q$a^R|K8yra7|tHm^GYT+ADrymEa>5v8}Rh zLa{o#>an_otfoyeK&&3hD(UE|!mq&@Ni^L(tJwkPDRhTSA#JDuVm-0lWG;g1ocE2; zjG@Q*MsvjUxd4dsL%F-Tyt2yAde3dMEWF^bICbE{vCGVVxti}q7#N8%> zum-0cVO$^~rXZ#0#C<%1A(`&KAEG>0xqHt@S&$Qwm|4DN{(ck za>+N{gpc^()5=UB_y;QY-koF{{wI984lwhyzk*pr4hsJm9|ZstG8PJmNX_8in;2jk*~pj&BuSh+y#r5SBpLH(6v+ z#7aZLs?`!gfIv2rATHoInM|0uWOF9NS`@WagX12x?pxK?eQ9gex)f{cRu%NuR;?S> zw%Te@t8MkK{?GTmnauKL26$v1)&xI(bKksk@4M%`^X|LvuIfH(1;|wU3XrJBCoK&E z>S$~3VdK~F@JKD9wBT4rMM3ovM@dncrOLDQQDJO8n&_obnvv7-!@~Nst8BBDj4w!} zWg5m8j9ze@V@W~TLRrsCFX~lXwy3a=+W>Us>(;HF(S1 z>jVCk3*G)TEltfUt9{N!f5nDEIp=R#S+&7m;;qp^X`pLfSvR|8){MEiGo86L&bf7U zxzpD+d)vaD_EUp7wd)qiw_ZU@i_cpVXmKa`;O`s@2nGk#wG_&7*Dcm=n!b|Zyqm9!!)@vinHeoJ-| zQ}k~)MM+bV^;0{EB?dGaPeyrNiMMf0Cx6juuPAP;b+7OAPl!=iXj^phME$HIc@0=w6nn=jukw@@hxjhCIOe!@|r&3igWd8i&rs(;MN*5BZoqBcWrK`{#J-G#EedDh(0d9AIoG|Z4xu=*{l^) zD@(9P-t62q=l{|cbc0<5^(}5+qqD`GCYyAhG4p@QBzD%4?Ot$uSywH&)zcU?G_xcu2EgJWYtwm?%ZDqFLmy(1of9ruK$0M>i^nqHek(3yaDU~US(MITc4~9uxf*@ z%5T%=HkRB9)CBwKzJL9hVXbwzeTn$fA+VyaPjk!n!|o1(_r@;b|vUHt)+8*ZmbxvprJJ6Lju)%LkV&Z7E&--9nK2-MZd z%qvT8k}j8UwR&pHJnpo8%XsZ`iEzE5dPB3ddc|INLswnGQUS5XK5rNts!K#>PFm|T z=yHm57ZDBn(P>+{3oF;;i$xQ6zV_otIsD>=HH zBhP7g%%QbASQEal$HTs21jiU8w zC^z&ACNe^(>l3BpKT$UC7hg$3LDJB6jr<}GQJf*8l zNxu8{J`b8tTmRb`_IXNk@4t_wM^}?sx|`Em_n%8xD>1rUBHb==j(sjMV3D^`rc3$!de(xiHH@yg zo8gJL76yu*yT4q-TA7i!Np-iij4l`12NyZtJ{QTR6p=;x?Jq>SI%6z##$33ce8bk# zqsuoe`NqZe`9>egjl%jSf7-_vclm-PU%13RU+6F6i>q2{mpB`1El%DKeVBwN%BGx< zVn@y5l5QE@GWgf(881DmljZ+|l57W@-ig&|TS4S98{I<&mF}B+gzKPT|IqF-BRqYn ztFN}>`)V(@&pk$mW+xOk);0MW^oB+YHta)L5_Xo@g+O-u!P51bvGkg`(mqGYDrs`9 zu{`B5v0KEHD3ReGx`2r+&!7(@i(YjVI2~W$Ty38p^8i2jL1Pu;rDKBwtxOvtJ5T3in=>@0L6YR`~OKf}SUg_&(yzUBe@ z{AH+AV~sxOsBURX>uQEQC$5<3;myyJ2L8P%Wx9H(Exno^vd?PbKJ$tb)Q}~-ZWeupy%`Cau!}hsZ|HVaRMU};cj>@8fg_a7Xlq1?&Q|*bB zokY#8nKD{#ONOUPn!u~eJj+`>$CPorTRjc2o5}{W!^*CxEUqrH zS=#|gv|TF7&hL0#2ZnVmI<}~Ax$W8xOrhJSv&WX(*V6#i_icc;UjLGMg11olN006j1RBR~=VXT~unb!ef#t zoQ5ZOWZWHISX^0DSY2Lew^tvKOy@LIjEBeRTu@oKr1%)Szw*W=(>M(uJ@IZ`R$f_J zVE5G-lb-mT>!t|+f8u-&c4C(*eyBMqhXs5rkaEHAC7EUKz1vb(uvLQ<`> zI{sG2Kh5Qf7L^p2+5I#hm{jF76kze*T~tQDtR$<^H+Fxk(lNS9%m4RVv>O z`q`~4swgQa+;0u`Gm>bYj$Ywm?MfGxR~+Y%4*&8MwtqV1B~v&JCD-tFh4<$da(*(6 z(@>2bVwBJh{Q*&2wnV-Y?SB3KJej&_c>RuxR=1+Eyjt4o9g8aETXBDUI^3U3^E9~j zu!YMjN{V$?V^u+E(f;{1e#}ONr>@J-o4(H5n4ecC)AXk=I4<<2a_CaLxNH$k_|?Vb zcGs$B#n?docx^_8r=rz!bgQSbY%l87d$z<}a9pevRuq@z=ZOW%7CIIdR2NvAwqt!v z$oyE{8`kYd-R&L^vn*Ek!`7!&_ffI;-IzzgdKK1gdE(*l>TjY%`)GLe_sCJq=w`Jm za$;7S`Z#hlJ3J&hG_+a$N6uMToO?x#Z8x`Bd7$D}Hagq0rZv&P)})5D=1)lsJ9a~~ zVJAe6VhuYbazYF{HF9J!>|t`wf?yUD~Myse_i+t}jv zb)@m`jF>BC%9*-Pp9q(HKeuKvhkX`{t4hRLtZ01)+AQ%LJ@rP6!FF0RnA1Lk#l0$I z(ljns<=yD+U|WTKsLw`Ag}lo?lZ=Ud>Y_~2;SLlwO0G4dxa~8_=vbr3gH_a6TV7}R z?WgCL#V^63mRqyKYWwUESHLW)5BNP8VL_m-&h7JCdT0{cVxu)%cd4~cL~CXUd=1QC%{da6BWGAM!#exS5cdUL+O$?LYh=wAk~|>=Inl+(t=4R^VZYnN znq%ydO}1OJ$tL@35?5-3{iJAp8azcmOR`|Zf5a-0*UsnGY_$1nV52m6PS{2hzZY$z zDRN}t)qJXbHi|263Y(fY@RgHBFDi+#P`Nb=ownaCltv#~8)Kmj)+}V>PW5r0%J%GA zudcIZ7aO-|Pi>cubfD;7g5O%Ri;a7e$Jr%)JC&<{ShIzVn{ubNg*6{ZT=yNc+0wh{ z9Q#VzxLy!D_NG>Ity$&VuZLBv`A6a^aC8~sux6F>?XyZ;+r14t5UVq-8Rf#Sg;CPw zDR)>i%Ek5>C9Z~>hCOH14r@lRaeLLcUL9$=-nZQ}!>^c6MDsJ-LVK;M|5&rbW%fBk zoE@Z@cHivKUX+eG1w&}Fv~PP7ZlIkY=PY~$UT&XR;)W-NdN!h#Eluxknrg8%3tefS zh2jPTrC}RMRUdI7X>4hV9ObtuU*u?Jn+oWouzRhSBMa_zwSC4L8QXD|mc0|z)e#ek z`L2r`iTQ4f9EtgE)<=^yE~kkcxwAAP#(D{`Y8O6O_d`H51EbI zprtn3K6;eV;}Tmt&__~ImB*N^GRADnt(ncn&A%qb7VY9~9kX*!d&O#f#5__)ZHh6^ zDb~zmmnW!IX^MtEKSH>9Y8f(US z$Ub9@jjagn_gy^HQxS8@bgXA1M=~Aj`55Ewux8wc?K5utr(P%8yCSZmBfQ_i{#X~^ z=AA6!o~W?qonl{$xZz!4-M{g>T*TdTJv+Wr?0FH_{1B!1{&>>u+yP^J?29u>^Kblq z81WU+&agX1-21Gv?3EFxc4yf+Bkn!cIrhIdK(zf(u*2cT2z+i`HpC!lle;*q)(=mdLuq<#)M z#SR~ds)Bl9&;7ZYsqOoH#Py-*)(vfi&a(SQqM|?>p!4hnlJrUFL_32ddMj!-=v4cJ zB(*}P+BGC@w0WdV>|A?@Bz1;PwWCN}8@P6cZ~FcsaoyQk=WqUQBXLtGwASD3y+`6Y z^*Y;5BysKFoo-)}1h>C4?NSo=erw;&q7&^|64x5oZh}s-gGt=CU%UGIvjxD;{Y(yw zZ3>Lu?&F)kyUDkbE8nU1I*BU-I@``C*)eWlY1v%sTYO~f(-76OJ+);XcidJCtx2|G z7*bUvRrum+*_o=ky0Un|^6H{0o3)iK*@I=Zhp$}jmj#MfR=a%--ZJ<4fPdvew|`Ab zQ}fDdpR>_lv7u1T`CC?2ZSa?PYjm*1-O#+U&NXjtuG8gq<>%MVp68r1eQmS1%~R^h z_mpjJn;PuhSmJJ6-Qr2ClKQMg$@2d}WqUWvLVYwvCT1*?bW7xNp}g+X zh8t&lysaLU>@E+jZ?1B?0*)w@Kk zB0G(51GSA!`uc~gIM6d#LR8Q^!^+Z7!O})!SNYhtKz8lAlBRVFoh|NaZ$pwDWYjVJ z+i$k%E~l|d_-%V%0|RQ;@z8hKB2be?uMhS$29H)3m)gC9_n{{5&s=w$+nJ==uU^~D zhfq#h3O6;*Ua#-9uC%E!>BnH_ut8rb05_D^t#G^7B&qsz4mePPFd!4inH8s|DY9nNeC)C$_{n`>qHcIOpZ^?Alhk7nvUc4}|pQY_P zV5YeyB-LK$jKtaKB=!GHOdy-7Ci)`l9Bv-eCXj85JG%*HCNaUA*{MH-v(nQUkZtQH zK{^Y&?2>}Y#YK+dvg)G6MU{!IoVHSLURzLsQazhJ1%dR5WQ)@i)Q{bk|X5~shV$mdHo z9$=3=I&l@sa?g?KHZXb3Bh=Bd2cs{}_ADq%ot>h@KBwrn$me#4 zN(xI&=6mt>==uziE}SD;J>O~d94V7gj*|9=@3wm8mw5_WQ?;Fx+2;+}QqzaeQquNIQhEGJ*-@G6&u!yjbrU| zi&61zA>Sb<2i%RWBxA%orq5e9v#Q?hZr+#Dp{sYauGO=;)#K^tTIWjp zyr8%Cf}-`7{2*MB2s=WkvKc;1S>fy&MPaGJd7^!;!Ix>Z*R@91BP{ucv4}|G500+; zZ|VM@WZ(U#tGxaG&rUL$dNb6=Wu6sfo?}}*$H~|I3G#Eoul!3UWpvBnUv$OoY)^fwr=iu;*y?H8+{QTNKuxe` z+47Q-eR%QhE68S@iH13+ z;|69Gmn|wTE3UR%$012{+?vS~nFdeox1yl9+OephxTMJLS(ZcX)-_w}TE1XuQDLuF(4mH+dTW5Paw&hy zmzUXH{EkkhZ}*P(-XVs*1^T`^78aEi+y1bQNv3XQ$E!QaP`9|OYWbo?#f8O1Wz~)a z6106v?*Yk_-q`U*X>g!=h%6tzb5OosV(W%dT{&t=K4^4r@ zkJCDhllawdxqpckE0}0#ZR7m?VX^l*owNDXACsw_XQ*xC{Qby|Y(^=*ud}(0E(rB5 z8t(nDa2qGC$0^=X)7Vx2b2Bp9hl#6!a%8~{HqO}|73=qDnZd1QS~G)8!;@%@^nS!T=o@eQGYU6CPxUWQck3{AYSo(4>4-Z%KtXaXv znO1QRg;=4agXdkT6RjD+##u%aV{2C7c_e9`bEJM?%`i4juZc5EPpw(R#+d{|Vm)M^=M|_?=SP38 z9w0{+K38oVL?72o(-A}J)pxZGLL=(c0(}%3P_K%tS;WS%8~j>nqf zHV&FLf3mkLzE4A_)j8Hww{f)a*w|vA}tSw?5>cUY^4v1=NOE^{Eb69A1>xA1z8&h->tRPtC*@L|-Qm)4+ z#*{gcrSkvRZCN-O0v0T*J$&VIzuV_uS?%^Uc+1@D1OAl@-TpN#P0cH-ea=RI#fCyT z=Wkgloe8q?rw+=BkIgG*&2#7G*3QbEJv+B%-pm>9>1&(4Z5^m+vVAdd8K1kMX|3DR zW3lHhV}1FbZ?e}gkNFoDOJjD&xpcBSoh5hL>#z0h)9PPcWrLMfWSQY?(_QW>cX_qD z#qZsi_6Pds{gZE9)KR}PV>4&6nsqnB!8Dzr^^d#K#)8mDWGyRmk<1UvfO zuYN?)wD-ef84kUFEYQ)fGWDc23)on$4~g}G4ld%=->n(I#v*T6tN}W_^iu=cEIkD_ zmIIXfp>n`dHO}Zuwfc2q{ZZemubV7~tKRKw3|L#BFx8qvmKVq0i>hgYH(B?dU-LKF z1S!Y29xj=*p>|qbR8{R*Se%|+IFoOV$Yky=`*82oT3$ta|1~l($^GB623TWbvbgd*SsRP#Mt{xT zYU*~Jro#*KQSmqW>-Jhx58J5s*XX6Dp0iQ!uhA<_yzBoVO1>M|)+ez6F&< zWd)9^;^XbE(6LhAmP^c^rAsq1a?w`~B-$%zt*o|tvPfWd>o4oP8%rmD_x9tiexG&&pH{${7k?Qh%MHq~=3=;O)uZ1Q|Bpnldp zBZD8V_FUt6!t)!?`<@TfAXz$D4Fl7>8WGk6yK4(tLSf}xp$VPGDU;BVkv@E`DBkR>{*K42sm1*U>Sz+5m-5Ky1> zGmLR8KOG0WK!FWlBWML%!R6oz@Dp$=cmO;Io&ryUm%%IGUGN_GFZc}f=`H9BMuE}b z5HJnQ1BZiRuoN5zjt5>r!t!>Hb|$d$3a1s(CE1Q|C{4#=qiQ2MZUS4uIp7L#CAbyb z1|9?tfv3SU;1%#Hcn|y?d8BBAb1Eo4W0q7fLFnL;P2ow@Hyx!kFx3qMuRb6 z8aNaj4vqjz!7^|>H~}cI25bbIz*cY$xB^@WZUwi22f;(&Y48kq1-uI01Ai9;)I}4F z5~i>8?5lp@l5D}HAWO!gsXoBLiBW{6fXl6dEWKo~*fc6hrF5lQlQUk>`lB_jWVlHB!n9 zlN`pEG96#-Q6FG~e}dry1tY*hPz0L6$>1t*HTV_S2Hpklfk8PPYD8mPV%Uh&M`Ogj z-qCrJeMX$qvFcZe!Vw=j#+v$@?Nfi1sIN{0-v>Vcw}U&tcCZ6{3jPho4C+vSc{#>l zf3jwR^2oE*_>?Q~zB1)IZ&# z`iXCMxix*yw@=@jL|=6?cnUlXc7YGUh{1x9U;!uutAPhx04@YS2ls=Q!7JcP@D-Rk zL~sbG07rwhU>&#uTnQclkAj`xZP06|pf{KX4h3bP9Qc4ATna7&4}yol>);L0eVCvJ z7z~DhiC_}Q1NmS9C@Bu$K9h?C!0vCfDz>VNua39zP9tS(Xi(n^s8+-&l z2Hl4XdVs-T2$%>afjp287Jx!f393L1Z~-6igVVto;39A_xB=Vj}-I(gTW9m z5ljMkARjCMg`g5tfg0cfKHvwZgEPQ|;39AxxE|aC?giVx%YY1LRz1Qr1W)_{#*6F3i? z4{iWAf?t3Kz|-Iv@H%({>;fNxi~|JSz+f;0Oa+I4!@&`t1eAgkfde#ylfmiW4A2HH z0XKtNz%Rf9;A!v-_!D>yd;tClGR6wJfx%!1m_w zB5*Od0o(}g1^0n%;Bl}6ya;xJx4}o?W6*t^pa&QXhJcA+637GjU;!uum7ogL02lB9 zKR6wn0WJa;gB!q&;9hVa*ajX4JHU%zCwLot1U?4c#|wIZ!C(lO2qu9%kPjAsLQn~+ zKn-vKAMk_I!5QEpa51<6+z9Rk_knHTaj*lt2zG+E!AIa@&|R8eR1Yv13;`3tB#;O4 z!2(bSDnS*f0WRPJesDTCLl98kpJcS`+#pA`y{whK+OlN~LEpiJJ7VRC~0tbV+U>+y|rQjss z1T7#S2&gM38@IiUpJa1QDRsat;CJ9T@GtNQ7$x#*G&l-;7nFkv-~zQ^9as-q!B#;) ztD&6)EYt?!6vX3oCB@^SAtu?ZQw!h5O^9q16~2I zg7?7R!Drxe(Dx8QKQJ1M0n@;t;BasRSPGVb3;m;6?Bf_%nD1d;&fNy$%)h1|z^oFclmE=7Gb(Qm_o109Jx}&;T}rQ^0xP zd~hwe4%`jy0lxynGQTD01%`tW;9xKn%mwp6F<1(Y2Pc3vpdNe= zYzF6o^T0LWT5uP*8$1Sn1-647U?+GRd<^~tdLAao1jE2^a1b~c%mH)35>O0|1IGge z)__gmdmsqT1y_S>z@6YO@F;i;ya2X?x4=&D5%?JNm@eoEhJs;W3OESN26Mn-uml_n zjssqxz(%kMoCAX3DsVNp1KbH70gr;`!3*F`@D}(Gd<43GThIdx0YkxLFa^v4v%w;; z7_0!t0uS(l4PYbK3eEvnf~&yo;12LGcmzBLo(FG$H^DCOA?POWG}Rpp21CFkFd57Q zvp^A81dahK1OatQp7BCl$4~3Q)!-WNguqHgti8$gof*+huCYBb@5wm}-CE2Ry^MTy zL_N)z%$sCkjkGxDM2_;>LOp)r_UB=8&Vn(RIBJtIM#=3`qrp+&yPyuN z1{Z>h!2RGC;3@Dlcn!P`GDT0-3*>?sU;!uu$AA@}9yAC7>eGC~LC@o-^TE%+&%x{9 z4bV%ZRBv#oz>3p`8p=I4MfSOQilp|w(~upX?~+W};G$({Tn_x81^fV<2`&d$fIGmQ z;8E}x_%nD%5Kx(i8#eAWQ-10VMu3svU@#TT0dv7(umr3C$AZVXI1H473g82Na4EP9JOUmC&x04ho8T?*A@~S%pDXAAhJc}9GMEBp zf!SaYSPWKxW5F6w4^9PJz$M^Pa2vQCJPaNI+rbX-4)_cB9Q;2pXr5p&m;w$0^T6St z6qErcr~&K1dT=f{58McT1Reknf@i?9;5G0%_$SyU2&jf53f1tnUq_V*bkOvln zC14deQ4mm%9cg&he(@(7jn0;A*x*l_QTY^b9ylNH{@o`Z+wq-tubR=Ozh~QhjQ3#J z!Cn?I3l7H9)?wC3?O@bDtXLw!OaDu2$_}$nSzh}4pls+qJB^Z5O_B%5!p$9FpT5`N z>(_!u!DHY}@D}JM_e*sL6Tu`<2o{1`;09-bv%zKHhv3KHC*T3_Ab1))1O5d*0i(o5 zYBV?sd>52~a&RJWfJV>+P64Na^T7Gw8gMPR8{8uZsB!a+^6LeD+78|VJHdzGBhc+A zL3c0+3PU@E5Rzz02;w5 z;8bt{xDea`ZUjFCKLfu3zXg8+uYnK1Kf#yaD=e7%grt{Oc!CByJK|t*+ zFf4U5KivZOK2^T~+d13;_-IqRz^5Gk8;q8iY7AHe7K3BJ3ZTFma0)mTTm&u#KL$Sm z4}yol4)CHNpnhIvWa=Y+`WP%N6f6V5g@SXzpTRp|T#;ZrI2IfSwt&;XE#SxCIq*FA z415m8E)t9b^FaYP8Ti1};2N+EJP!T}{ssmv7UY0DkPnuFW57nR30w=V1HT1Nf`5Sb z!Qdr=Az&_;2TlMh!D--ha0~b`cpkg}-T-fce}Y}$E09qv7zlE}crXEc8{~rTg885v zQ~(D!2{eIba4OgW&IcEOYr%EkE^s$^6g&o=2QPp(z?EobWGod71UXI_LgA2g5;5u*@xEnkI9tFPx&w)RI*FeTHK{qfNOaXJj zJWv8k!AZag)`E55OmG&s6kG=G1^0m`!BgNB@GAHRcpqex2)cnBFbGTl2ZB714;F$V za4a|uD6j^64{QeKf%CyN;977uxCd+lkAvTXKY+i0zk*M}zd^53L2ob|i~t9LgTZVt z2P^`M!7*S3r~|9PTCfhB3C;qSg3G|o;1=+6a6kAB_$~N7_yhP0_$&An{2TO=5<>L` z!@&q}5I7jj26Mn7uoxTzR)9LN8mtBDz?tAIa4EP9+zf6J1eEVMqd@u%Km8UImJ1dF zH>d+!!8zbAa5s1f{2%x)_zaAz5R3i3qksZy zz-8cvU>kTGybnGAgDV9?z#K3atOTn-E7%Ht4(;fNxvC9SHzyeSRRs#>X2wV(q05^hr z!F^yGcpU5iFM^%mZSW!Z2xJ^1=mrLZAz(6?0%n6bUyp8^Dd=3Gf^6H}Ed#CstMc!5DA=I23#f90`sB z<)8w%K^<5J)`N3E5L^we0e6AB!LPtJ@FI9g5KyB~xqHr-IG)87&oQ1@HYmp%lW^gXRZ zAJ|u{={w#&eLHr3-xt>OJnckqSVqX)Hf#Cr+x=d|7C1qqyuNMHT9?1r~Z#D zKHW*WOQSkZrMt9V)Q=dW$(k_^w$B**ID{p3+YNP*HGL1UPv2+d=BwX<*TCx_LkcX_ z4NL-)!6L92c!2_2!8za#a3^>HYzH5Me}Um*1vLU30louH0#0x?XcYw1Stsqs54s#N z`V4t=ZTLQa2$g>cI`-3Uw8K(S%b=+a)7;KayCbdX%d&Jf>D#fNb|+cWmsQwo(zjzj z?ar{KFN-|cq%WU#ss`{4q|N|*9jF692iKdeS%X!TZL$XSX7yb#ND5Ll7*M%Vb3t0` z8S~`T5vgZ;zeLf<7P@%m6FFDsVPv1$TkF!As!(z<7y+h$gTPEM3oHVQ!Li^t-~nE+9&7+Xa4xtG zTn~NWdPk}#y*T63DA?UkC&<{)oQ@~N+yWm)G9Pj}@2!eCL&EOXBAb1Eo2c8Fi z0e=Nwg0H~fdchDd8B77Q!5pvz6oZvu6=()0gDv1RZ~?dw+zf63kAYu-7r=J#CU^_% z0w02m20=HF0|tQ!;6RWIW`Oyi091gZ!AZagn!(9n3pfp204@aAf$PED;2!W8_!W2o zYzJ?Gx4i2=bR zK$T0~1Qv6+1W?~lN`u2SU?bQBg5X?m4Y(HE4ekNkz~kU0@PFXX;2rQO_&3NB3#dL| zG#CTE1r7uAK>?@+%Yg!G!1usrK|pQUY8dh=e!3detP{Av#Pxzn;C1i@7_vby6f6P7 zU@ce&egtj;+rbX-1^5z7-YA#?mVpw`3{D1@fJ?!H;34n^coX#8B*+Bc0*8TWupDdv z8^JZ;TJQw;4fqFm9}NGVU<8;C3V;G@KpVIOJOq9Tc7nG-@6CcN@GWo{r~=hsBiID4 z2RDEx!BgOU@BtWdieM->0(=M502jCzw1HoPC&2sQ12Ftl!3asa*Y%mAR1vS70&I9Lz2f%~ieeePJ0(=RwPZJCPW5GCZ7?=)@1V@2VPzF|k z6F~!L1e?Jr;9PJXxEfpo?f`d!hruJ@ci=hj8h9PN4?X~2fG4E`ZEEoq41Jl8g z;3!ZE%D^gcB4_}OU^6%coD0qaSA%Q79pFyzFn9#~4m<~51FwVk!3W?A@FmDTLofi0 z1>?YBU^+Mw90f{28CV5Q1P!1OYzC)*bHRDwDsVNp4crbM1P_5ff|tRk;NKwU`+`AW z8aNaz0EOUqZ~|xqP2hBJ251A9fSbWB;1}Ql@HBV^{0Y1Uc7YE;&mRaf!Ei7FOa+I4 z?|>sg1vnbifz{x9U^BP~Tnv5;egb|89tJOf?O-Q(8~h7=0W6$EARr?4&DTBfnDH3kkKmW26Dh4FaaD0a={ER9~6KJa5Ojx zI6*Tw8EgTkfeXNe;5u+UxEtI99s|DuFM#dfP4E`j1wI5B@{Uy9Kn@rLCV&G$E|>x4 zg91`~mzCY~vlg;2c2!tOdh@g5jV6G=lTN1z>og z;BG>Xg2%uMU^{pV>;yf}6=Z^G;80KwD!^K>4qOSY0*`@Tfp@@PK;QEO{lK?DE~o~} z!3MAqTnDZPzXeZ%e}MPFpz{TT!5lCboCKWU4Dfw$Gq?pj1)c^kgIB=2;63nP@EPcH zfuJuK1xABIz%(!q91e=XQg9qN9(aKQ8^A`;3bumF!4=>q;8ySp@BsKNcoO^``~kcJ z{sR65J^?*06!Zjx!4NPJOagfzA1nZcpb}JpTHpq2!8))NoCB@`SA#pjUEneBE3gB+ z2>uM-0iS|@gRF}LeZT==EXV~jzyeSRs=;zl2UdfPU=!F1&H-0|E5WVcHt-;L2s{m* z0k42p!F%BE;4|IX)HF<=@v6dVqY087C#a6C8xD6j@>1e*i_)zoG@cvtY# zmEaNZD0mC(1U*GcWrBmjR4@-54wiuuunL?g2q^a@M#87^(-y!CS=9ut z1CN6j!As!J;2rP@_!MMHx~dl#28M$v;2DODl1ZsjK{7nI$%k5}rstweOxOcUKonQ3^Fxq|eX72ia>#bAO8$Xn*umMjX z*vna8@2GXLSB&21WLcKp>#nB{ z$&X+0V~(CUB$DHcGcrmudg?htOTYSRyfJ4;B9+StiR9o{m1cC;lY^FKWMpLN$w3nRpNMtS(}KwCKsmWg+7bDasiy-i>!s%cNruY# zalW1fv}}u>0z?cZ0F`FQmG$2(dh$OE8IS2jflD*4(@O%EW^B<50+(i-q?ZFmrM%%>WrAJ`xHKb2 zF9cjFrmNAv%hmPY?s^H}(#J$)eJnc5U&-vf{F$#8{#`a#ulg%S+{uqQdc9wauFRrs}eBdO=mR<(w4$ z{OP9GQI#J*;;5%yK~?VP;E{5arPoef)>ki_x~#umHFenly<{pEL_{uVNHV9g^xZG? zf_q}D_xI=~0p+`Ev+=vh=1s;t$24Y_eaEc)~{hbkkee$e%0p$-a6Q zo6?NFdJmhWl4f7Mhm8olVu-VQjU0Vu{OOw|NAkktPfxvLjr=*Bqb$8wjr=*Dqa3|U zjaXo#A-UD~bA=&!t8w(8ar88Qa`c8Y68$~n$IpyEef!9{Zh8|MxooyaAC2WtcinFw zS3i=YEZt)usjT8?g6=C23vA|Si|!?mRIWDS(LW&Z9_CM$?irAHuW{5(_X$YSUl=0U zUM(_~KRLP|K$1R^qxrfAK$2d?Q8(T8FYz{W)Kjx@y@&?BSZWq$7lkTGV`mi zbQ7pVqy1B&(fBFRm|(kXp>7)4Dus8(7Nc=Q;z|*beVR^13W>3ykmN{0lFE_%>8_ha zB$ZXhj}69;oB7j2H-*T#t2xTljUW>5VMFA1{OPINK19p+IhvqbJw&~1X;+}^9jpIl z>E;eR|44l-R*=8pysnb4k=KS$Xo7C+;I|yz*g;6l5<1&cH+Jw_ciq@QsGDx=kX!wl z2uT)c=HPzFpRJjn>IW@bnisZaexk!;b@*R8e3*nW27kmD{K?V{9P(p>@gq$ea*oQr zaT}=Y%f+baixky-IqD-7>F`rMDk^-4gyr-+`BU1xo37%Eg^uH}r##Na*$w>ZuIu$; z=*v0U7zhq=uh*3U_xcvMuhCH#XmlCxd?q&sb8=_Tam|_Qo>w;`Z$_=lo!@3mb^eN% zznLwc&S4(X}RI;5vM>yV!6tV4RLvkvL0&N`&0I_r?0>a0V0s8Z{-q^COTke=$SLwc&S4(X}RIy85QsGvi7sX4pmsY80Mr4H%2 zmO7;8TI!IVYpFweuB8s?xt2Pl=UVEJo@=Q?dak7o>A99Vq~}`d(8|hiPW4<%{hOX^ zsY80Mr4IG43d`xamijk6*HVY{TuU9&b1ij9&$ZMcJ=ao)^ju3F(sM0!NYAy@q3f%| z*U)n<^>4e{f75d<^=}K7hvoEKOZ^)wqy%&F=FX~_?R4hNbLP*SGizpTo3UP5H||MU zJ`%HCvuDk9x#r}}t<9~eshioR^m=$&La&FXL##It%&D90teHD+?!3DESuw z^sY%dq<2lyA-!vo4(UNII;01==+LU1aC+Zw58d7#+TI@ev^}JU3+cFe_>2zeVMRKm zhZX72O@qQI>s>kYZ+ce_9n!mU=#bu(Lx=RP96EHt;BZ{MD~J9~@5-S=U$&psyK?B? z^sXE_bY7ms?T)Q})*gDjJ){?Z(`WUF79C;@;b6|38SY$XeqEibCf{9C=af6IR}{`9 zCB34s4(Szzb!f&cV$I8&>&mUGn_WBCHG7`hHLuNBJggV7^pasZ#OR4&PEAd1UA|zZ zE5F7i@!E{B6upsEBB69hkEPHdJ(fa;^jHcV(qk!fNROq^Aw8BthxAwq9nxbdbV!e- z&>=mRLWlHN3LVm8DRfAWrO+WgmO_X0SPC7|V<~h=mRLWlHN3LVm8DRhX>?qE**ro?T=iXHliqGOF`u4dMZ zxw$i)xi!wYb#=LIMmJj@tgO4)bVzrz>5%Sb(;?l>rbD`$O^0+hn-1x2HXYL4Y&xX7 z*>p&Ev+0oTX44_v&89=Tn@xvwH=7RWZZ;j#-E2CfyV-O|ceCk`?q<^=-OZ*$x|>ah zbT^w0>25Y1(%o!2q`TR4NO!a8knU#FA>GZUL%N$yhjcfa4(V<-9n#%wI;6YVbVzrz z>5%Sb(;?l>rbD`$O^0+hn-1x2HXYL4Y&xX7*>p&Ev+0oTX49emTjZAM(46*AO?&9P z_K@yo({i-WiU+vn&CQjKW?lLDwX^3r=d>BEwSDmb-CCDF2u(yg^R zq+4rsNVnGNkZ!HjA>CT5L%OwAhjeSL4(Zlf9n!6}I;2}`bx60?>X2@&)gj$lt3$fA zmXOq^yp8qVMz^j=MK`((qh{6OZEAGXy6c>QdTD;~t=7#kL)*_ZJAKXuWAk0wQi8o5 zjz;%7hofzk9Q5?N>+9NrJ)4`F>f3^S-1Y7TX{FidZgU4m&d8lvGiTn4aQgi2+5*XrIbQdM8o9tE(*+X5 zQDeAJmc!v~^tKq8Hm;qymKLbCV2`!VdP!`QDKS$NHBypNqkxgeAu-pByMQ`C>oM7s zZlXwP3c2jP+TG&txA?HE&ZK8)A~S}i)Knrx8!GlpO8dl$>MMI2TlV0}NU6gTT{&`Q zw^xpcW|5H^yeC>|^WA6{Q+ZrF+VpX!Qd&Gtwui^*kGb$r)9pe+&Ec8@qV8Pe*YTzp z3B|G;e$&lW2THODT`w%Fz7wx(dosqUl*-1*8d-?F%c--VZ&N|SEJRN2J_`}qJ~~Tr zw>y-F(I!Jigw-N4F*M4u@#m(PVy6%uF2zcq!QI%RWqj=gj2gjZ4mKr~QhbEzY^Wqq zlSpmq?o*4A@9(Uwr4-iri}KB2rr#s&<88q#IjLLE+k(AArM50Yjq;n~BbeoLpB(V| z+_i1e3a-m{DWW~@`erHU#+vdIb3s*3rpLtTltAQLrgU~6C(FU}C;4yJE7-$ZyFPL8 z8x~b3kRy|oV^8ni%CYi&r5~ZO)=}To7?qdImZmlCM#;?>lWtMs%1M4k#c692m}W|2 zcQFP<(r`5U+;!gd?PgLna!q$|qA5*t6t$Y{O-OpNaMFg{3{#4G7_pymWy2@KMRzEh z2bdC#7FP9SaCE}!7|9tDhniB^ZIm42I?YXfFLeodv4?XO>@7b!3|~9Yl&~q9I+;9< zPk6zo)D5v*Q+j(AufM$On|yAER6qjm_MEDT^iuMb=*dm=w8lhI>&R#P)0#kJw@+(= zIN1(ob94O$N2mk|n=+C?cW|6Z_1HM-d*ttcczeX8YsegCN@))w^=+n-Xw+HTv!~bN zWGT)>&v8@)bsBk#e~wK8yM2yLG5R+9?QtHfvS&1ZL2<$#9 z@iF=t7YX>CtMRZ{-X=@Sn<51G;L|O|cPIz6Lx-FbAqPt00#P19xOsSb7;rcdpPdH(tfK8cW5&tRT zy}eD2bxyCo0V7SSg-@#cwQO_1?~(3%$w<&F8$PKXM7CFRQ*%gkgelq3IrT7-gI&!5 zhku>7#pQ9hni^ZAa{;>q`!vr}MoH=zf>t@ZH zHDh{2RQ*02x7HnwtNuWS{wPQiHzcZFC2qE^+t+v-oqm^B7f|DB^XJW&Q#)_Yto%83 zb8_=t(_=-{>%_}+`CR#VxTiW|zFev3rqTAP|4u5ecs=a_Vy(i*$4>?GVnOSw1A8zC^yaHuN65L0DRKyMo9h72`w6 z+$SukdK&R+>)k$+-)1`bSv=S5e)^0=P`!yi$~nj7uAAd@&Ym+bZ^o?Jc~S<3K8~gI zF)C7n3!55ib@e`SQuQPDBvb69qCG=zBBPlt*tf;o;FjXR(cqU{4l|__Bdv1eV(#F8 zNaFgm8cZI>o8l%E>($uQVmxLctwxyQg(TE)lFf;v67&0krf5k7`x??hw7xJ z*ilky3>O|6pPo*^I5)) zQV7-imT{E>OmWOIy`6k55KBoQ`;vZBQ0KyYiCF`$LaUTtq=BC5j@qtcC} zW1O2}ik?DPIu^(Vw

jDkB%8P02(=RRftA5}z)q7^fziA}5#aXQUg~nrCDpfs^R` z8p6s)HipF~9ewhk-DV_O+UREC3bED*cJs8URdTU#my0P?-L0Y{s&yvY(1Aso#;Me{ ziIojCx5ws4XJoxxC84Y6_IcxSo5@MEtHhs6=_>KUy?GmVp@c?#AdUX9Dky z7m0S@&^dJ-8B6KFF_H|Xh^y-+eCfo=#J+Bflj>$Jy_?rfw5VLWQQGaIl}>c+c$t`M zhfb>7cYo~|(H`QO?S+QoftBi>$$Mgi^kZ77--g){w?ahS%hku3q9>B-E#-xL2S;68 zr+c7I*L=@YNk`rOu$cMsW~pyl z*W|0Om3tE$Gke~QxiWUE#x0F{vvX(9ogQ^wZ6obo();9YL^|}L(37WG%Kj0~S?+nx zx%uvSwKe&<`OezuCdoz`5Z%E+CEmt0?%FarikDGO$u*>>)|8exih73Z^p>vPnEZrN z7->o&EU2C%-r%SN!)L-Og_4+LN+LlVwVl+Yozm}?*>^SWI_Z*Zw~bCHn8o`sr205h znz1p}OC&ck>OzUmA7V;nHxc@WQgPNvX%L$|^?!0j=_xfO852dlLcT_rFJq)=oSte* zBei^gpSz)Ht=r-9c(wb5s=tN{m@^b3t=@>wP=eDbGn7DHzQv^71u8HI-`m&*O>L27Myj7-=<-6o$vA97@YLd+=^E5+k0e z-7E5B4mU+N1k_M2Juq_VxOfvx@#00*2vX>7e)xu%qKb?ft&J5)#2nA;2QkuWtfZh< zBx`?8jS}Bn@EJvPn;OqGqi%J~@2T!^jG(zNiE7#jJy8P}>%2xaYfk3cW-BI^%MSe< zSMv!~D9n#*thk!0Z5#SA`u>_tnn0*eIJNLy8g06P@e(eu39lwDl^ z*a4<&MT@CLB%h;mYX1E|Q`{tiqfLU5Zm4#}2I$C<6KWaP9&d`8P%P06kMD;H-|%q1 zQhCZ79wRlvlnZGlp*u>==6?6nd5ZbTY*&+vx~V5M+NrvkG?*z%lB{l&&%V*QGu^Z5 z+%xCY)#W+sX64PD&T1vA8yx`|8Ma*Vte(~JbTnu1K(lzg)3@3!RgdPTb$QaJBE1j9 z+GWHt2IfpL$EvAkI1Fu;Qp0o@1BTS`*l3hlIMQJr`Wo5Ez#B&2xPwDV-3_JAMi~sq znD_Rcb+h1PQ@V*_DhGKG^GN<86<_00!%Zm|VycEXIZ??ajBd7_DTZ=mJEmi{JL)jg zMfDh>_SdvA{AgfQQi;w_Fr^Y7L9Nk>OS7(S5emI}%__$UL~9*)Dy6=Ltn#5RQ&L5r zU}j^3TV_FpZtMtCmR)gX9YSQ|)(nbLCnToUq0mHADoG?2(_zU)H*tI;(UGROGKehJ zF|fYTmJpgDHaIHzgwpC1$(D@6Go_s%qS}HA2_8{%&-~D+=uxHG86;qS{89)fdi>(c zw%BJbTy~wswRZEA#mM&2#&pyK>LO2?Lk5KKv{Ut#ACfl={XCX%S1Wbl zksIA=)F^pQpiG+nrLP=RL%@@^ZWG>wGd39?zvqmCOKPJ3`CMlULMFV$B zQ^Wy(B1y`;Jd^jdORBqKb&NZaLdQ7CKE|=!Xt{dmJz_4yB0}n?T$qB>&?Ej#!lE*< zXqKa{-oaSvh~Csdf|3cQ5Wts=F5_n(dI`S~60^TkBxV& zim|!8j1^aJkdfh$I~S9farWR8_bq{VrXK1aDf`TIXhT5#nM)6dT$)d!HsjavDJ~f$ z*4rT+2*heHXw7xju!wq>%S9D3p{U01sS24G!AO2XRTlm6lOn&-V$_a|lFO*9c*&Ca z7A2C3Tvxvz+Eg=fQ(QM%ETVO|POdf+J%!e>f>{mWMIhQOZGM%s%cxIDJW^eVJCWj5 z5+|9-z)oiKC;c2V1k~qTFk+(UUsISUTC6X3L>_4AX^C8KjL8k7q*TULa#6koBDXY@ zfN{$Fib*bOT)t+5%nRD>p73x*?b;Rd6@!c$n`(l(-rgn-9~e6!|d8_GRf4>1cCD7b)h;M@gw+v6nZU zN^$vkS-qhQ<@b9ub7eNw)jL;<`orRv{+iw-gA3Z!D6Tx*bkbFCjEoI-ud8iy>b1d0 za~#q=_|{ak8zf3r9(h^dYP<+4))5Q8Nn{?T%ux!(GGA|wd*-ceo5pN4Qq6S1w>$JIZ2+o?o8l7z6LG25K-2iBW>-CMlIIt9`YgJ zS|?UtL=4ubOOd$CqZ40(D2v#MRm{(&RG`I!mm9lx z^z4>4wGvSl^pm`pjU=~7=lDdVSnSX6+k}Gd#12%W8w8XTUunm`D$d>8nSqJq9?A( zQCwA7w75-q5x!#g!V8Nl+teC_AKATdN!c? zf57Lil8+R3OR=n1CT~g^5|!tgF(ZGjyEZRBZ*EP#ETd);Q(K5Xz)?Vhd!?+a&?KYz zh&?$h)6gFONg2xfVjq^F8XK(LPv>Q?(;7Vomq&pN1o*6Rf@ zA=;GL_LS9`Tq?)7RFy7+WZ00d4FqWhYnFNLG9y2j#Y9X!+gh4TlcX0FU7cs>zDVX^ zEoiFUAg5%p1S)0wu6UY%Fy#QHGi>N-K~&!Dq=?Cu`mLjSFzBXX6I@ zGpt-@lNswWNm*w~LPt`Ulm1B4$@cEx3uu5Fm0vS&_Pjayb$PB?u9-7uNH=4ouP!{y zqjE)wxJl%Ux`w1Dn4%_@>mTZEmWD5>#))diOvtgO=rMBY2CgwAlw^WalTGoH%gWeE zy%xxBvk)VvZi&u9f>TMekU%y&tU|b28ZyH;lNzyt>UJ_QG)^}o5#!txQwk}Bv%^{2 zZ8l;B)jiSKNOUe~HWCSsHsv|eH`eYUIUzkFr_|5M#et^CNdyx)cYK%Gz(`zUQmcB9 zYou`Qa90^}>fQ9>1=PnULtMkVIuu8 zDw29cev!69QyeLlj7W}k-bQAvKStCq_AV;xN3CyD+lV^xz(`g@R~=@$Di>{2zeaws zS^fZ%yv}7fhrc0O{hmh)d+%h*YP#9=oLDiM)s%Cvg1s$4nsJct7nPw zhdqlD%F%N~`OK_{*^Fw;U#%VbXwBAFQ4<>oBQs|%e(&GzgGRVch#=i=k)0o-{rF< z?Ne*5TD5A`nyPkfA#*UC$#`|h_!xbad71cMb0-gC^#I$#Cx0vGxRTX*yCJ(i1YRk? zRM6xf6m1GAhWbtEQj;NEA~8G6z4{PW;gj8piwjP&7b=p!!*2`-LNocIoL5?1A+YtXAKsjIWTy2YrKLz232}p<{!rq5_{iH(65C~P7!(7 zar(a&j?)J_)Cx%pj>&Q%cxupL1jvrmF&l*=bzlx7DbHwxi!cUdQ9X-Mi0VO!UEx(S znTXAGF`@1{u*umXkE6&<&~RpvpaRH)B%&FYlMGzPp{pT8(k5Nnv3frij@5%&Ww^Cz zYB)ZpJ?U~fyI8JC!-+{)tfHPQNYX2K)SZiwtFUwlGm79;CwpNdE*LUM_a;3`p@ zEt4-Ka5Y7N-WagtGfw9hSqHA2JEps+b45t56cU^td5?w8T#5W&%6!p$5IVWqp|C#l z=}O^W8d4y1a;;D}(rDZD)tQavDkoikO2w?dGYVwkU?kTIB`%38rf-mK@=TaT>R*pWNe-p0nkeJQ^nza34SPEo)4^AlM%cv5P>L`CHk?2AJBO zd`ZY2o^|N_dU}8o1v@CeYkquyXZO4ZrL!Y5D&FsB1ZZ) z4-i2jav`E_3gmDnXR#fh{EDzEA1IOz_3p%J9U-Lh_T(Wp4a38u=J1<=NaV9W02cxP&wr$;ZH#9#ZU?zYvpq;XBZmu42(U4? zdKfzSinJdawDXi^@>MjK6Zx``Xwc9Yc4Z@-VShnhSx;&rD*31s_%>DVkg}9U#ENNq z@<6xB6}xm*$ta~nf<>|}_YI;pDC3Y69lj|YylrrjZ^=U=4B2J8Pk{a*k5M~7>aQon z`We@b9uTyZ_#l!@dfHL)Abu{ylkOfCJo%6kMkuU7TCq+fc}pG@*c(hA@b@!Q9mvk{ zS0`ADVhxSSjlY8RRdV)(JUod%qD)~Y7v$!WZ!1(DrSV{-tEUC;f3pnYfR-?bzffp0 zf(W_985rgAyMp>J>{3=)?Sn&-GKCm2wVT1@^MY|)uaUT}%NOuVbX+r22IWOT`GkW~ zJ7~OG#odlY9jP>47Ob+1wQTyP5xHz9%G~rMrs@ZRb31Y5a2ht}4jiA=TN;A-g$xh~ z&m}(=q*py89z-~?07puAZwQurXv^2U*YI(&i-R=c{p*UFup=H@aHs3w`>UXyP5<1+c< zM*IQ1izmh=1wNn#v^diMe{s2tY&JO4{K{zo$a6+#}oSYaT%$P0tBVpy7fN~QI z{oJ?=Ut^fVakbP8_Vor(%7BZLlAvsK;qsV(?$j)l|4(I(?uC#nh2+oVmp{iJsDT7H z13z8X*-;>-UOg;W_84u2s=V2yC%QH9&0dMxV0{5PQJ0XAr9|O9*|Mvp+e;P2{4VdfF zMB50)u)qHg0(rnEwBs`xKw9bjlfa+30C|5@O=Q@9fXxM|dm^-Eg+ zERdg9$l8Hp)0+@Wd?S?*;*4e%yUxMkjZ7<&7EfTR^mlTA7J!75#qp=}B9ujTmbOL($2Fv#fgC6?A{MC;P1uu$kS7T- zOFsLhko62i(j8x~%>Arsk5=5~=j3$hsZiW55Kd#|DBEPh48C9F*@7q?HW1(~nE_SQdhokdrUtU)9>77tIc5u*q3EkbqbO=(qqV zC!&>t#G#)nWKRk(@(>|SZquLnDDah_`$L?d3$biSg4%S}jtw}__M}tTTcO-&5UkIk zNOJ%ow+ORjfs7+9G~BvB#JOz@;cVQWgXK~?OjyYOcv>*37*seM(BX!CyU?a4c)y)m zMA}6RrRuA+3fAcAr$x{qC&F(AkbD=KDP}^V`b1uc$L@aq)5>iUVN^yo;TZz{ntMv8uboO-hv{|_1TIuz(_ycR=8vGRlwuF-FrH=!r5yrq_AFvga zj|nJCYjT4E4o!%|PCl<>Lr7^(zNnBh`sI~ENNG;KB#_I>rgwrK8+5Pj$uApNkAVoR zaxf&Yt8g_#c^sOfx95@i$pLi-Dj7C?c&tbIP~JxbcDZ!X35npvdqg!N76e*B9|kHJ zRq`0EUI%An7?RiaWKv-1(Rrr;llYf2PPlqVTeyl@o?P;#HZ<7DK`=H*leAry;3B@Zgb z&|u?f)b`{NfnC0N+vJ3a_8jt|`Wvw1am9gYoKSad^go0)0LfE^n<{dgRR2QGhon7u zS}9NA?JwOPDxz!vl4liq21&ZykwSe9`7i*<^UBAtyx<`d<_t9CMxl}ymA?Et5PjH- z0ZU%dUObfAGJJnoNWsiRpBDl_GFjB!U{Bm)%N5a z&OU)<1_%tZ>Bsu1}KCUo?(K1TcO4NJC-ekHUP=*8ff2UMxc$+{5=EhTg?cx zF`NHEp*NM0zBU@A0Z9HxpbxB0$^28);VPBp2 zRYD|tl)6{|2Rx*10FwWt&?D31Zd?*V8-V1W3GIn51}y-|zX5(yfC%97SR!dPk zpp1YD_W_v?lbzgKsZ{%hhuYT-;-hlCy+dsdc=BH}0@JgDhCuSK_%Zo!@<&4w1|j)> zG7@96qpguJ2+6-^Bq}3YS|ec)lAjBSLv(1Ohb|2>h*RQnAaHWP6R9M}tD8df0x=rc zWLbs{om()rflUt1u*b?tP|%QQaufilW(5R2yyO@mXy$qI^z4|!AE^|~Gl7%i1>dZg%7mvT z&1G#6l9MtL!((Na10jL$^~tpgR!RkWV-S;5Gg7jC#hl>th@i57XJsU0LAFG~ASCAqiNmdN!k2uf%H|6$zC5`9d3s#?L|F`Ga(+e+ z<6I=Y3^QrZ=!uRmj=u~u>B{Iq0*j=VVJ5vo?}*d_<_U@wr0hy@*@-D6R`ws~X|zPTrNBgoxE`JNq|D!7i;?_}5`n*%$cV`0NMnO?k~BniA(P(|5yA(@W^n@uJURS5wkjgn0-5}=pdB`jQ$XcWx92~Rp8r&P4$Ynqp8Q9l zaX7r5{9Zuh^nigJeDaq<<%lg4<6|S!)#*H$+VY$5VFVdUDWH_cN&ZGi9X45>s?Io* zq0%fzthf)D{Jjq6=IY4c?5HObXEws&>tY_ab=zvfjE7^k%lUMOaO8K||iAVPL32%pzg8SR40Y(Uv zto@?d(bXd*<`s`)1H5EH0-Ar8jt(IW=ciKw_z-3V?kvQ6Ab6oT9Z)FF6ejsE(v_8E z?&m`3<>2J~QL~S(mtds*o))m{11A4nIzNVEh_!t*pwIv~oVOwK?%oZ$wNFg>8YKBGIp9fVZr(3ZE+;9**#X_zSP~1_V-=0eTE7HVhoka=#>L2Vj0qPHs2=7ihWO zBrG1!9C$XL13fO_%YY@P3*l9UNx2{x_vpzlCkOBW$SDCx^oy;g|05{|Cnnmr(|E*vN_&{;OdUWh=e5Or0S=ko-&1X94*XJ5i_@`TRGNEqVJ5`l<$o^D>8Q3s297G2zQGlU*kB}EvOe8k3i@)nr(--!Wg3X|Mx=1RKE{TP|62-I?fg6h}{=gI&i z_ho`~e+dPm!*@Ye$Y_Rfm29RF;fPY0Gx)5BO-RH~=luH4@WyK;fhm8l}8t18x&0ZG2+cIEz7*p&-}uJj0fHeIo< z3`p{l+m-uUVOK7Yj>>Gk6`Ca(xPT--bh~nYE9}YzLRZt1W&LzVgRTrn@`l@$`&(gG zE|83BdT3;%u>cK7@{Ze;`&(gGE)crPE#TN(aW(#y+m-uUVOK6tXvNKY#mVo;f#y}Z zJltOjEQ1Sj!rGy7Ww_eDwz{sbYq+wmJ*zw%El%-J35avQof_aofKCj6!fJ%R0eGy& zG>4IdElK=T1a(?KBL)>40?P`IYtly~_qW0!xIo7T-Sd0C$xnptAxhW#>68E?ggGXF z(J1;AA-O`qv*%EVIe@T3w~~?EEkuu0obdNE0!9h|LynQ7%_SFQ9B0o39A^MAj?rpM zD?40{^S>8zoCm~_d)@0bRr!#AX-@u0RLn>`doJKV12`^_8egTmLO5TgB6NQ_Ie-s9 z!alP+<7uIqE)J$B`eX6paG_$fZIbc4OWXUgkhTYPVn=sZrFXcer?0!xHQ3uNB~812 zPZ#5HcUZbzpo#Z@0D{BS5tv$-l~c9$_i@KbHcuINU)%Gdr{F z@Av?b5XrwucZWM z0lyhga^O?w_9$lnwlJg(X9lQ6kRn<{znMplidGK4mMYrBUkJ>9tQeX!hvd#Bg7WzESM z(%Gs3DP>{%Q@$cov)+N$#S_{5BPKaZqwui`b683)TotHX#`E&=Oiu*qj+6bEd? z>%RDhL0Wbdib590u#;>+YyYa`8vKRslWXPi5On!L2_VcUE*hD+W-3LiEuX?s74$_h z&ERax;4Ds|SZQo-57_{?vhj-`uVOI$9`5&h1o~ZukDTB--(?qHE9-0lNXN`J7>P8t zZ@|k5BXWn(T>k-1=ga)g0a`|JuZlNwaj();YU`?Cnfen9EJ@JlG1+y18QB4bI387^ zADkUbZUSs=#fFI+HkM_ZVy3J0k1Oj-eOcpiiL$l?ISNZ~ z$+EU|DQio&Sk?syM%K15$7NpD7L2mCoi0Sy%P-bXL7M5OVqfM98;>gNl~%D^(>_b> z5VNW+wL`7;{hM6k>1tmA!iUswW(sD(IA}{3V8$LDav9!RmiNbV4)-)iM0tAlu zrztxaWb(&&68FYKL+tm5h(~{jPv?hNfS}&GJ#mNF|ABOj7U@_s zjkcHLoN2Tm9HRqLO~%0lBKd=H^mKL#m$_^(lg|LaSx;Q{4s!B*CiE+l-$C4MmibHR z&&jJwo$GmZ^5d*Uu1Izka;kDyQ)ow+;own)CRQeoEs?(Q{7pT*rFybY^%O@)7KC!N z9RsAAya~QHB)iOD-Zp=|tG~Uc4Mo>-_q)9R(G6zb{oz+OE;K?4ZbqrQRUL7p>J`cF$EvIB1?hfN=doTS54T# zayuoC9j7KDiAGK;Y1dv|LvH9}@TlBK^nT!k?rz(TQ!6iFEbO!dv52kJM!FiEEm}+a zLuRfl?c+_%YFl$Xqm@%&IzH$+)#r3vunG|3wPgEHLmH3Dwk$AQO^7dD>2@dpZ7*Cg z4q&T>FA&{l{fWe*@{pSP%Q4|zbWniM(C}Ft8a~^JYxpb(hvwQ(jqmKGW3_`NNBpWq7dI5sOEnzyXRSqwRv*;YJ?a#Gv7KGaGfRvNt zjVzmty0wY_oG$`A`Xb0&JSV;Y0U|Im3zkL!!buC1nMFU<=!j+T4D@FsAPYj7IUueY zaSb`Gt(u7-BD}#j6L|E^L?%4yPXPkWMBYONX33({V%Yv%i(x@HS{H zsARX$$%jxjv|tG3;Q1kxeBQiq2o=OYsy9;oV5i{n3zQ!-Vmzw+#L2Z1$ozK@HAWxi z$F;Gw6OC^*@r&Mn7=|lf^d}LI%EVbJ$KuB17}%k-*Vgpr7uY2uM?7km5;>~H&Gd%m zrU2nY<q#I(&q~|5Io_z3of}zY%43k57a*K&O;i@ATSzLI!?3Sp zCpJ~G1;y!KqO|Ej@u@{1Qozq>ffGo`OorzXyq-G)jDiFb9YER}IY_9en?z|L=JWSEV(_Fd8dE#OW& z(f=>`%L$Jv?JuaR7B?pQH5Au7g&57-zXAj!Xxo_MQX1PE+u0y`vZPM(2Yi}k zEQ`LWsRalh2ErHyp%r!u!#T#IPK&@atFRw{k94@@^+A7z@u;L0S@E^hxCSh>G^Gr@ zN&$jad_7<9)R`;}BO}`hW+#)7g`tF87!AUfe}1!kM%iu?CeiFNAF4i!kic`ILlhnZ z96YM<5b4_d&~$di^adR0XJ>;=@2P5{EC9JjS->x)x7s>RNtWmhUZ?p(=;M zFb9u16y#;-%r+irB<(ah_SAAjqw4@A8`2QbWEXjEGQrZE4wDl?4Qd#4Z)u00+odqPQpC>@Na5stCj~^l|tkL1y#vGSu%qN@{lDR-kPz|*y2*oer zwD3#=9(7vmnTBL0@8}B<usVY9zAj?28PEf{5OJ6(vZmtTxX4Yv)r!oI^7 zHXc>jY0%oT*|h{Y3`=my!nSlNY)iLT*aZki*tRjpWnS18jKa2^E=1TXuflP~h`@LF z0>`5YTmqNH<$;zUhhhmXS>To~1#amU3%mfq2;4U2xXcUOf>GeM(}f89plh+`DOZlU z>b=vKHXc>ls}?P7OOWHR1eYvrOPA8Nbc>~3fMBF;8*^OdrES3|ZQJPrq@6r1j@Xs- zH+)Is(KjTm#U_>-2Vkj*nBz6o0t6IcJx^u9IATjzYPHW}L}}=JF(?jedEuaoa2bemtlX%DsXVwxz;TprbXJehuMW-!?wkO$yX`S5< zn-yY-U`NblH`fJPtHpysYpgyaDbzP9VW#SMR0-=QpxNtp$Wn0}ph)$ip-~P*_AOs0 z@u>Z$CCMu!;c|UK0Rqfl?D#{VQ5K!mN!y>eC%ctzK{#3$B&^l6HrhFVw0QJK8{~)u z2=G}l+IVTi;?V8ePTU=O3&J6~AWI$Mef|*f=nwJC{Dc-DaEJ}%8_cey#i85I({0mF zq@A;vRe*4&qYf5?va&P<KfPNnJ++)_-^6m#u8yY z+xE(Owr$Pvl-09aH2}esJ-|`Z0O3(bot}TnM$O`90Rqmk#tcAUa4b5h^eLoW~2ZCj%h(Mv*>3Umt+}~vZs}q1)Df6bU~In#P9e+#G^mN zAb2W3SX6>yX>sVb^E5%pqFp8^1qgCL$%bAQgtD?U1!VswC{I&zT)cQx$rUFk1qe=p z^7}Ya(d595CBnn^wpaK-i7ahvjwkVuJdx5wUs{X6o}mb6jqs=rOp* zu%HSMPF`TBZqZLO5rbvWO=vAhZVUifXnK<`gavN#Szk z_UFE!VL>=*2gFq)t|6zjRRH4>g~>>;s2o(OK}e{mB_E zYcVVcN9%$tEkXI7KUO^YV+|6N0)z!7C>EQ((spMO6x+x_I*pAJ6dM9FL2>Z>1m&Na zCMZFMp}OI}gz*9;#@!q|s>CE(*gr2}Jbj7o5SUE}xnsD54;_`JM+R|`%qHwGjNgR) z2KQCcY=>g~FfLEi-G(8(Pv$%&(k6G;tdTv9HaTa(f9XDH34fOKzPDtBHXw?vq=+Fr3^D2Cg%Ql?I;mFa%<|3CC61dl3$)cEd>nssgUTm))Fd72#;-fz}luoDBpUu~-mlouvs7t97sic2;NzT_DF&gsuD8OupuuNj&;y zG8lgWLThHy5}}#2z0yqDR+>qt^?gy;*L{V>qpz@m2nrBVGnv^{2FV2oi!zgz7OkG; zHZ_x3=d>^d2(Fp5AXHdO^ZhfEZ}?^sk4?;E0YYnL(h}iXx4qI#+E$uLr}cf&x;K5T z!=tZtftf5oNX=xBrWPPTQ(8BZmexm1rf#`iZOvq$bp;6LJ7&^?Q0pvBfH-E-&I%2o z3j{N1Ek)S6pUvbh-%R4sH4BocVOggPrVOxrAT8q}+ zqCl7m;!y=62m91-1_CKSkW#TCWZ5?DRsn(>zM}-q`K`}1c^l4o+s~5ZW`Jdy2EexF zhUCOa4eJf9$?t8-k6V3sRQZV;jmxh90j0LQ{OEKF5X4dFHlIrG!0TrR(--e@hjg6R z#Vjqpq+_{-gMc2|#@tXG?*SkyTrPHpg0tAIMsqnkKua!cy+e7EG#*vn>CQ;zU4Mvp^oN+)Xb!Oeq2UlM4u@zvaffI@I7Am@ zsY86vA0i(8A!b&GLo7hx{#N`*n#EzE&UPY}%0~DWghO;d8kg&A0gdH42hT6p{cOLK z>;4x?i^Wwus*RG09dg%$sh-L8Z_}mfRy_kp|UibPTHHgL>)!H5FrP?(8SNO!1h?RNYyY!_&JLAhfpIW{EHt zvb}1A+kdrf+*Ha;r6M8k1?zw1u|9-T?BjhqCh(U}Cx2PeS+Dt>p^(SrY#3@|Lg zqcVUh9<;zVlD5<68KTCoSqCr1TEoG((;5yrd7-oU!DaTGGiS2^K|&`rnc0Ot7Lpdw zVc55T|E;M7T+oF+zenNmJ$F2+@I=k>C#n{Ep^xo?!m?eY!V2!GC_r!%atp$%1}sg0 z?5C4W1GL<7OJ`=d@lHo+da^n+g0Cr5_R}Rlzt0(6YU`*AwxUs2yYHH^HfE{!B z<54?q&CFXOG{Ke#&Ae^Rb+HgLpIy`QAIK-Wz@zdBB3R$Hkp{+TbPSATgCcf-n!SCT zWH&4@VEU;)U3gS(7Jo~RCCIXhCAj2UdMsV8Y)e-*W7S5DrpHTZqY4m=oNZ%{OKEI! zM@3LkwxoDVk7X>qr6+KO1qfn1(-+Jw45!!<6__S3m?y!_A%EykF&=e_(>I!l|IDs~wm1yQZ6~tOQW04gipYie&FpfO#a+(xM-&-v%E6Dx_sGj&C~YH)5Kg0GC@n{{rVdc+_wW2E zxgjk)DmU^PyOviPpH{cnv|bh))(c~?jXBa{+QI}nKS_Z_|1+OaJSwB`gH6l887(T1 zrN#SqEUk3sBdek`MsRa!OOvCuGy&q=zhhSi7q*Z6eXK{xLC3J`j9__i^}B^vXgyM<)v?g+{c z-T%F5=pMx0k+VjB;jeZ)>YT~Z!u?acSg+qKG0`vXO(+d+E6q%mw^XO_$z0xNd0uH& zuDHYt&Ui0)q=K(=l?;-8ZOo}<{O@FzI)q1M_8OINabwFCJqR}bk{#3g;?XW{Yta{Q ztGFe?2-FgRca?1h+nVb_d~f6+P*E-8ugEC-z@sv1Y8keXCctTQjJM^3GIoHPhCmPE zBfH*vxqt1?7ao;0v4>n;(?T*h ziZR?8ueVY>yqpk^DxMFbYmM?|^7V}Z1Q_fETu%6P_Qv!HkJ_7V1@>QUTR&hTPG@k1 zmlGazLv;vW#3}fMV)eUl$cwv~@Z+EMeR==E=EIam@OV|3fP!?qlxt2|%iii2YTZ|=8E{#c~RxyaB0`N9+%(JX$r zIzKHdylGisrX{_0thH$%En}DZNlWazu7v!m1;7SOPrnZ?k)}J+D1UPNqS;6X@*`d8 zjdZ0MsRV!edUk6gB`xC~`$!EwgO8)=k3If&G3q{qrP4xQ_4@Ht%-EVW~m z8L7;}B1TGD#`=S@HU0%7je=`bmR-Xc=T9Q!W+Oc&Khi_Ikse~WTa;0$9W+)Q+l*5- zp0OZ(E=JOqI-Jh)Pd;b`Pumg&m!m&RvMr=)Hm>@~M7nPk*p?_b0#DeMD1XxAt~dfw zd)S=>uHMCS*@rb>!XoC&@2}#Y=@&E?vhmk{n3+Hm)!|9iOYCNT+fS!n^*3MOX}EG9 z6%VFsgHyx~%~rJSP;SwW&uA39ZK*R#svYX5EfbxViC{*f;A?e8qx_-C9)Ym}HpN)m zl>p=gtoCvd27(-1?2Y9TJC?xcN5T6;hSz!Y1R&4wvd1yC%5Xl0l`EKIlfKcT`MI#u ztMdRYZR3VT--fE0FB0`1Zq|Z{rSYU|A+1gXRz3<2e<9^!Jv6xNVqENJPYtfFEgQxs za+`c9HIN)TF<2=hH|SfnVR+}yw; zTo%9=iU2HC+DCZOJ|ZXWAbN;`!%&H|^ZJ(|)94V{d_<<7eaQ(~JIW|^0a)rNkMu@) zWNwr}G#CYsoWje_z4Q~s)VuJcS}V@njx9=40Ay_U9ru9)J|O?mgDmEAzWqmegFGrX z$RKElf@=yDPGyG7sU$K3efH%XtBfTAMK6u=-eoSd@BmhQT_qEA_e}3;vgH^ zsXzpzOc9U~8KJt+vV7vp^|(=Rsjkr$-!nWWmtYBcd+_m#V-(zZ zhsV4_@tK)RQY&zCgQU55$cbE$qYfibjVSoJMm3^bqOEA%68?PStJrmyw{8hS4ah*Uvl~_+ zxwJEord62}4z&7X_9XjHG?PL~Cz?r-4a7yHm!xG1-k_|`Ufha`^|;&#XWO+8uGP~d zA7`|*r1IzKY)7mkkgwDd6!GPQ%WCJ6YE9QDl+|X!*|{88QK1BGCJNpm`jJK;1o8Qk ziiE~ga!ASqQF$RQitiqeZ;5l1?_jl(DIXj!o*1TT0Ew_`*5;+8vbh))OV}Y8JHlsSymZdB+ zmfKm0!b&u=r0OTBvVcVn(rhEBl|{j^Zw;3eVx-629ny4s2HTwXwUxI8KBOy zPk~r;tW!GxB`r60IoVqbC!4vD14E*)wSzCIPF083PcH!HDBu|59L`C$1UV<{)$H>3 zvsWo&=aN~dT7+5ZHqj8EJ3@_)$LMoWQ*cPOp<)EV;whd4Pcafq%aECorn8TNO9YmB z4h-7OUHa1x-uDxi<7ZbUevFbuQ{#-6DIqi7jG&+KYQWntxoo-l4)6bxg69sQA{UiydpX`z8XOw({^po(6ph?S5 zKM6tul7TdHnzcj6t2Yk}l_$$XBQx8$`l-MrPv1*MXd;D0M60C5Vkl`zty2S>U^65N zjvx{%rX{x>tYH#9!x(q+A@z6VBS=P~;Nntr4QGLtw~RlS{IRSDI98%_JBz&`c+8r7 zMkKCGeFBj=r5SS5L@{StlRuYu(6z2-c&p(IGqExm&8jO-b(=KI#nb(yLH&->cl0}~ z-50Y=T_i~^0d|Kkw#qJpC;Vlp@QK3Yk0>&CwoDeK2>_?6LlDk^L!((N`fF*imjgJ{ zTTEvfnM;c5{M>KT3aEO5@+bkzLos2H?beiO>9fnDhNeMn-fji zcA|6fa}-wIRa#P#L8|7Svwm_Qr(JbsMq%eX%Mt}gtp^4#%AYhfNitf~B=%zNd9nP8 zek#9#qmP1%jZpBv>x>W2r;b=ZjfWS->{_Gt6z<1u??JVK%=+Mx_2*Y@W_-A6iFuLN z(Uo2}9hHQfE=c_mA-HhJtw1yj)$;7EcrGW_k9hv*BW4MSnm6-D=^Il0B*B20B;;Ki zXkL`O?3WZ&`w34QM_M=uRFSI8d0P8oT5It;ej$cshl)tQgUZ6PL$yaS@29q=>@J3xqF>|hX4 zM8T!5V`WMJIxf-!!2iS@$g@2obGDITngV7kizYJ)-dYMs64X5Q$PhV7-U*Stn_con zxV%9P4kwX1{SE%kn)on_nv(eSQ-Qx1<(hJS^bWfMbmVx!41n*^cR z%s`sOUP)H#qe(c&vmob~**qL0TtqlcTHG2TEva&85D@HGM8UCEBDraP;u>1XAo^oR z^h4yUcqb(ao)u6VS3!eBnbcMrU0~b}kX4E3 zb4hwb=@$v$LQeqetyTm%37PQ05glP+MEUcY{3-ULE+TWuaBu<<`rw?PYAa{9O;#%d zlQUC(#&WK=cFr|xhe1PLV{!J|Z|1{s5@0ONE^+44S_4_9dYcrF;0o?4URfi-JSeX&goX z#$lu<06B)?yVP+uofZ=0=|2)YH|){eP}`pY?AORI&t~8f)|iQ6y?;$MQAhE^$Xj_sa&+l_pS zgXt)EYr!;0FqmeK45p*x3xa7W%M+fig0%eo6oOEW8A$7qYKIXODRmf8EizIiEk>%O zRUD~C!QYQal^rpRAz#IjY7~6Ykt(UJHlBi=7e}g5a6eLw^0z-CRT5^TN>-N~sgf!~ zPf}eEGotxR5UEDNO*k6m&uj9hSmMyMK1gI=(FLMOVLizX4KTUu^p;GgSu%%!lKQBn zmDEX_=XOY2mZJzOS5l9{irHFHNu5*~UXg>;fs9IYIw5fZ3ZA;T!s-AORp59>gITENrt3isb5p`{#C|V(`xG5P~|- zK9_WECkZluE^jq-nbok;j_W)5gdqwpKB6cg%a$KQ7E)l)$PSyI*&!PBnrQIC&Y7Jk zZ$_7kni^MO8ICggXP>e?&M3I}{{DV8QE5pDP36SR&>C_VEItb7SmT5#97#IW2L%P>D7eg9 zF1sTf=Qm^3pWn-yW_Jsj-##N?9$V@&0zSI6`3;LQ4aFEt@;Yy=uQNQP+dtVP(@{pj zp%cNWh^)p-6jocPbsiRsaV0gL6h#OMZYIDSEdy&`+63A>mJ%NlD-L$_7gN8U^RZb6gXN!DYw} zWT{#68YQVw((!ngG8&%H~_~S9-2M z%jI9iFH+7r$PAtS@E|jEq_krF*!BSvmu1w$d(Ub|cJ}p@`#L+z<<8#0;lWCIZnm~e zzExdt2im)^%LR9!c{bHuC^tTJzz05Xd9^%wK5pQcz=y7JJ8fm#czJAO$b1%iXkvT@ z->t@%um{US^092(YHRKvYP-5Rc6E8Yya{cS6QkS4CZ;Ag1C4|xrrON6v_CfukPB9o z_}}Ej#OMVP5*IqZT{K&%Y+EfK)h?eWU)3Hj>+Kz9r$okQ$EGh(27h5>eCA7~3$uT( zmJWQ#w({g;b-c2=yEFTJ>jn6<_Y4q)RNJQN%RAoMn{J5k@0Ng zqti3w*(H@S@BOHwIIq-a7@kYd(5^75Mddu&sMf)nMHDqPEBDk^4CpD!^kx*=+7EeM zeJESN`=RJV+N{}=wq&%CdPWphPKzz6=tHV3Ig^9p-N`68D%4ofQU0XKy{d{poHup{ zpr(_va$sO+0^f|!&yN582rn^MuDrk>0jiLZPMbHNvn9wQSkhjqx>yo%vgb9wesWTi}zF-zQZr!LF+3pxLu62 zIeyYc&B27X!F_R2aM@X3(jp|))y5f;2?;AT#ttfkQE=2Hu?VC5Nt3$>3FOOD>YB}T z^00w{)Y9iCiPr~^C~qu~@}5po!)Q1t+K?6}g|v#5G76qo$|!#eQOd&y21eim2S&y# z)vfta^DTXjny=uaHnW&flNLu!TE(M|g6BsaHAB~{kz7yVi;7H^b4ImK@Sc>*wtVOIi> z7qITFEn?xZ1HNg`4lY3lYKQ_47zLM|wH(8J#;}nd0Gc1V@L!(F%7pB4gGccil{UlJB8oL^)6%ZRZHX>H%h*XoR0Eu^P`M{V>htDz7$b7HufM1 zvK?ELrT{E;Y-f05J0mMR=$f3*k1Yz0Dqk?R6{*u83dhDC+_6Pz3c%0PqF)ldgfH(T zg2O(1+m#zreB0I8Y4X08=lQ%W79b54K1oAI+}|IiFGW!vVO;9u@TEf*?D^7RTCo3l zesZGV*cNFyya>)ClQPdjZYXE5VJ~|`-*zJ-f>p$P} zqloz$V6lj!;1qFFbtE#S$iDCze>&PIb$!o2)is)02YIPV7JUOSwQhfySF$KLZTQk+ zSW>2;;7f(6k_9nr6de0-R>@jADHnJ)Qa{^xPckDaoU@BOH53J3^4UgG<=I9uk)CbL z*1yk$50112F>#bX$!N03oglvW5ig|LNdRgfxe~L7gAPtZe?}2eaDCf3 zcN<1##EHVOu?N=&MQH+{an8UHi#dZs)+>BGwqFkD@a;j?J^1z@d|3>g3Ad{bvs#3NI1?f z2OS)+`<{kkK=ZT%jM-91 zvpB6aO*`LM0|ss98*6X`x>L&=Xj&9pVz8yZ>_XB^n#qYh2%KcGF?Bu)j-*+3qN7|& zLTzQ(q$-}=DwFQ!Qat?0z=f|GiMlMJB1c**`H_~KOHh#q%O?tsASm(Iqtt(fK|CdqbfU(-oyGHPA7nB>e|u5We^YqS-`d7g5li@uekF z;!8`Cq%2}0NsALnTIoavdpuEat?oB2N47Sr?8Sd^E1lJ>NWf(j1(&6wN)UvBQSfen zGuOz6fq9#mEiAu(ss&~E2@uR_)uM#(DHBhU>cw_cK`6&j`QV>b-DH!`ADWy{E-I7j z&{?X!gz%M4Ae!0oy!bM8rug{o7y|{qJ0>c)@at?yf?kUx5R8c-jgps0jw!eM^0D)_ z8>4lCsD^mT>*(LDMr+IF91Kn#@;(*bm=SIvT92V*hooHSiQ<6kHseQS9*5 zl3*%Gf%nX_LrJJwQ(cnzh*4dVkwi=R&JskQZy&q^;Q5ufC@#7@E~KKXTm)eOnfAdY zbz0IYCe=$kCN8&31gkg-euJ*!D1T^j-WMT=uP>i>v4f^1r(%4ihlKe`Pg)Mi=9<1M z3a-Vm@S8b-dPZL`61}p;pD1+!SZc!AWkO7jvde^+=_s?nj-!l%OU8nLCvOh}cS2;o zA;!Ms4KX{)D0KihcknZMWajPAXcBDHR_IBJ;0}y#FX8Ua#;+kqex2rr7-ShF$5*CE zPC`*#Ym5DMDycG-A=TnoCJHXGOn-lrzXgOj`GE&VNJyAR!O5bWu2-8Bgj-Q?34{tl zm6pnBMa=OI2{I>&r_2Qx`;a*wygg&CHET_3-0EZJJ+|}Aj?iaB!9VH6G*SLO1&XR< z`|DE#?1gs)lJCnb-+`Bjf=fwkNnVCjuQy(XOu+D)nG3v36ujzczCRqV$)9gDIbkFT z`|3RmKGHCf5Hw8WR3JhNt#9?Lync3YdT457GW`nI>WB>;ejyhM^?3Fwd-<@oT+aPg z=Zem85RcpJ#FL22O{Am5VZCD3T}vBYfh}HWd!|` z7W?V)z&_8_^SwrK_4%rr-lDRIl$#x}^vDj1OOH|TwDbs>5`fN>^Z?LOMXpI)kYp>2 z3KD(qQN*;kh=Alc2)+=xsFN_gCRzQAwU$|3u{D!Ts#hAX zPO2L~Rkb(p>QV4tRI?l9&uj9h7)_2>C$_JmUjiSgS0@C$Iyn^xx44pg3tpP9WQA!^ zW?&fMU101m%R(2JltZHV2gTWYt|!~JBNESE5J^fP?rcRV!vMpUvWWvBKAJrL6r^xL zenXQ?q0%JFy2))95sr>6>&|y2`duDG&vh z*9&YUL;%JSqz8ca*Rku`7*&FWQxo8eJ(nFLtF-aNm_i`P(0^l!WO@$?B3_DXG$xl4`Llje;A0 z8RgGw@~0S0jw>a$ucDqSC4_Gb1R|{bww5SfN*3FZ5!K zyD26yX;erabiu1)N zxSKB$fcYZn3BY3ADhYO)Xom#5oLMBmxp{#1*R5XaDg33G!Y{7$N^*3oB)4R@N~&A| zq+0A&qu}B@`}?E(Nz+o@DhbnOk;P)S8U=sf+$wvc%_VciZZ!(NXtzpgbgS&V*sVsv zeYYCrZ-2N|5~f=vt4nsPq)N9+s>N`Q-sS=~f-Go?HFLCsB8ngBQt5 z*=vTc;-C0P2hU^V98K(6+{=wvd6MYzRIDw$m4R=4ENLtF3U6kwFf0^r1xLZtt>81C z!9C!GTfxMoOJ-M?5192RS((e0w<53f#&cyV(nW4Xk{taZ$t~F*k}6e~REzy#6kMEM ze}9xeX?+>H=Ex;eP zwu8uC=p4y+@!_N>__bJ)OFEoHsyv)TCO!|U@omf~c-7T>e>h%~uO4V}d?^Y0>g^p) zA_RRYITeT{Y-9Et7Jd`2A$bgnf*Vkmg65z?_OP1Nco z&(vqVnfh#Qrh*rRqu_{18q5??_@Xd-INh14C`|$Ij7q-5AG}_Eof!%3$aQ8Uh)NI; zu!*ZZYw`~*3A2Br=b}eB_{0vwW95*UJ&Qbo-+ZeK!fCa#PiJ|{jnVn%t3 zEXt+ClYEQJe1hP*^2l`6eu7|i?ZE2Rp}G8Nq1s{B&rD2Sfx8>aGb0n@{u^I67}+uR zxWUK{#-g@-s5}eO@`4&+m_cSR_J)&;TUvw+q-k#Ti*n_nu1OyA{Jdd^ls<15!Uc4T zdDoP*c=0xA9d4&1*hY$y{qol+;)XVCTi9fGD_M3W)NzfKouy z6-~lSm&xj-82FOXc~ZUHI8{=;3RL6id=&hPY8RsXc}@Nlqsd9-T=Q{^Eo6 zN1yxI+dKBY{#^adAJ*@AB`8|T>)aPoefQJuYOpkm8jC{(_G>p`rezyL~JwT|x_`u$8d=34&BS5DSHfC!_mfO2J zy4FEZ?Vam-I=Y7;Dtu&OXtY`$pPihmt)745wmtXWUccw%y|=zI|I(d%?t5s@!(X5O z@tu2LzR#21+;r{8p|$P3eceMt!`1G-a!+}k&^ofcqq45r(>JuPQt9d_cUR1hot3_> zuEDOM;hwb}Lp_7$$KJKWeH|S=9UXl=-9vqS=EuICuJTZ2urfTfZm@Ihkoj@2T1Z`RMxbx=RR$)@Gn?mXx6VKQ_4-@8>O1b(v-1ukTnJ}+rZPG**fypg zJ}K3A+`jL&yF^s4+`4D(xxL$O+xw#@_WtNQrQxY+74vRBGBR4-QXTzddujfG*Y@7= zeEl2G8R$}Ve0p}OI)F(8p+}^z7wjn5!K>Fgj7L;F|ZL z(b-CMTImf;bE~szwMclup}hRSmo0OYi6orlV(`=d~N=|S9ZVm7^Z#qThG*Qd%OP9n|tnlW&Y8f zsl>qb?ssnA{l;DO+wa=_&U+A}9X(Lz?|Nzev1jIY-3z@gT{|&3JBqK?T#p{FE>9xy znW~oRPrXpT?KUt)&MnWDh-I&2^cyRqboKfh2d>y~@l~I@7bdM57LX=c%?^h&fGk3NUFtKYk0_Zu(H)sFf66mI0df>P&@ z=W4(2&4p2bJ#T$${_#gS9j1@5@?_i0))|ax_pV)gUVTf}-^*|9efL}SJ9dG=J#2$w?b~1Y$v5Cs;XmtSJLaJgmgtFyw{<){> zk3CSo_pW{0AKv@k9i@S5VI4M3T&)Nj0KeKQ!J4V+sM?OROM72>YR^j#SQ19IQ0!9N zdhE!lt}=VqzK8EAjSb4jkxKjS_{RL)yO9@Mw{QD)W#_~Q z!Ru#-hex)~)lRM7d-tBVw;NK$lb}VK-O%t4F;zMzQsg| zGjlLUCF_PUF~_>JAX-aqE$xw2QOrXj#oq2hiq};~Eyc?X#XXO_QGfYOMidQ*iY2}7 z(yIopUBB`2fvYav;C69@%QWcE)&6Mj-LKd0xj(1vF4JZePt3yGiB~C4O|6j!tj_e` zvdHke*v!<0%-?hG?sp#%gKWOoRkA{@snxFE@eVq{)Tf&3_GygO-uE8bz3Y+P@7%TL zozy^4x@xq5VGO&8g6N%(%2X6W6w5GIyM%_q%&}^`D^5@`bnEv#50jj7Dkk;9`A46} z0>QeStDP`##q?#f<3pEJhejnry=Ll?>M*{|R++1PlD6VXEnnW zX;chuX@1B3__tugFV!RpxOif0tU5k(&Fl>6Uon2s?C@Oea>TABm+rlf?)lNTQ$oOo zrs_(4p)?Hc@IACmSgaV7i1)VF=70E{7^}OXw8uG}d}efFusq5>elgkywc?%!;X>;# zJ-qwPou)H{4W&(rZme@1tN!U9rF{Zu-*@kypL(peurYp!;Z)9*EtETt6y&tE1nsZyniCmLD2Y=2JFm!W9iLbqK!iVw+&VLbCJ$WdaRdtWG>b>Ug1`ZsH0(cXGdtjkMpVt7uxQR=v` zj+s@_o>ywmw1irCqC^+dvx8VB;>0F~2S&ywC#LXuzf4zT3DLVrmI8gjq)tv-{Q>>@ z%WsSMt7$Ct;=RV4$~0bHh9ZuRiWF4^N3_sf`&45s3}p&w)?cd4-}fUky)cmjS0NZ( zKVC7u?0UqkbG5Z_Uwhwq$Cyz#%-O+G{ms{mTZ7E@zWzh;!keq*N_9%q?(Vnt-GK-k z3U`uEZew+;Rc=`Rt6;fFa|R6>8{cy;tdZ4i(6&qDo$qHqifWtAu`2D#fU69`fVtXs z=!J>5jp5w;&iCi<`nH4});=38*|YP_`Io*?fBNgli%R(J()b8I_|~>%@@H>9Y~9J4 z^7PCar>TSxrG(!^0NZQ(9(!CK+AM(87C4H5i)KegE7oa=FGip|SNo^J$o}cO>N{R5 zj)E}g%*v`Gpr$jzUo%q~7_E+%>i_ctebJ}O@cpV>0P@?54L~?qPLN_uKe9MAcaI^1 zEuHyQyRd#WosKh0Hi$9qXMXPG`PwZdvnDx zt<}zgu9-L(%LU8UBo3;pQZ|^s|CN%)Tm;65nTji_G9%6O)xJ zl^qO-9(i}ZwsYU3+xNWp*4~$YL)1(y4!*ECAjac@5*BVrk~14f?Rn%!^LIaEuv4vv z((d`*E-{73mLHx28Ij+2zlNLznvACUj)%;$mhAZTS79ei=s*ABGy9%@nnvyj9R~c? zpg6%RuEUZ>tb=T6{?YH(AAQAGigQbj-IzvD$wpc7x`yc5z>*o6F*aZc5w#d2go!sy zj$AQ5!vJ4AqGONDn8Yn$y^b*GQ*F4NL58{sm})Vl2*2O?R()i)R8>hXbnb}&}FHU9nRGb8^H9BZW}1iZW@??Y3Ua~Irp4P0rJ_s zt5(15*1hlDi!?}t{o|MReCAXBrbh76BXM=P-FefyrT?S1){(hbrGC6GqU`p!}> z!lLI9L(jkTV=%Bm6yV%aPYEi9R+(_rn>xD7>jrz)_Lc{GDxDoerVO-7K8-s%AkocS z4LJxNG}IBVS3;T4T&>xLQku4@ONWFFAYwIqDb|HLK7(o-RmvzcZk~W^HZAxPt~`1; zDEe%!4&9_h$#SJUIWr<hpiK9u2h&C&Cw-9Qb@N`h@N@-T@JG*ea{%1+Osz_M%i z+Yi=j_t$qmv*){SNlhZ_L~0zUD&^@yguC#~T&aKTn1A5Oj7Kq4sEyR`d0iwav({Vf z81C&E?C9z4>*}bQ(p$&6;m(ep&Ms8hdOG{cQhHlmI~p@FRhAi)@Uc8IGlf~a8b(@t z?gVzRC#DAEyT>I2_2Qm~+SUVRWN>x{wVqcWpWps$YUN5-U3J6Nr7N!E@1|a}`;8w+ z@Vu!yqr^=(Has;kHZVR>ffWCfbS0nPMU4|WX?ih)k$xHjXDqh)nD6186Ic-dx@$1)fpZrqySc&i`cTOz*cd)rg&6N(rQ>ljcLqf?@s{ zfUagIqoZ5K+O}@pnsuwcj3ZCK8E#KIwGW1fgeh38_!{znfT}#^YTG1IS3zRDtfC;a zQCX(Hry&=N*q*n)RlofQ_1Z2Y9Fx72Y>5kzqYch#?JRpCur(sw`|>k}B#rnXmLDvl zx!R?|i5A%~X<3jZDb4(&FVtT_#bbx5noJ?aI2SlWliNzLrt^0`Axj-!uvW``=)hQc zd=twzbG1*4s=xKt{MYZn0QWrm%KYnZ!G_aY?z{_S1JIS&`<91GWBAr7{X)neWy$Lrkgyz!Pe_?W71I)9nXA)b zS$REicw*}2@)Wi(Otz;BON{ zQfZf6lhsl|Lv4O?YC=9Kj=KN&@W`gQ+MEeM>aRb8sx3-oC{UPq3tCKA1S1LLW!C5V zsZG<_cgSTgun)^{Y58l2rE zxN4Prd71Gb)VQE@<@Ch3h840#cFoE9w7i<`3uIU{K#-9_jMmOg_*+VQQ%|cc0D;UY zvmN&fF_U-6{sV#zBX*hAxf|~{@^;HhyWhCGWHm@OmgZIL;C;_qkEJC&!}$57wlxyK zpIh39wWZ;){6l`DyK2*&oB%+!cPvEP8k@5QU~O3&RP~zcOM9RF&iv!|iYc%-qO>xu z^Ghy!*e^oDBI9QHP~4v!AMzPENOVjcuY zZEJLJ4pTZ}mq(^+ukFC*Y^klSq@iOC+#tYYE%d>6v8z*m^9S`iwqyIl2)_RETlL4b z&%gK`RI{x{N_gcnGk4=U%vQ>gp$EQfg}pHdNKg<6bv-A*6!b%5lWoUIo#V(9juglx`w(cgIyXD9O`HL z{pPV`67MwKUs!GrnbmK5b@#3p=I?)V{)hKTR@>FnJG8F5YpAEItE*$MYC@B)wdJn0 z9mB)zgFQW+?Q10p!8sRf=^~+)6Ac4;pkb~ywD+ZV5n+_Bx#nsuAk4jHmaEh--p1bc z!yOlP43_pi_?pS9=kI^T>{y8lHk2@FP-Rr9Q3ScYmO=`E91cJ;>XcZ^=z7b@^ax5) z%;^!Y{vm3)=v{WJpS=aC-kxu~HoyHAtV8bHnmUtKqY!GF%4Dh}LLE!M99__Z8F2No zhTnJw#V0d>-EZ8<@D5e&%^Rg4Cir3+C9fZvxd6p>7XkR-e16C4Hs&&etH1Ql{A2H0 zq3lTYGlim>9bK+ea>GOtVS`B-rFyTg??woGFUr_EWUpQ$SY+)I_ekb?K1+v^$m=;1 zmEloR^f$#2%5kptag!sYG`TIL;>4uT5Mw(*e<`iOW`ep|VFcNtmZC{>Mr1QrJHNi; zvHG)j!iQ!=bz*VA!J!DRAcvMD;}oMn8rWf)+BR1^%~*py-~WDT1ZMX6jFN7x;f#+W zX-Q{*IA;+@jy8yN#5!AigkjJ=qjzw$Mv1j5B%3Tq0F4f3-N5c4;ngZUjI=IbhxZE& z?SaZ$v_@5Ca8^Af*^M^(_2B9;X_;NDy25UUtq@{RJX+9GZoXwYYS!(2O( zWr^CJG0-&7>~z6$NT+u8VPUZ?I9EFadzck!*IezVsNovEOu0M-PbFEpUKfZQ0zu(` z!8c<^t;!pv*!R%ASacj8e9M`aZ*0>VDiYv{sWZVm44b~(uKiycb2V$7BXbTlY~yAX;>3+G0y%*Nh%TNin@bZx)n{MAvhS5mpwe)>9>cjqws<_#Xvq(sLmlY?SgpHoeo=hbFROuS+qkVX zGR=B3*!X4Ly1_4o`af=;!~Zs3dqZi@+xKJZL|`HB-4gDjYWf>GoUFDX$u0KywW_Mi zuKv(|%U^xVxM!&2-fzE9Qg=*$FBVcO9!cu=b9x9!-oOX|{Ob?#*>dO6#K zGNDd_T@I<4fR)wSq+LsxV$?jJ=XoaGVN9388hBIu4+o^=q!fBF15Xzy6bt2%@tKkF z*)*6zh~)}Z){2_=xmqoyD`yUxO4JMv)2u7mvJew$4f}Xv(!_Sq@rll--EmrSE82Cm zx|(Zer5HJnD~hRAY9nRr_lheqQ3J*Y&rrq5uya!MbbQ8>8fvc6;LIB2D!WNI2PXwZ zajJ+yuZ%`fD4$Y&-}r9oMZuGyh*77}m25vrXazCgRD$F0WPk&@7Xi;bi|A^#Y({8} zDO>yVcRx3O|BI@n zBVk*VqNs?eME9iq z;qI--3ooR(l{KMf|B1Tu>_Fhhw-Pm5J`cBGCyk z)VLVTdSqSsnMoFHlu&%Gc9CH*MV!C$8Bs2K@B`pGS~d#^xs*uvtjh3$+pJ-0ojqZ?>dS%EV$66Se_?4uke=;xs&x z(9D1%0ZHY%g_&4iRK$B9df3mzV%f~mB3VNx6K+qDa3dsLnHn7(pD5zXM0+GLt>?6hfwCX=%h3{96&n~mw}@)@y0*Mq)U_ma6+wo2}w4mIOM<+b;yu}}{Cm6hJs<~PwU5rW5>Aw_Hs(U|CJDQ96cNTFPpIP1?;Ss^ zzw#Sm-o4YT^opmV=Athm8L^9j)R$G5e%3CsiH5vvWV)Dt5~smxMuzD~wl|Fysawrm)wO+Hc$uzJ9qeuI?vx7jYMkPN>D@9hQlURwTi=2A5qXSUEcgv* zWB!9_kPr}u^vo-XQXP;N9Z_;`=Yp+{Z_x~OOBu8J2{Rs)TUcs^erYpKiOT72D7QI? zZ}#AkA#KTWO{pO2D{52an^E7IGE@5mJgWn3cEn5L6XSZKigZPFv~*<_1G*XMJ11R~ zWF9|pSO7Pnx2TzxRbiX36ib66Gec!;h(ZkY+g=y14Z+*+6$x`m_(M`QF;&fS*rSwb z%aL$CSNqyRxW@7^R)en%p!6iVm{Jn`)^mM$aYDtHsv}r7E9=ZVqTSu?!ySFY>ncOlKIngsu7>XJ!AehWS7#Y?hS%zuwAzu~J-x$&JsrJ+ zW$c>ZMOIxRD=(Xvvd1Jpg)=s#`n%8Xxf`$1$??b*cWICrrPR{1muH#7Dlg59eU zj@)dj>d`WLKeZ7^A!LG{iaNkg8m%Ko`x^}o&g`w*B?AX8{-VDR*WF`YF$&)=WXEQe`{9Fo9 zSw1uj7s5_t$)HkGVk|w__f{^JV)G?cobpmy<^(GaH#ViHuTc&$T~!9T;Zexo=OkG! z-?Hoj&Q z20YwN=Q@@^>Uoqc8zBj-L7{B)ZOU;P~xP7u}}++kbuJ|Kw`Gdl|X;L!O=bRQYHxp$;pL6#9$Mvs&jowP8!A3A_bIBG!_#s*Qeh;U%=y!5fT=b@Z< zh~?f#A+y1MiX5wjCx5$m6mGphIA$tI-wIDc(VD96KrASdPhHSeCpXD>>9S;aocGFS zzgj#7MgeQRd@vu2V(c+{P9;2CKu$? z;1P5^%4zskzkT8{!ws?c@)5jxF?}lYK%@Sh0{pc*cKGTSrYEcAF^2vK2CKeahITC= zC^@qdyrnX>aFPvtK6h-}1WMbC7~y-(Aa|cp(K0(L#qr$=S1t#ocaxh4Pn^o061NXp z%%C>?+{wq1Tfr#X=&f0u`UZrTPR#DC1TrsG;WVC_nJpqJ8)y+GnwhCbG=*q1MAn`^ zdl*>;QnFG?fOD6LwC~CS`Q+1xWnx}Xr8>i)Lf6)&XNohk&_ZwGG=5KCU$)`-LsW6p zFhbygTcN-k<7vC9yGmGeiX{}_&AYeo>PzQ7JwrF@Q!j8QB`=xlkg}v1Z5J%mUq8`; zg44rMR0}2$`>y$YBd?M6O$PTx#cJdT8A0Ukdk{8<2q466G z^6WLBs}TBX6NWy}s3*FsHBn9?ANfi__?za$Hg!bk8c^|>1)jB8V{xFqVqz)S#-Vp1 z1YJ0ND4B$hcx-%!k=+$(TcGJ3F!#ETRO^Rka9u9``eVIH3U6S zGlLtg*K|MJwyxQ%(QLFeaTxj81o_bJpJe{iM*$_F*Yd;CeP+YD$%P=j(tc&H2L<{y zpf@3tjuppgsvi-LPU7oaVKcRXg)x3&rnrN;Hgj==Y+*m*R^p-XDfPGAQx21c^37+e9 zN#g%r+sV-C;VgFqrVQQUX@lfla;4c^)5d+(IE7URU-)+O2DmD_bF7Fx=*;bbuYPbW z&Ck8doe0Zs3;*51>|}*UU&{dshj~&fXiE1T3rHhFEV;dkH!w`DerAm&@?yL^-4o!O zcrVdgWH_`9TT3_OS0y{_(XZ3ZXtVbPX&O1ZoGk99Ugtr@aed@a(&~r~(y>A2hPQ0p zHUyz=ceNJu7k!2oojT(8K3F_;1kS@SK^c2AZrV-MIw-8XYtllUj(--L);7=^_~7`i zPN?sQ1$KD{-xZZcLYdocYxn^LJfJRkPlF}zsE$_=1{H|r-??PCE-$e|AQT5sJUsZ1 zU#KTefqlhgLMT;+L2IEH1K#*p$-$5bio4)dRYq&Mf)_npyIkp%T}MwShvfY6vlpH} zE(_b?qp9gmw~cwta?G4UOH?P39UPfRm?Yzvnc~o>-{ET~u>iLra!g)1i+ORHhloxQ zS3tKCzHwX{iz@PvB5>d9z%&t}(%QwKZ$)z#K?ZK>AaD;JzP2rTLdvaen+5H*8D86% z4(3gJ`b-#fO3aP=FBcm}7_=Y42Cy2d6-|Fjaxd=L`#;RMIbAq8s3 z{iVgiQZ|{wgIxR1&+q#vefH$*0I6}?7 zYZ^uwnHUwY_Avgn@r4i0ji#-m-%zQeD7@1qnY`6eE zLcfnA&J&@SveG2mv&x7arZSSDkxaySH|o7QLgc;3bUS7etk0Du=;$SJ8If!Sk!S^L z!<)F(-_$9g5&UJ0OYyMD!Y3!RL9%+1J;Lo^p{$DYF_8}{Ku}?-k$u>HH%5O*hlRDB zS#@U|*^{aLg_9x66vWGHIpH+O9%r5c3MYMd!MyUCg?-nL@7huo=C$;ug@qpI1O$@B z5w~s%Ny*HJ(xkDqVauH^LnDJ|#O$(3Dv^sd;RLuq9%pZZ9>N=DiVC!<`9Y{}(*ojB zUG}s_lQshJH&cCyoC-=OlLnAefNlu0#2B^;Q&lZnk;l~aD|2y-SF4rj!oQfE;0<%T z-=xxo5W4Z+W5}7HsCVdX_y2tUtmV@(=Kz)xNY=`+z)fH%A)P-kI$6fEzpLo^v$nht z2Oxz}6bgrn_$B90yr#`|8?0TEXjMsB1c3?2ayb_s7}a{A$Uy=0EwT_R(yjK?LYg|I z(%vbDW>@ypIzdM4BKdK!`I1~zAAZC;(}E-|V?mK%)c1Hl1E08B~~ zK*SQsxE<%SkF}8)p|@Wsz&H&1yoFH|3OX0&QHRT5_iBc#>;+KG!SLRkd^K2Lw88Lb zcd8^CrxCc(_0!_?=ITTI&qjo0Bv9?=&oZqYoKP)9QVz6BaVnjSW&+eIJw1Qm+2{%7 zsyfmmHIleuneih`sQt7O?QFIQT6U3xh|vH3!685)_Vvq{{SAf~B8A$ehV9bIA~jIf zWq?;~3eojIz{4{CZvMa{^Lvlc)&Oh1QBURo6a8}jsncL2Mw^$dBkUvcR~q$cISqw$ zsk9I58B{466UF-&e&%?G=oj8tfCMJUv{3FA0`m}Vmk!7vGbz{D%QztTsTpUFvxlz> z8RsLlk)aAxF=g~G4k69II#{Z}A22u|IM45;0%2JhzzWTxG1FAjpE7yYOn}L{4VEI@ zWd;ae_N-1rS~#^=4|6V{3lp1=oNfzqbxI52c5KxDt&$YM-Ky2j@HN41oTdzn5KE+c zPBffPRGHMS7*dDzwPT3JD1m67tFH*&Bd6kN~f!-E8YExj?X7Z5&5V1huhz zX0P#EP&5F9aN8>Z)J~fj;bJD5r20KsYW{u=dr>8}gy4S!sC<#j?yDY@B@4v~kG+|kBGU6=+(s69 zqkhgGt?z}g*)r1urA3m+Byr0R^?#TuNHF|otgjaqzt#M23~*A{e=y1LjKUM$506}_ zySs|SD0AUmerIu}e1Gt_4dQ|;-`^%9N_L)G5{63YZ-iMO6T}m)ko`2!i*r8EQz>>2 z_6!gA8XoPH14ZCc6#GkkeaONd=`pTw6*DL)S6l1@P(EO5O&m=GbiaiWx3c7#qAXE_ z`Bej@;c~5~w+IhfFD4=nE?Lf7^ue(?sD8bWM>nqA1KiF67 ztMmYbc(B+#3}{;Oye-=fd+JuRav@|}f6%%2x_FA`5b&Xm>vkcP%@_F9UjmQeQx(`5bRBk{PDzgt&c1zOlFPO}OUR6r`)%;5S(? zccVUu_%d7!G;7Jqk{SIMj7}JMem=u%a6#Ac1C1B(XzJ{eLBxqd>BL4o_*O%aREHxy>*ok>~^Y1hk z_P-#30A3<%y^~^t_cIWAjbrwJRVkN_x8aFXX>cd*OA#Hf5FDGq{z^Ack$Zq4(B0Qt zRSF-B-U{BqT~L<117Xvnn-tY>bPh9)y<%$@_C2i#3aluNRSss1m38!_n5U=2EHzz& zu?B+dO>*5Jl3mGMT#a(|cK(SU5UIdz@hl&qAgrrhJ=F4 zNkbbXIQ4H&st2^hwXs`QLWbX~031XDTqfPH@hmGz@E@dz!f6-ajvMv6b^dh4B;otm z?1k5un5&c!3it0kf%z>qP9&BIyk%^%N&uNIgJs1DHEG-Ahi}j~7@C8es6A-v1|mI2 zQ=XlI@@=4*$R2Wm@6UW-!lOF&2J?U|GlddW)`TTYSY({RT5R8IoW2y`lChl$r=8_)-)32LC< z7Lu*$hA^x?iyuHi^igiye9ziV8`l?px_0yWO&bdMaQB8a=|tD8f&fnq#)gP_Ie`>* z6v8O~;EDR#c#d$Gpb3415y;iq=B9b`=u%)RK(5yqXMoec@E5Nkii&W-@tHt79u%Tw z!PKEi8C5%p*#wAOFI6b2!?E-MV8}c?{IV{)rQW2156^GWx_7lCXIqSx_p^ zvChQYKA0Huyy>d+G|b?d#&8?;e;-Z(?GGx^#pNKzF3z zTqBM8O3{523Hw8>qI}rS-AUq$=n7_q?aPy&O!6{of129T9@G7t(4c3d0sDj_dFv06t&Q3!C>ZbdU^W=VIlB2 z3WBhXKKw{3v;!Gc7V*w=VH3`;>QWp_W(EyM)`p{>UDVW|#lSt74hWV3=c;XPIyzIUuqhX8A!Ziq0)$O3E~$DSXYZr2)EY$^I7$IFnlYTTJO4!PG0bxr)IH40V1&<;4(9xuLOOOY}77?`^ zJhaZ5VHd_lPH7_(*=**!!wTtkR;#AW1gBk>$v!Ts?5}XF$rs?a$#x*wGFk)()CIsG z5?2U2mHRT>Qqat>B@k-EG-P~B4=Li}!921DUF4%^LVa%opL2X&DyUr%V6p4AvGKbm z(Hr9w;b=x!opmMaQDgKJPA2$gY$sj-Vw_|rY1ELGKnPFnQ~JR#kQ{}^Pj#A^g|SY zhz({NKh6LzRZ-62#qi!Ft4TLy*;m6uC4+zRYwN zC654_wD08ntB=mVd`3H!-p+)w-oPbD7WWg6*^b@U;fgKjfH&$j$||_rMjw6{fr(}P5f5J;g_N!N ziF5P?ytoc!y5cdy-N-zSHN;=Qze~Ge%JXaD>l7UX{n{9Pi`TD7EY3SjRG{jpU>M_{ z$^2;`23l4Mq9&Q0oyZ+vPD$E7E2q_VtFL&EZK;SqW=*}i3+p+Rh% z-hQXu(C%Fg!FrA}u*y#;)&ujS*bVB4{40)1Lj9^ly(eau>`KD(`QgfF>C@4RdJW!2 zL{m{xI=h#tW+*TA=xG|XtPWS#{K;nkjEInIgeB4|295aVtu6l?GUk)+hJWluTkoHb zVo%uX&q2yRw?W}4!-AJ^WzpDm6cI9)8bS&>M@L7gkS}}=)BKw$M7g4F%e%7q&-1cOqfB{?Zhn?(d7_{kU20jP$L6>)Wg(+-+Ujk$`2TW)Z6GQf6SYw+s z3CtW>ao*{Su_C|I%y3S_N}8#sgA)o9Fg(ocMG!iGs+zcBS-ww4&JRKMDR5VXp@e#=sAg9b} zX|5d*+c6vsHHJ3$DdMDgX)q6Uz=%3X+^glgGurXLVfL{7&W;bZVIbnBPF00ckj?^@ z7HF8rSBB){J8y&#T0yWc6YkS=n!tWWTD4c6Bjas~+6NCp9Ex2wo@yf|2ap^vvq^$< zG5#TPM|r3aL!(BxuY3rjg)qmj=bnROn(-t2+8t^br>D>wEV$kFNG61J;)kA>(Gszb z5y8|7)H|FB_(h~*iLU%)G8J@eyasP36*H4j8ufbwW)jr~G?NX77wJJ5Ebg)wfPrJ% zu{zO)aZoF5>+COpu18>Vbv0%9#opPlH0`(~uA}IgIQ6;@NpV8v7J@-tUhK?B#Myro zYGe@OQPYK7$%`_u^QA{>V7<5>=;9p*-2cU6hv?ra4Wm{iN>^3}tF?gvt9)?fAkubw zioN}%{-GNFr}C9UNK! zzzFjtyNe2k8163j4G))lhN}pX80=xTBr<}jjaecW7aZytxW1M$t9R)eoKO%@b-G-H z4r(;yYE}J*xC-OiM6gutIf44avf&T;=aX^=w)LNNcXwdD4AAF)FHK&;8h_ z-C){zc^28ayLc9el2qOaxQ<+Qh@|MjQo?*1ja~;42#EJOtOcDdqRTN(r6-Wv# z@eCqaE`qCE1;&XYT!pckEi#q}i{loKiPA6lB^TP@53tNC#emiJdc-pB zv8pbhE*D`e$Y0^-C@-`4(NTSG{OFsClc&sOfjOi9liHt!9z?sIUkNUZ3XC9V502## z2+?=m-oNnLNt8=nt(-|(wE~ni|8`Vs{b}nvzxU<&lh3YBp!QsVs2EUIuoE(J&cFE_ z0U-A>_%XRPw6z@T3Z?waVdt?R-N%1}=mVdw#WBfj5u`t~X5fSpo4^RDNa}D$cR!r^ z=YRkH!m&3a=rYv@#YOt=i(i;HMWGX5qpVCO(y{sAZA}THglH@d5nGcRWnk;rblQ0) zCfD2xzC-~&3_8vi<6x1bgKuc~{)S4Dc1{Ac5C|eH14tb75S~S1-uv;nQ_txgnkI0< zs#D{3h6zy^y2+KW;Iv@b!Go4iDf_CgYZ!5IZ*gT(TA7sZGrJ{Uxp(`0%SkFL5Zs|# zJYm(`x#uD3q-1aY=$Ii0k7bm0f|Mq>r4cEzY(fD%>lrmYXY_V z_VZjHIR?U9IPoiUa)-H%A?NHn9$DyiITkz+lMo#5aJI@OMHM?ua`Q8Y&uVwWgqMJn zyiS+Lh@s`+%AA^jJna#E?g(y-K2E(U-~t5~=X!-P1diqd#h}S9=yr$M%S(4+Vr_Vb zt1XDl&+08n7Je0t@V8_%SfA(;Vr$g7k_5r~xmRiYWBd^;i!E;&?1^4OaDTJLl_>BO zZ#l5^D0+dx0Z2!_s^NR)=Fp{RUT^8IJ{mOcXAqD`c1|e+HZG$W>7uNIPjh`!i2IZz$GiT5&O$Yf9OJ{nCP`G@l5!L!48^m~(F-qT%czI9|Yn5FChcW#^jQYVF<12H6lGjl(ew7Cd?% zY&-|>qkKc4Y0tcQ`8N`*ct$O5AI>nVduM^+Kx)HY8IMb)iv(UHIb{9*08dhtI$v=_ zl*;-hHknOf%^apQ|3w4FM##7nE+DUcj9@?}zhWCQBp15`OuzF4tLvs`(_S8DL0!&4 zN!b=tMfE0&ii3(0_(hr4aNbfL5CyEPCbs| zqOHLgGThSx(?zv}(pkN=UZm;KM)9@V;pf|+q5{{uwFmX-Vp52g6ZkpG}^W7~|YXdvaK(Bl|o`F&oFOBalLN(1az=Z{N6S!#2?N??S-qH-+zy za7)XLVhou9`+KsAjf=5g77C)F#O*Z>KR9KAWO&tZf^ zw1p)|sLmTByX*V?Yz0K{>~b?=dbp<_$pC#l#Y(L_*y|Rx;eo-CYA;;A-IeaaQmNl4 z>qaF5KnJW&^{|Ew*;}z(u1>=$I>O`td=I0rC86qkC7YpoL?Bn@f=PJNuSPal+G{fn z_hMlmtRg4?4rVpk3*+~}1F$=Yqqj8A<8E0BHh?~_o)};6gN|v5h!R6uU*{SOR(rbv zYc^P{_E+$ynFWW3hk>Hj2fQ81Iktu}wb9B}szUWLt}4z1GK?Yukp|+h45=mn;29t||AIm34x| zl%d*4br6f&*H;_SFqdr)P&Z_(cT{KWb7OQjR3Npk6BQ3^F7?5#b8sB_9?$RDd;X&% z=RbNQsm$)0ER0dX!+V(&F5T@RWP{aCi#uS#a(q>#_3dX-6?279O7NS;0?|UPHR>ao zrXdHRA{zqhXa_Yx$rO}O3-glFJ!9&g*K_D1?oXFt=U@;x*kLUQwhgBWy0=b3Kt96u zfF$9}E!tU_q7?jo45~9l96@+4Xj=hk=&P(jU~>4zQs{{Xd69%ER-gPKMfD z#HBd*`RB>52k=a?ig8YMFv*_jO#_4@LqJ*dS9gonzRAgFr6HS2a(OUSEb|5^hnE^q zsyI5Ew8$-2GBP9)&0*sfp7;y37>A*;aW%TVj*Yd0+fGgwE3yRy7gjU`_`fOcDy^lZ zWJ07xDtfy%H@G$)nu3-9I-@z);(tc}4#<`kT{s#dngnz`5KPj!6ZI@?ncJ-d8bQ(7 z)qD{TA%G>mZbPLajYm*}HuK1ZXV1=`d^`TG8g0Bez?08B!#otfEa!|ks59u9u+MDO zWk*WRNV1fiZ}PE{ald%Uy*{TSzp+V|A}B!Y+{v|ptlk(MqftZ2^gDN!6Rr}MM1nA- z{7yW!#L{qQP;oG>ptj`;XC5E;f=N1PR5%tGhwqeW3c>o3BxRt|?5f}nw!9VGuSh&T zcj`@?P+A&0FfF>vW3PDJs%vInF#AGyVHJsnetdrNjV`|V^ zya?5|+k$Hg>n0#FlxOZL{erA@dLxi#8ude2ValNCNH93LL7qw{@3aqq0Z5hi+SvXJ&0)MY`&EdFL!-kWf`H%j+Vc`1;0U8>(H$ z`-e=raYn(BR06;cVd~;aI-v%ZpAsM2WFTxyqr!dDO0>|Fc$HKn$Vo6v>H4Ajo>kak zs-0Un_PV$+=pp26GKNUkCu+wwUOfNadp0@dY@m#;?JW2}^4A_C*5E3)1JO) zr#)`7Kc!iOebKVXBw<{H(sm~nAlE@4qYU|9oVKuS8V0Nt7hZ&i~wh}~^-V=kk9NY3s{8o2vb?5a0UCp(yi&bcWiw!N{(rc>h=U(Ch-lDA(f37z}& zBTQNcEw24iq!S;wWD;585{L~g$@Ra~dS4mN4-8*^fIcE`v?XP6UetBV5dB3@4?Wko zNEumV5!h`xi7@k>_Xq!LoE%xSwINX?eoUHVk^g7s$OC^+`g zhLNj6JJWzx_hwef3#Yf~0e!lDu{Jow!ScXx&rm;rEV}!Khpd+Hl|{h(l!1LeSgQ<` z2g|ad6wBR}!QsJj36nwf2U#j$02=P^FPD1y`+E^icXYbb5=p#Mzr0HRbeQ0zp0C`6u^R_f{L?d=;Fs#UAQH7tu+z)EIu8YvCJ z3RZ=&NniH&4fgi*R?4*+3McoDnCVG4A?`*orIQF*7C28=9wLX{e=1n%h58~#>3K7d z%e{mWgQ%7$1rLS_LBzmuX2!j2)3BK_Zj`Xkv5SQdUL)#+9`k&_)-K$&b7BueOWXtW zt!(?S@u#idaS5%9;y?rIFUdaKljngI~=9hj)DXiPrb;Hmvw|4K(shQj6C@O zO0YE+hNW1go3jIgMO;y=NR32Y9Z22sHz^1#7+ymI6SW#Vj*WUD+k~cqIavYB;q5mg zPGmDeL_BksKWM*UCKZ;YPvMTM!{K(}Rc4%TKs zbeAW0hnHc2UFplH9}L^ULgM1op=tn`A5}0B1;>~!+ML7GEhsjQKpnda&T{IN?x77K zBP|ULbq^GWyZgF(daFa-J$8teWqkN)3_c6oSweLJUmKAHpLrcFp zIB2G8Vu@zDN!QIXp*;P;BJe>+;iJ-=7+7OvzMbnd1%Ii4gVM%9xdB5fpktX2nxW9A zevJvxx+st`#o`I_jCfkN;4C6y2^#3y0R9k9LKB6!KC(-^%5dXjvgZBjEL@drU5eKRu!UGtt15T!*z5*RQzk_4>! zlSLtTK8O9S907{5xHiAw+0_#$A~A;W!KOE{3b|k4>^(`*$X3jQ8mt^e42Z{^nqBwi zoyFCUnkm5^0yt+6KFh>%6+%}45b}UC{uc&-)8&uh`^9frsrXBjv;9v zgVtUf_5aqcGlv!lbQUNt#Ju>XSQ0A^IYQ7xR`BB>r0dm}^D$~Cqy-k!uoL@`<+>JXV8|snj*^?!B;9BvElQRd3Zv2EiOEd*;72;Qp&c6@lmX?x<#F`Z}fzK0g2?H=n+G@YAYip}vRRbmAE(i5hb@3OHm3_%Qa znpwV`%`G8jp}uhJEqN-evum*^lM_=j&R9aG^&OXxl`MoQ)|7b?=Pz(C!z~fcnRReA z^s#FBfzZB1myZ4z+{;5BQNjA?Yk&pRGOG-BWSJr#G)^iuQUXOTzWc=dfe)4Wt+elU z_5{W6Z`{Snb?HC1Gx{?{9RLyH=0ZR?Z4?JT2`q$+4IEu;&jU2G6i?cvLj=O!{j()Y z-+!pDx04$+Heq&6J9;gqM}fN>c}r0YfAjfa%{b1?%z7UYzu$7&V?sMb7S^>FARi8; z?70XA(WIus1^PoR=$EXYc4MwJcY^D?M*UA5lwr(PGfnjhgTet?`gN}QotCGKIso1f z*>4($`{yY~iKj!wCWK7g*?fsZ^rGQo*6yP&*;Ah83_5;4>2*hS`so45(#l?qu14}eYzUl|VicRc6-pW7{S z<_*c006g+HTzw7Qz9cCpYPAYRw7jyk*KsfK*rPhxFj%$Q6)M zrvs?J&l#Gvs9cO1HK!urAWl*c5fu)HRiAFawxho5Krgcj1xOp+JHD(<>(v zt4B!?cNn+9!-->HXjqcDNdVi<)Ex9Y)G@nq5-`>lSB1L|9!gNnXcTkxs^pPWG9^E1 z6?wG=IufnBEjw8K+SuE4c>>9Ov_+uDAIBb(J1m~G3&Ms;Uv7_xU5X3FK5=xX)Ue(RG&in19epIv~o78*Y6hJ|Q&YMyjS%lEZ8 zJv0B<2f$uL2R+@r!5-qr$*2>@5b-yw?QdR!7P8?+p@F`ku4hgi_+RYl4!WZ!^su8?;?#vTlB}gKp zQNW^JAY6!V#RN18X?qW3Q>5?;+NWR@+W)Q#XSU!i?KkRwpW}pLq74Sf@-MD?@y0x2f5Ay)-`v{RDIsiC; z*>e(3!dDPzJPSmv0#QtYdIo8`M{Pq(L@{5@1YiZ z%vDc}qn$9htF$_iyw`bWb=PgP6_iL21*vJh(<1W400Kk(L;vzQE2b_RQv}rOGD^kv zmU{;JyDPO)f1jcX%R_wwa7my*??8VE(T1G5%(zO+b6fTr!D=JTjUH3|N-7PHm`lH{-CmuUszQ$~y@cfEN;B2N*g7JpI=n(XS6o2z6Gi85zX127P z7#we)yx)^6Rwlh`h(E}$gt?U78*WE)%dBLQ@5+dV)4`+TLUfdILBO!@tGq!V6Ng3q=1h*LnC6J{D$9Lo{l~ia6}m&86A-EN?~rqk`fL zd}k{hj4iC>EfB&VCT$0>IknAy^I9javr;2T#)dn$-v)qr^6Cv!aU6iEZs6uoH;paN zL=%SqisHX{RB({-JumE5jC!y}Y*y@A`#W?=+ZA3)G8<-K8Q}-8gG%+`MtxKJnScUJ zeR0d>M*uuS8pmAsD%KYU?iizoo5#(u26nD{Hq8^+ z%pw7{`(hUK8g9d>yt4|BhpEm@hC{s#65MUOVF%cZS&|ArID@ET*&!i6%SaZoZ8Iv~ zjcvw=#Hw0t?BT{}iDo2VrUB}`{u$)7?8w7tX{*8f{GBx&1*6I74s^*^7})yYF6OQS zMw8L1(;b?N9}}}wbjFlnGgah6}^dnnu``_8ECSQucnI}7VE{g9|5IgE%j;6xJU@M5-2?$r>^K((15TEzRK5F9+piw z%}^cv3(|Nf7C_O~&bLG;P)Kuzs{N`_`-G1@xA-hFI$p9~kRP8tc_dTXGU3KV^nE-N zx9T&Q7Q72k0XLXEpJqCB9|nz_`Rw@%%@t=R#?r<*hWmPZx{E`-)nULU0THRwerM~? zA6=?-8?CZNlXyb8HjE%Q>>RSou5n!Tp1TRzZ}HT#$cD#e%$7XM_`-{a;BvRdNQ&tX z)UA*I9v8{^k3WPHL?7KIVHmNgLZiZn_PpW%XpVjT-3zb0$h3OcQ_k+opO#QEq>Lo# zl8NX=`f69+gSa>XhtQ*@aJ|m#Zj4?} z2Ox4=5LTc@;Og)itwcYGvDtno(WOjNnxj*QxtX9gEWUFfwjw{a6nBsdfb($Gz!``* zh3P8v@jxuLs3d^kE&Rnac1BNOt@9>c`#LF3C+S0hh5(?zbYSCsOyBu@4?64Z?=FrM z`+Ek4Mg~TTBel-hZiJ5Tbc-yyU}%zSM=?a25S)*8sL+Jrpf&0XZV?bpj4dDGXZ65X zOsP|@QCjN;xw04?JSxAD~v)By7y_%U|n>Y=Q=R|G^_Jq(43^V5dC>Nj~K#~1n zxpOW4SPm&(jfpx^VO~~huY8S`!NOp3DpJU7YEW<)XmAsLUQYBKwRm$8M!cI#cvnaX z3791qJFB2Tk9}eOS8!0ipA@aZudkinbr+0wz?11hIL1_Y;H=!J6d=ns-{AIjQ74^y#D?=dgr*utx4|>*!* zlwp)R%|3Y~d{0R)dxo$E2*eTl!r<0U?_#la+U1P4K#0D4R_a#(OlTeQf{X)DKlOl# zYeuQxG%klIa;+`$*R`y%kXE|BUPbG=@P^4 z7vL_!!TVEEFFz;r6Cv(394MX-2o(k(*U~_(sR4ez#0GG2TEO4TL&$HO1h4xQrT`HZ zMcXNJT9_a1YJhXoYLZgBVypkPsAiSG{X(VWPe8;@*JYwJf}D47h;aQLzltlqq?#o{8LS^wgk1OJIF6< zasJGKv!3^St{p^uUO|}gTeRf&58?R8cu-C+Q%VCF`GI^;> zT(Vqq^9;qE1H*+<9K;lCMb_e;Ej zZyYyFYFmhz;tmDbnkf$hL*EI$Ol-e^mTZHyYBIblaPHjfq@K!LY`)4oN3%OC>eSjs zG-vn;zrsvt-|}{jtiJ))F*tT zmc-pwBhz_+zfih77Cq+RBdiL$4!Q(EOtFk-L+h@^J%0xHe1Q0xgU69%!4wQwn{+ZL zd)exnatf<8@?N6)!TIh%0u|Yq)&W)r=G*u484wj7fYTBLiWn^F>R|+Ot1x-u%@fwT z#)HQtmqVv6CkQl3ehxC3W%x4`M#R)&#~^%36GA}B6ws-*#SZT$}C>qb8m&`h~?E@iON z=)l&@Bd7qQhr~#TbOza{;1S8N+W@=)014#SpjxJ!wQUh47z!3}p|W%{lB+U%W;;&wFpMY~2|6AT`gx%5se`)e|$-WgOV`fXH><}R>eg&Ie7X@SNPvnrmrZiS*M4XWuO{OF2-3*|T;$R`xfgTM4 zt5N@a{{2_ZzxQkseogdiqDja~6UVKCBeoPo$;0%-`b!z+q$3`pU^DXpx6Dt3@6(h` zPYA_3+j0?#PaFspVX{JZ4W|Yk!u-?_On|8&>#2EG`XNz@P@E5(UOae?A`5@c5y(rL zq|xQFeCrA=L-QM&oA+N}!8v;2#Wydx{qJOGi4M{+s31FuoUaSxpNpQf%_65Re7HoC zLR=)4w&k_79C2O%a;Bl4J^tB;}MOL;7hU!Cf`qF(6VhIJp&rdpqw*u8^+M6cc<50PHqDS&5a^c z{^#47<~aSrL&yx%ga9$|En1D?fM|L>*lz>1)F~I5gdn*P;t)`9^s9_2IuT8V*wo@G z0dpz4Yp^<7g-A2Pb%JFUcTIO0XR{79hCQ$l~n=)8XQ+ zn=##jXtPlVvdjuaY0K_)C}W=5Xw&1Dm7pDPQ3-6f`2jx7(lV5qWnZ-g(oaxZkd6r* zP#-Vs*}w3_Zc3|C|W31QwGTB8$$?PxJi!!NVw#GAqL(CNX_eA!$C(0axsDF{3!y zi~B!YIR3bpuLleUW!z5rb&%P)=Vpe$KoL=D!tLlFPNX}J@q{o>qlaD(wl(VM0IJb0 z{D+AcGyH>*o5I(`Jwqc;Y&Muug(8bVH#N@-*N6(TCGWBDB84X_k_;J_x*B}x6+;}g zn+`8Qz99bZ!B2RfTP&yRMc~?!G7r7Y0DU;b(q*+wEsqZ&Ycv5nqL~SLN>Z)npa-O@UQK`60`s!9nJ>1+M}bZ6&*2Q= zAxkt=r~V6UU)gCv?2t`B(HC zlwm64J39;-9>7r*ibI1p5Ws8;vxJb+73shSdj@|mXP<2b=Iv{A_I4+aDEs8WY#OcO z)LI#LzuTbnymSbhom1sopyAeLK(66XEgnZS!gI;Z7!#81%(+CX0xCm7NkSW>Q5}MG zURl`ykJuRxlY1w8VS52V3z@1@C@&Z-Fs5hAUlSi?4TvSA5ho zlh81;mnF^O`jDrHBt^CE^jT06rVoq$@q?jaV&<4OQ4<(cm;zF(S=9fOIKY^Lh}tGoTN&OJbDNnF~Ms!MJkv-jD)b4M3K_#u@v%VC6a0g z^#pEW_dw!lPjH-2huJj&EIl*+;J)@N=5Hiu!nNgtHd?{Bk#tR~u1cT+pQ z#p-DwC}m?~8J)&uBUgyph94w$k~SIerL+ZWX@YaUoniea<>H@7ExU7f@SB5@+5V|i$NMc4(#3T5aViY@9{N(I=*BAqzs z#6u(0J*LGbz-^{G`LBE%s6m03QAGvtZ6}W6Ot;FegAQ*~)F>D{zyO zfM`PF58BdtybSn%!VPgnI}F!~m6I+!2s29_TO(g{u=23!8Vpp23X=_*YdK6ug{;BxCi7cmkqtrjb+Q0xcW$6NtxWElh& zxgN9QZq)ySCox(pq#(-~FrG0NjcGXJF{)%K%97F}r$?p{@bd#Y%86x+V?C`J6G<3N z1)u!W^QWHXe%KJ`3vUphwoPs%S=a&4N08OR%OItfT4tO0N*{U>k=oJF#>b5K6YnDc zRE5=W>Xi{PS#HnvKz3M}0CfOS&SrRQ-uQ)2PAoj}$@!07!RWBcHa^%A6Q^&d99*lU zDMoK3JtbDmtODK|;eU3mh5^6^pYk-VDJ?hPX!!;FQhe>Yv}r;H?e+Py!2cQVlpgfJxSap;F36!|G&MqdVe^>_ zO*BTYBpoV$*p6QI<@_-WcSD|$>s?Ztxju!;5gBf>j!q@Gbu5lT)x6HWySNuAKJPmd z!V=j-{{(Tw(_Qu_6bt_gOcB^kk#wRBI@0*L&tI6|Oa3}<%`$D{lzV-FsT&WrL}=2N z6W8Ha0UpYurh;6L?WG?mrL@fL8JDX5Q(l+iPcXWxJQu>;j=!n184}OJI<@Stx%bF8 z=zS9cvH9HG1~OipoW6g8S(-3|WT!(vePs-n!|&p{%CC(X!hYRMxrmVT>;BfrJuZIT zH&bn9px;D%lKGcoO=1Q@@ySu-ye^7|^*F#c8 z_I}~P$uS(Rnc1mvf#kqS`e#heIQBwGwG%uetFBid8uFJP;DLaDt$!M<)o* zgWsA9^+(Qqw%2aWYjM>gG%9oljR8CgK6ZD@A9xnTA>-~+&EmjmTr|TiG4=u-CXM>- zG{bRX%vcmh_rsm>SYFDg5msOk?s3>iS0#b3)#1^2Fkm-Jo9Nlnt^pia&108Mb%MSV z4Ik6U90i&i2TVm*Ldg%^)nF^*cN2qJQ;P?917t^fVBcef@?7IL#>RbrwYh3~lbcoD zyn7313;t)B!B?LNLzTvXaZ#Fh= zrFeLCTj;TSSb?3!xs&|`T5sz#M#f=mT0T2EFuc(wmvns%n_Nd<3eOH?YthUlH+)li z1(r!A;ObgxkR%!%+W`!xm0a%#vJ@i46w#xxJ_c=)cRAi>MqXvOZ)l`4h_vkPa&@RG zSVQS*7E$4B_~v*&FT4ui)-#;-V|5d4!(9;qdk_q!@LUFD_#yvxbF`KkiLr%@>ay+- zl3Jp(>`(QAIs@}b^$`xs&=<{}V{aj37^ zHN@r`^&VW5YKJE;+?BDNWCNZui6?W>1el=QfPUQ65PS?mom-;OJ8cCrt+FVswPaFg(Jt%ggJ_4E54TedGB3RU{i1$LSpDNr4ao zY^j5QW4uB_M|Y~~0q54@ho>0tc{`-4aBP@pgaR(kd~IiFF+p4vtlJiYAZ}v31+Is} z_KC@fZ2*a3R0b}#ZaICLdO;J;p3K~`@We9<`=45P@@Z&|Flzu?Qwiu;d;NiG151_W z!Ainx?@o8*BMa4yZZ0li6%}KErdg^KYp8e9t&HDlu@BkLgZNw;>Fe!djhW^3%kC*o zxkP;hjXL`dW@PEFY$Ln`4q8Nt5HoJnFWe+)&mpGBA9{)gLz8LM-$k3g9ts*wXMQc(;qt`I^`7!?(pq0YImYB(~Ov5(J!azjQ3g_x7J1*09xPodj()wOJ zU>LY1J-+LaJSeYo^t0G1&MEc;@h(1s?wH>hABmem>xzvJgcyHim79m5P5b++1Si#W zEYO5dbtpGyKzi^pE`QboH6rTfzU2>;M{^l9#eqZsH}GVCUultPGafp3`eiD!M~-|^ zGha_nH^7{}%(-@wNi7oJ^d`Md5;m8~<1G`+atTbwU&>C0e6DFa`Ing6=r8y#JUT!3 zCd!yMt!1?MM@ophNVCE06e3q=k~M3RtrHXQJ~fp#06S@YkA{7hZXeqlTQkEHCPP^& zJrE$-M%^Lx+8+qocUl&R@(}NN$PhpKipUCBxgh<*pCe`OYl)3_Dx zU|ig7W8-&CLXkKGv|=2Dm~(-WR(#5XMa4I%wis3*tS&jVC|BSV7H2p+TCbJV8Y=jX;#Z$9$e zlrp&yws4L5&5{q4EUP}T3+MO!4%NW@nlV?8??SD2urky;I9Tql0b9LS@TZqgRn6^0 z)dj|wt@g=mkmmHLOfX3YYGo&wjeay43d)*4YBwId*y(dOWS;AsQu9(`pep%W`kZ|Y zWK!z~?t2N?CL=w4Ffj<$qt;)pl**_-IXv7A=o6tnUAD0ntT4BY)w-%X?O&+SEl7z! z*cfv~XfGCayV30=ZCWQq*9J$5LxaO31A{dXcfUiS6sm}0aI&^I*+%_7iP?dw<+c$V zF>=mVlrJl6**&%ad5ewufZ~`Dt;6{D;i~m|BL-;#ByjqByhMmK*tUhs*@9cN!5+2n zT8XTfmoaDs{V_9)Z?KVIB7o|x_r;i1nA_*nb_ieN+kPZhq+KhHT5Hkvy=w}0Q~{U< zVTZlL_q=u*tFX%Se!|a4;b^IkM^_%ov8rJ^2&F+V_Ws&Xcdb~d4pH%+t$#yeuv{CB zgN^0C_$w6psQ-gtZ25aI{4@@sQf0RGd(+duIQGFG{n0Ou<6npBf2{VzG^TlbScCUL z!MPHO?w!SP6fvCYv}+vdOy;W^td5XkGvAoi8~0o0E5?dVfcssY`3`cRzPvW`Wq~3p zI*Qz!Rj`lK4ypv#e5Fh!cS?L%K+R#tLx&dMGC)Pb>$!vX? ooJ8nDqiT!7hA!7qdRtfer%ZF<0c){3TVIx2>+y-W+OwVi3kiX~2mk;8 literal 699370 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

  • XTctDTnwCXdhLZ#>SDA@NQ(ZwIq$fOR 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

    a6R6&AF!Qf(=i!wBGRq(be09 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 t.CInt: pass - -def run() -> CInt: pass diff --git a/Test/SysLibTest/temp/a335eb99f2e34479.stub.ll.dep b/Test/SysLibTest/temp/a335eb99f2e34479.stub.ll.dep index 089e358..c610637 100644 --- a/Test/SysLibTest/temp/a335eb99f2e34479.stub.ll.dep +++ b/Test/SysLibTest/temp/a335eb99f2e34479.stub.ll.dep @@ -1 +1 @@ -067c78e9f121dce3|06f53cc594b4ac6c|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6b51804a0ba8ff0|f9d023d1df2bc9c5|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|067c78e9f121dce3|06f53cc594b4ac6c|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6b51804a0ba8ff0|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/a68b70f233541a7f.pyi b/Test/SysLibTest/temp/a68b70f233541a7f.pyi deleted file mode 100644 index 3cb3a02..0000000 --- a/Test/SysLibTest/temp/a68b70f233541a7f.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -Auto-generated Python stub file from os._win32.py -Module: os._win32 -""" - - -import t, c -from stdint import * -import w32.win32base -import w32.win32file -import memhub -import stdlib - -MAX_PATH_LEN: t.CDefine = 260 -INVALID_FILE_ATTRIBUTES: t.CDefine = 0xFFFFFFFF -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def _get_attrs(path: str) -> ULONG: pass - -def exists(path: str) -> bool: pass - -def isdir(path: str) -> bool: pass - -def isfile(path: str) -> bool: pass - -def getsize(path: str) -> t.CInt64T: pass - -def getcwd() -> str: pass - -def chdir(path: str) -> int: pass - -def mkdir(path: str) -> int: pass - -def remove(path: str) -> int: pass - -def rmdir(path: str) -> int: pass - -def rename(old_path: str, new_path: str) -> int: pass - -def chmod(path: str, mode: int) -> int: pass - -def listdir(path: str, out_names: str, max_count: ULONG) -> ULONG: pass - -def system(cmd: str) -> int: pass diff --git a/Test/SysLibTest/temp/a68b70f233541a7f.stub.ll.dep b/Test/SysLibTest/temp/a68b70f233541a7f.stub.ll.dep index 3ea8de2..5a46036 100644 --- a/Test/SysLibTest/temp/a68b70f233541a7f.stub.ll.dep +++ b/Test/SysLibTest/temp/a68b70f233541a7f.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|7e529fe7a078cfef|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb|f6b51804a0ba8ff0 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f6b51804a0ba8ff0|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/abbcbd92436cc16a.pyi b/Test/SysLibTest/temp/abbcbd92436cc16a.pyi deleted file mode 100644 index 9a57653..0000000 --- a/Test/SysLibTest/temp/abbcbd92436cc16a.pyi +++ /dev/null @@ -1,41 +0,0 @@ -""" -Auto-generated Python stub file from shutil.py -Module: shutil -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import string -import w32.win32base -import w32.win32file -import posix - -COPY_BUF_SIZE: t.CDefine = 65536 -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def copyfile(src: str, dst: str) -> int: pass - -def _copyfile_win32(src: str, dst: str) -> int: pass - -def _copyfile_posix(src: str, dst: str) -> int: pass - -def copy(src: str, dst: str) -> int: pass - -def _copy_win32(src: str, dst: str) -> int: pass - -def _copy_posix(src: str, dst: str) -> int: pass - -def rmtree(path: str) -> int: pass - -def _rmtree_win32(path: str) -> int: pass - -def _rmtree_posix(path: str) -> int: pass - -def move(src: str, dst: str) -> int: pass - -def _move_win32(src: str, dst: str) -> int: pass - -def _move_posix(src: str, dst: str) -> int: pass diff --git a/Test/SysLibTest/temp/abbcbd92436cc16a.stub.ll.dep b/Test/SysLibTest/temp/abbcbd92436cc16a.stub.ll.dep deleted file mode 100644 index 85e0610..0000000 --- a/Test/SysLibTest/temp/abbcbd92436cc16a.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6503c97dde0c79c4|6f62fe05c5ea1ceb|7e529fe7a078cfef|93c1d18e35d188d6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb|f6b51804a0ba8ff0 \ No newline at end of file diff --git a/Test/SysLibTest/temp/b5a965302cded36b.pyi b/Test/SysLibTest/temp/b5a965302cded36b.pyi deleted file mode 100644 index bfdb955..0000000 --- a/Test/SysLibTest/temp/b5a965302cded36b.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -Auto-generated Python stub file from sys.py -Module: sys -""" - - -import t, c -from stdint import * -import platmacro -import memhub -import string -import stdio -import w32.win32base -import w32.win32process -import posix - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def fgets(buf: t.CChar | t.CPtr, size: t.CInt, stream: t.CVoid | t.CPtr) -> t.CChar | t.CPtr | t.CExtern | t.CExport: pass - -def fflush(stream: t.CVoid | t.CPtr) -> t.CInt | t.CExtern | t.CExport: pass - -def exit(status: INT) -> VOID | t.CExtern | t.CExport: pass - - -maxsize: t.CDefine = 9223372036854775807 - -def platform() -> str: pass - -def get_pid() -> int: pass - - -_argc: t.CExtern | INT -_argv: t.CExtern | str | t.CPtr - -def _init_argv() -> t.CInt: pass - -def _init_argv_win32() -> t.CInt: pass - -def _init_argv_posix() -> t.CInt: pass - -def argc() -> int: pass - -def argv(index: int) -> str: pass diff --git a/Test/SysLibTest/temp/b5a965302cded36b.stub.ll.dep b/Test/SysLibTest/temp/b5a965302cded36b.stub.ll.dep deleted file mode 100644 index 5f3337c..0000000 --- a/Test/SysLibTest/temp/b5a965302cded36b.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -067c78e9f121dce3|271ea3decb810db2|6503c97dde0c79c4|6f62fe05c5ea1ceb|7e529fe7a078cfef|93c1d18e35d188d6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/ba12ed409d78139e.pyi b/Test/SysLibTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/SysLibTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/SysLibTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/SysLibTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SysLibTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/SysLibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/c3b259b4059f8668.pyi b/Test/SysLibTest/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/SysLibTest/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/SysLibTest/temp/c3b259b4059f8668.stub.ll.dep b/Test/SysLibTest/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/SysLibTest/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/c70684ccfe48a5a9.pyi b/Test/SysLibTest/temp/c70684ccfe48a5a9.pyi deleted file mode 100644 index f6f33f4..0000000 --- a/Test/SysLibTest/temp/c70684ccfe48a5a9.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import memhub -import stdlib -import sys -import os -import os._win32 -import os._posix -import os.path -import shutil -import subprocess -import syslibtest_impl - -ARENA_SIZE: t.CDefine = 1048576 - -def main() -> CInt | CExport: pass diff --git a/Test/SysLibTest/temp/c9f4be41ca1cc2b4.pyi b/Test/SysLibTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/SysLibTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SysLibTest/temp/d089e25a15c6f6e0.pyi b/Test/SysLibTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/SysLibTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SysLibTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/SysLibTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/SysLibTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/d152115b49e50218.pyi b/Test/SysLibTest/temp/d152115b49e50218.pyi deleted file mode 100644 index 1e7a152..0000000 --- a/Test/SysLibTest/temp/d152115b49e50218.pyi +++ /dev/null @@ -1,42 +0,0 @@ -""" -Auto-generated Python stub file from os._posix.py -Module: os._posix -""" - - -import t, c -from stdint import * -import posix -import memhub -import stdlib - -MAX_PATH_LEN: t.CDefine = 4096 -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -def _stat(path: str) -> posix.Stat | t.CPtr: pass - -def exists(path: str) -> bool: pass - -def isdir(path: str) -> bool: pass - -def isfile(path: str) -> bool: pass - -def getsize(path: str) -> t.CInt64T: pass - -def getcwd_impl() -> str: pass - -def chdir_impl(path: str) -> int: pass - -def mkdir_impl(path: str) -> int: pass - -def remove(path: str) -> int: pass - -def rmdir_impl(path: str) -> int: pass - -def rename_impl(old_path: str, new_path: str) -> int: pass - -def chmod_impl(path: str, mode: int) -> int: pass - -def listdir(path: str, out_names: str, max_count: ULONG) -> ULONG: pass - -def system_impl(cmd: str) -> int: pass diff --git a/Test/SysLibTest/temp/d152115b49e50218.stub.ll.dep b/Test/SysLibTest/temp/d152115b49e50218.stub.ll.dep index e928efe..af1f793 100644 --- a/Test/SysLibTest/temp/d152115b49e50218.stub.ll.dep +++ b/Test/SysLibTest/temp/d152115b49e50218.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6503c97dde0c79c4|6f62fe05c5ea1ceb|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|28de517e3820658a|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/f5522571bcce7bcb.pyi b/Test/SysLibTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/SysLibTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/SysLibTest/temp/f6b51804a0ba8ff0.pyi b/Test/SysLibTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/SysLibTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/SysLibTest/temp/f6b51804a0ba8ff0.stub.ll.dep b/Test/SysLibTest/temp/f6b51804a0ba8ff0.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/SysLibTest/temp/f6b51804a0ba8ff0.stub.ll.dep +++ b/Test/SysLibTest/temp/f6b51804a0ba8ff0.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/SysLibTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/SysLibTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/SysLibTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/SysLibTest/temp/f9d023d1df2bc9c5.vpi b/Test/SysLibTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/SysLibTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/SysLibTest/temp/ffaf70367668b227.stub.ll.dep b/Test/SysLibTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/SysLibTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/SysLibTest/temp/ffaf70367668b227.vpi b/Test/SysLibTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/SysLibTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TestFBProject/output/0035c95a18d4f8e8.deps.json b/Test/TestFBProject/output/0035c95a18d4f8e8.deps.json deleted file mode 100644 index 31057ac..0000000 --- a/Test/TestFBProject/output/0035c95a18d4f8e8.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "main": "4fb8940ff5ab1022", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestFBProject/output/067c78e9f121dce3.deps.json b/Test/TestFBProject/output/067c78e9f121dce3.deps.json index 31057ac..22ece25 100644 --- a/Test/TestFBProject/output/067c78e9f121dce3.deps.json +++ b/Test/TestFBProject/output/067c78e9f121dce3.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "main": "4fb8940ff5ab1022", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "main": "4fb8940ff5ab1022", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestFBProject/output/06f53cc594b4ac6c.deps.json b/Test/TestFBProject/output/06f53cc594b4ac6c.deps.json index 31057ac..22ece25 100644 --- a/Test/TestFBProject/output/06f53cc594b4ac6c.deps.json +++ b/Test/TestFBProject/output/06f53cc594b4ac6c.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "main": "4fb8940ff5ab1022", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "main": "4fb8940ff5ab1022", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestFBProject/output/4fb8940ff5ab1022.deps.json b/Test/TestFBProject/output/4fb8940ff5ab1022.deps.json index 2a27f59..f9587e9 100644 --- a/Test/TestFBProject/output/4fb8940ff5ab1022.deps.json +++ b/Test/TestFBProject/output/4fb8940ff5ab1022.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestFBProject/output/6446627d4f07a1b5.deps.json b/Test/TestFBProject/output/6446627d4f07a1b5.deps.json index 31057ac..22ece25 100644 --- a/Test/TestFBProject/output/6446627d4f07a1b5.deps.json +++ b/Test/TestFBProject/output/6446627d4f07a1b5.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "main": "4fb8940ff5ab1022", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "main": "4fb8940ff5ab1022", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestFBProject/output/72e2d5ccb7cedcf1.deps.json b/Test/TestFBProject/output/72e2d5ccb7cedcf1.deps.json index 31057ac..22ece25 100644 --- a/Test/TestFBProject/output/72e2d5ccb7cedcf1.deps.json +++ b/Test/TestFBProject/output/72e2d5ccb7cedcf1.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "main": "4fb8940ff5ab1022", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "main": "4fb8940ff5ab1022", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestFBProject/output/_shared_sym_includes.pickle b/Test/TestFBProject/output/_shared_sym_includes.pickle index 9aff32cca0e450ac600d9811e5f7d0ce64c4f3af..3ca3af10d6c6f0a212600448d3a15ae0c56498ae 100644 GIT binary patch literal 601704 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χy7 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

    T-_BN%qx8MM=(Z2oB^y{xl-ad>hSN6nj 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Μ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 diff --git a/Test/TestFBProject/output/f6b51804a0ba8ff0.deps.json b/Test/TestFBProject/output/f6b51804a0ba8ff0.deps.json index 31057ac..22ece25 100644 --- a/Test/TestFBProject/output/f6b51804a0ba8ff0.deps.json +++ b/Test/TestFBProject/output/f6b51804a0ba8ff0.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "main": "4fb8940ff5ab1022", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "main": "4fb8940ff5ab1022", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestFBProject/temp/0035c95a18d4f8e8.pyi b/Test/TestFBProject/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/TestFBProject/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/TestFBProject/temp/067c78e9f121dce3.pyi b/Test/TestFBProject/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/TestFBProject/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/TestFBProject/temp/06f53cc594b4ac6c.pyi b/Test/TestFBProject/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/TestFBProject/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestFBProject/temp/14d33679f7fadf1f.pyi b/Test/TestFBProject/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/TestFBProject/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/TestFBProject/temp/14d33679f7fadf1f.stub.ll.dep b/Test/TestFBProject/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/TestFBProject/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestFBProject/temp/4fb8940ff5ab1022.pyi b/Test/TestFBProject/temp/4fb8940ff5ab1022.pyi deleted file mode 100644 index 1f24963..0000000 --- a/Test/TestFBProject/temp/4fb8940ff5ab1022.pyi +++ /dev/null @@ -1,34 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -import testcheck - -def add_inline(a: t.CInt, b: t.CInt) -> t.CDefine: - return a + b - -def mul_inline(a: t.CInt, b: t.CInt) -> t.CDefine: - return a * b - - -class AppError(Exception): - pass -class DiskError(AppError): - pass -class NetworkError(AppError): - pass -class TimeoutError(NetworkError): - pass - -def raise_disk() -> t.CInt: pass - -def raise_network() -> t.CInt: pass - -def raise_timeout() -> t.CInt: pass - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/TestFBProject/temp/6446627d4f07a1b5.pyi b/Test/TestFBProject/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/TestFBProject/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/TestFBProject/temp/6f62fe05c5ea1ceb.pyi b/Test/TestFBProject/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/TestFBProject/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/TestFBProject/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/TestFBProject/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestFBProject/temp/72e2d5ccb7cedcf1.pyi b/Test/TestFBProject/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/TestFBProject/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/TestFBProject/temp/7e529fe7a078cfef.pyi b/Test/TestFBProject/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/TestFBProject/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/TestFBProject/temp/7e529fe7a078cfef.stub.ll.dep b/Test/TestFBProject/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestFBProject/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestFBProject/temp/_phase1_manifest.json b/Test/TestFBProject/temp/_phase1_manifest.json index 88f8653..700fdb8 100644 --- a/Test/TestFBProject/temp/_phase1_manifest.json +++ b/Test/TestFBProject/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestFBProject\\App\\main.py": {"sha1": "4fb8940ff5ab1022", "mtime": 1782110087.2169445, "size": 5059}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestFBProject\\App\\main.vp": {"sha1": "4fb8940ff5ab1022", "mtime": 1782110087.2169445, "size": 5059}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/TestFBProject/temp/_sha1_map.txt b/Test/TestFBProject/temp/_sha1_map.txt index a0a3fae..7cc533a 100644 --- a/Test/TestFBProject/temp/_sha1_map.txt +++ b/Test/TestFBProject/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -4fb8940ff5ab1022:main.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +4fb8940ff5ab1022:main.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.pyi b/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/TestFBProject/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/TestFBProject/temp/f5522571bcce7bcb.pyi b/Test/TestFBProject/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/TestFBProject/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/TestFBProject/temp/f6b51804a0ba8ff0.pyi b/Test/TestFBProject/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/TestFBProject/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/TestProject/output/49cae05490a513cb.deps.json b/Test/TestProject/output/49cae05490a513cb.deps.json index 255c10f..acdc08a 100644 --- a/Test/TestProject/output/49cae05490a513cb.deps.json +++ b/Test/TestProject/output/49cae05490a513cb.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "config": "cfc83b830141b00e", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject/output/754640ce30cfebcc.deps.json b/Test/TestProject/output/754640ce30cfebcc.deps.json deleted file mode 100644 index af92db8..0000000 --- a/Test/TestProject/output/754640ce30cfebcc.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/75583f20a922ab2e.deps.json b/Test/TestProject/output/75583f20a922ab2e.deps.json index d564585..dc354b7 100644 --- a/Test/TestProject/output/75583f20a922ab2e.deps.json +++ b/Test/TestProject/output/75583f20a922ab2e.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "config": "cfc83b830141b00e", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject/output/8e0d8fdba991b3b4.deps.json b/Test/TestProject/output/8e0d8fdba991b3b4.deps.json index 4064546..8f09b8f 100644 --- a/Test/TestProject/output/8e0d8fdba991b3b4.deps.json +++ b/Test/TestProject/output/8e0d8fdba991b3b4.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject/output/9474791561654346.deps.json b/Test/TestProject/output/9474791561654346.deps.json deleted file mode 100644 index af92db8..0000000 --- a/Test/TestProject/output/9474791561654346.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "memhub": "754640ce30cfebcc", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "9474791561654346", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file diff --git a/Test/TestProject/output/_shared_sym_includes.pickle b/Test/TestProject/output/_shared_sym_includes.pickle deleted file mode 100644 index ebb8f328445d3cc095ce3dc82ad19c20b356f42e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 560308 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

    i= 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 t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/TestProject2/temp/067c78e9f121dce3.pyi b/Test/TestProject2/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/TestProject2/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/TestProject2/temp/06f53cc594b4ac6c.pyi b/Test/TestProject2/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/TestProject2/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestProject2/temp/0df65b8ed15664b0.pyi b/Test/TestProject2/temp/0df65b8ed15664b0.pyi deleted file mode 100644 index e33dc69..0000000 --- a/Test/TestProject2/temp/0df65b8ed15664b0.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from hashlib.__sha1.py -Module: hashlib.__sha1 -""" - - -import string -import t, c - -SHA1_BLOCK_LEN: t.CDefine = 64 -SHA1_DIGEST_LEN: t.CDefine = 20 - -def sha1_rotl(x: t.CUInt32T, n: t.CInt) -> t.CUInt32T: pass - -def sha1_f1(b: t.CUInt32T, c: t.CUInt32T, d: t.CUInt32T) -> t.CUInt32T: pass - -def sha1_f2(b: t.CUInt32T, c: t.CUInt32T, d: t.CUInt32T) -> t.CUInt32T: pass - -def sha1_f3(b: t.CUInt32T, c: t.CUInt32T, d: t.CUInt32T) -> t.CUInt32T: pass - - -@t.Object -class sha1: - state: t.CArray[t.CUInt32T, 5] - count: t.CUInt64T - buf: t.CArray[t.CUInt8T, SHA1_BLOCK_LEN] - def __init__(self: sha1) -> t.CInt: pass - def transform(self: sha1, block: t.CUInt8T | t.CPtr) -> t.CInt: pass - def update(self: sha1, s: str) -> t.CInt: pass - def final(self: sha1, out: t.CArray[t.CUInt8T, SHA1_DIGEST_LEN]) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/0df65b8ed15664b0.stub.ll.dep b/Test/TestProject2/temp/0df65b8ed15664b0.stub.ll.dep index 1089c55..6ac7322 100644 --- a/Test/TestProject2/temp/0df65b8ed15664b0.stub.ll.dep +++ b/Test/TestProject2/temp/0df65b8ed15664b0.stub.ll.dep @@ -1 +1 @@ -ba12ed409d78139e|f5522571bcce7bcb \ No newline at end of file +285b6aa29a34754d|928c0ff6d8c69ec9|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/14d33679f7fadf1f.pyi b/Test/TestProject2/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/TestProject2/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/TestProject2/temp/14d33679f7fadf1f.stub.ll.dep b/Test/TestProject2/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/TestProject2/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/19f8024d10c828e8.pyi b/Test/TestProject2/temp/19f8024d10c828e8.pyi deleted file mode 100644 index a25a2e4..0000000 --- a/Test/TestProject2/temp/19f8024d10c828e8.pyi +++ /dev/null @@ -1,35 +0,0 @@ -""" -Auto-generated Python stub file from hashlib.__md5.py -Module: hashlib.__md5 -""" - - -import string -import t, c - -MD5_BLOCK_LEN: t.CDefine = 64 # 分组块大小 -MD5_DIGEST_LEN: t.CDefine = 16 # 摘要输出长度 - -def md5_F(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass - -def md5_G(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass - -def md5_H(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass - -def md5_I(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass - -def md5_rotl(x: t.CUInt32T, n: t.CInt) -> t.CUInt32T: pass - - -md5_T: t.CExtern | t.CArray[t.CUInt32T, 64] -md5_S: t.CExtern | t.CArray[t.CInt, 64] - -@t.Object -class md5: - state: t.CArray[t.CUInt32T, 4] - count: t.CUInt64T - buf: t.CArray[t.CUInt8T, MD5_BLOCK_LEN] - def __init__(self: md5) -> t.CInt: pass - def transform(self: md5, block: t.CUInt8T | t.CPtr) -> t.CInt: pass - def update(self: md5, s: str) -> t.CInt: pass - def final(self: md5, out: t.CArray[t.CUInt8T, MD5_DIGEST_LEN]) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/19f8024d10c828e8.stub.ll.dep b/Test/TestProject2/temp/19f8024d10c828e8.stub.ll.dep index 1089c55..6ac7322 100644 --- a/Test/TestProject2/temp/19f8024d10c828e8.stub.ll.dep +++ b/Test/TestProject2/temp/19f8024d10c828e8.stub.ll.dep @@ -1 +1 @@ -ba12ed409d78139e|f5522571bcce7bcb \ No newline at end of file +285b6aa29a34754d|928c0ff6d8c69ec9|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/1c46d554b3a3f9f3.pyi b/Test/TestProject2/temp/1c46d554b3a3f9f3.pyi deleted file mode 100644 index 46fe651..0000000 --- a/Test/TestProject2/temp/1c46d554b3a3f9f3.pyi +++ /dev/null @@ -1,125 +0,0 @@ -""" -Auto-generated Python stub file from zlib.pyzlib.py -Module: zlib.pyzlib -""" - - -from stdint import * -import zlib.zdeflate as zdeflate -import zlib.zinflate as zinflate -import zlib.zchecksum as zchecksum -import zlib.zdef as zdef -import zlib.zhuff as zhuff -import stdlib -import string -import memhub -import t, c - -Z_NO_COMPRESSION: t.CDefine = 0 -Z_BEST_SPEED: t.CDefine = 1 -Z_BEST_COMPRESSION: t.CDefine = 9 -Z_DEFAULT_COMPRESSION: t.CDefine = (-1) -DEFLATED: t.CDefine = 8 -Z_NO_FLUSH: t.CDefine = 0 -Z_PARTIAL_FLUSH: t.CDefine = 1 -Z_SYNC_FLUSH: t.CDefine = 2 -Z_FULL_FLUSH: t.CDefine = 3 -Z_FINISH: t.CDefine = 4 -Z_BLOCK: t.CDefine = 5 -Z_TREES: t.CDefine = 6 -Z_DEFAULT_STRATEGY: t.CDefine = 0 -Z_FILTERED: t.CDefine = 1 -Z_HUFFMAN_ONLY: t.CDefine = 2 -Z_RLE: t.CDefine = 3 -Z_FIXED: t.CDefine = 4 -Z_OK: t.CDefine = 0 -Z_STREAM_END: t.CDefine = 1 -Z_NEED_DICT: t.CDefine = 2 -Z_ERRNO: t.CDefine = (-1) -Z_STREAM_ERROR: t.CDefine = (-2) -Z_DATA_ERROR: t.CDefine = (-3) -Z_MEM_ERROR: t.CDefine = (-4) -Z_BUF_ERROR: t.CDefine = (-5) -Z_VERSION_ERROR: t.CDefine = (-6) -MAX_WBITS: t.CDefine = 15 -DEF_BUF_SIZE: t.CDefine = 16384 -DEF_MEM_LEVEL: t.CDefine = 8 -ZLIB_VERSION: t.CDefine = "1.3.2" -pyzlib_error_msg: t.CExtern | t.CArray[t.CChar, 512] -pyzlib_error_code_val: t.CExtern | t.CInt - -@t.Object -class Compress: - pool: memhub.MemManager | t.CPtr - stream: VOIDPTR - is_initialized: t.CInt - is_finished: t.CInt - level: t.CInt - method: t.CInt - wbits: t.CInt - memLevel: t.CInt - strategy: t.CInt - zdict: BYTEPTR - zdict_len: t.CSizeT - last_pos: t.CSizeT - input_buf: BYTEPTR - input_buf_len: t.CSizeT - input_buf_cap: t.CSizeT - header_written: t.CInt - def compress(self: Compress, data: BYTEPTR, data_len: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def flush(self: Compress, mode: t.CInt, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def copy(self: Compress) -> Compress | t.CPtr: pass - def delete(self: Compress) -> t.CInt: pass - def __del__(self: Compress) -> t.CInt: pass -@t.Object -class Decompress: - pool: memhub.MemManager | t.CPtr - stream: VOIDPTR - is_initialized: t.CInt - eof: t.CInt - wbits: t.CInt - zdict: BYTEPTR - zdict_len: t.CSizeT - _unused_data: BYTEPTR - _unused_data_len: t.CSizeT - _unused_data_cap: t.CSizeT - _unconsumed_tail: BYTEPTR - _unconsumed_tail_len: t.CSizeT - _unconsumed_tail_cap: t.CSizeT - input_buf: BYTEPTR - input_buf_len: t.CSizeT - input_buf_cap: t.CSizeT - def decompress(self: Decompress, data: BYTEPTR, data_len: t.CSizeT, max_length: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def flush(self: Decompress, length: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def copy(self: Decompress) -> Decompress | t.CPtr: pass - def delete(self: Decompress) -> t.CInt: pass - def unused_data(self: Decompress, length: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def unconsumed_tail(self: Decompress, length: t.CSizeT | t.CPtr) -> BYTEPTR: pass - -def set_error(code: int, msg: str) -> t.CInt: pass - -def clone_bytes(pool: memhub.MemManager | t.CPtr, src: BYTEPTR, length: t.CSizeT) -> BYTEPTR: pass - -def append_bytes(pool: memhub.MemManager | t.CPtr, buf: BYTE | t.CPtr[t.CPtr], length: t.CSizeT | t.CPtr, cap: t.CSizeT | t.CPtr, data: BYTEPTR, data_len: t.CSizeT) -> t.CInt: pass - -def shrink_to_fit(pool: memhub.MemManager | t.CPtr, buf: BYTEPTR, length: t.CSizeT) -> BYTEPTR: pass - -def runtime_version() -> str: pass - -def get_error() -> str: pass - -def get_error_code() -> t.CInt: pass - -def clear_error() -> t.CInt: pass - -def compress(pool: memhub.MemManager | t.CPtr, data: BYTEPTR, data_len: t.CSizeT, level: t.CInt, wbits: t.CInt, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - -def decompress(pool: memhub.MemManager | t.CPtr, data: BYTEPTR, data_len: t.CSizeT, wbits: t.CInt, bufsize: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - -def compressobj(pool: memhub.MemManager | t.CPtr, level: t.CInt, method: t.CInt, wbits: t.CInt, memLevel: t.CInt, strategy: t.CInt, zdict: BYTEPTR, zdict_len: t.CSizeT) -> Compress | t.CPtr: pass - -def decompressobj(pool: memhub.MemManager | t.CPtr, wbits: t.CInt, zdict: BYTEPTR, zdict_len: t.CSizeT) -> Decompress | t.CPtr: pass - -def zlib_adler32(data: BYTEPTR, length: t.CSizeT, value: t.CUnsignedLong) -> t.CUnsignedLong: pass - -def zlib_crc32(data: BYTEPTR, length: t.CSizeT, value: t.CUnsignedLong) -> t.CUnsignedLong: pass diff --git a/Test/TestProject2/temp/1c46d554b3a3f9f3.stub.ll.dep b/Test/TestProject2/temp/1c46d554b3a3f9f3.stub.ll.dep deleted file mode 100644 index 781a6b7..0000000 --- a/Test/TestProject2/temp/1c46d554b3a3f9f3.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -213348433fb01cc6|271ea3decb810db2|451745df21e598af|6f62fe05c5ea1ceb|8ebed83a7817fa0c|90921d009fdd674c|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|d541ade6afb689a5|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/1f6617c02fc8899d.stub.ll.dep b/Test/TestProject2/temp/1f6617c02fc8899d.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/TestProject2/temp/1f6617c02fc8899d.stub.ll.dep +++ b/Test/TestProject2/temp/1f6617c02fc8899d.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/213348433fb01cc6.pyi b/Test/TestProject2/temp/213348433fb01cc6.pyi deleted file mode 100644 index 6e4edce..0000000 --- a/Test/TestProject2/temp/213348433fb01cc6.pyi +++ /dev/null @@ -1,67 +0,0 @@ -""" -Auto-generated Python stub file from zlib.zdef.py -Module: zlib.zdef -""" - - -from stdint import * -import stddef -import string -import stdlib -import memhub -import t, c - -ZDEFLATE_WINDOW_BITS: t.CDefine = 15 -ZDEFLATE_WINDOW_SIZE: t.CDefine = (1 << ZDEFLATE_WINDOW_BITS) -ZDEFLATE_WINDOW_MASK: t.CDefine = (ZDEFLATE_WINDOW_SIZE - 1) -ZDEFLATE_MIN_MATCH: t.CDefine = 3 -ZDEFLATE_MAX_MATCH: t.CDefine = 258 -ZDEFLATE_HASH_BITS: t.CDefine = 15 -ZDEFLATE_HASH_SIZE: t.CDefine = (1 << ZDEFLATE_HASH_BITS) -ZDEFLATE_HASH_MASK: t.CDefine = (ZDEFLATE_HASH_SIZE - 1) -ZDEFLATE_MAX_CODES: t.CDefine = 288 -ZDEFLATE_MAX_DIST_CODES: t.CDefine = 32 -ZDEFLATE_MAX_BITS: t.CDefine = 15 -ZDEFLATE_MAX_CODELEN_CODES: t.CDefine = 19 -ZDEFLATE_LIT_COUNT: t.CDefine = 286 -ZDEFLATE_DIST_COUNT: t.CDefine = 30 -ZDEFLATE_LEN_SYMBOLS_BASE: t.CDefine = 257 -ZDEFLATE_END_OF_BLOCK: t.CDefine = 256 -zdeflate_len_extra_bits: t.CExtern | t.CArray[t.CInt, 29] -zdeflate_len_base: t.CExtern | t.CArray[t.CInt, 29] -zdeflate_dist_extra_bits: t.CExtern | t.CArray[t.CInt, 30] -zdeflate_dist_base: t.CExtern | t.CArray[t.CInt, 30] -zdeflate_codelen_order: t.CExtern | t.CArray[int, 19] - -@t.Object -class zbit_writer: - pool: memhub.MemManager | t.CPtr - buf: BYTE | t.CPtr - cap: t.CSizeT - byte_pos: t.CSizeT - bit_pos: t.CInt - def __init__(self: zbit_writer, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def ensure(self: zbit_writer, need: t.CSizeT) -> t.CInt: pass - def write_bits(self: zbit_writer, value: UINT, nbits: t.CInt) -> t.CInt: pass - def write_bits_rev(self: zbit_writer, code: UINT, nbits: t.CInt) -> t.CInt: pass - def stored_block(self: zbit_writer, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def write_zlib_header(self: zbit_writer, wbits: t.CInt, level: t.CInt) -> t.CInt: pass - def write_gzip_header(self: zbit_writer) -> t.CInt: pass - def align(self: zbit_writer) -> t.CInt: pass - def total(self: zbit_writer) -> t.CSizeT: pass - def free(self: zbit_writer) -> t.CInt: pass - def __del__(self: zbit_writer) -> t.CInt: pass -@t.Object -class zbit_reader: - buf: BYTE | t.CPtr - length: t.CSizeT - byte_pos: t.CSizeT - bit_pos: t.CInt - def init(self: zbit_reader, buf: BYTE | t.CPtr, length: t.CSizeT) -> t.CInt: pass - def read_bits(self: zbit_reader, nbits: t.CInt, out: UINTPTR) -> t.CInt: pass - def read_bits_rev(self: zbit_reader, nbits: t.CInt, out: UINTPTR) -> t.CInt: pass - def align(self: zbit_reader) -> t.CInt: pass - -def zdef_alloc(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> VOIDPTR: pass - -def zdef_free(pool: memhub.MemManager | t.CPtr, p: VOIDPTR) -> t.CInt: pass diff --git a/Test/TestProject2/temp/213348433fb01cc6.stub.ll.dep b/Test/TestProject2/temp/213348433fb01cc6.stub.ll.dep deleted file mode 100644 index c3b33d9..0000000 --- a/Test/TestProject2/temp/213348433fb01cc6.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/257e074b935c33b4.pyi b/Test/TestProject2/temp/257e074b935c33b4.pyi deleted file mode 100644 index 34d2feb..0000000 --- a/Test/TestProject2/temp/257e074b935c33b4.pyi +++ /dev/null @@ -1,45 +0,0 @@ -""" -Auto-generated Python stub file from binascii.py -Module: binascii -""" - - -import t, c - -HEX_CHARS: t.CExtern | t.CArray[t.CChar, None] -HEX_VALS: t.CExtern | t.CArray[t.CInt, 256] -B64_CHARS: t.CExtern | t.CArray[t.CChar, None] -B64_VALS: t.CExtern | t.CArray[t.CInt, 256] -HQX_CHARS: t.CExtern | t.CArray[t.CChar, 64] -HQX_VALS: t.CExtern | t.CArray[t.CInt, 256] -UU_CHARS: t.CExtern | t.CArray[t.CChar, None] -CRC32_TABLE: t.CExtern | t.CArray[t.CUnsignedInt, 256] -CRC_HQX_TABLE: t.CExtern | t.CArray[t.CUnsignedShort, 256] - -def init_binascii() -> t.CInt: pass - -def crc32(data: str, length: t.CInt, crc: t.CUnsignedInt) -> t.CUnsignedInt: pass - -def crc_hqx(data: str, length: t.CInt, crc: t.CUnsignedShort) -> t.CUnsignedShort: pass - -def hexlify(data: str, length: t.CInt) -> str: pass - -def b2a_hex(data: str, length: t.CInt) -> str: pass - -def a2b_hex(hexstr: str, length: t.CInt) -> str: pass - -def unhexlify(data: str, length: t.CInt) -> t.CInt: pass - -def b2a_base64(data: str, length: t.CInt) -> str: pass - -def a2b_base64(data: str, length: t.CInt) -> str: pass - -def b2a_uu(data: str, length: t.CInt) -> str: pass - -def a2b_uu(data: str) -> str: pass - -def b2a_hqx(data: str, length: t.CInt, crc: t.CUnsignedShort) -> tuple[str, t.CUnsignedShort]: pass - -def a2b_hqx(data: str, crc: t.CUnsignedShort) -> tuple[str, t.CUnsignedShort]: pass - -def adler32(data: str, length: t.CInt, adler: t.CUnsignedInt) -> t.CUnsignedInt: pass diff --git a/Test/TestProject2/temp/257e074b935c33b4.stub.ll.dep b/Test/TestProject2/temp/257e074b935c33b4.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestProject2/temp/271ea3decb810db2.pyi b/Test/TestProject2/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/TestProject2/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/TestProject2/temp/271ea3decb810db2.stub.ll.dep b/Test/TestProject2/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestProject2/temp/3e775aa83705b119.stub.ll.dep b/Test/TestProject2/temp/3e775aa83705b119.stub.ll.dep index 04a4e88..95be735 100644 --- a/Test/TestProject2/temp/3e775aa83705b119.stub.ll.dep +++ b/Test/TestProject2/temp/3e775aa83705b119.stub.ll.dep @@ -1 +1 @@ -1f6617c02fc8899d|285b6aa29a34754d|451745df21e598af|6c658cc728d0bbf4|8ebed83a7817fa0c|90921d009fdd674c|aa246c6e6aa30484|c9f4be41ca1cc2b4|d541ade6afb689a5|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|1f6617c02fc8899d|285b6aa29a34754d|451745df21e598af|6c658cc728d0bbf4|8ebed83a7817fa0c|90921d009fdd674c|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|d541ade6afb689a5|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/451745df21e598af.pyi b/Test/TestProject2/temp/451745df21e598af.pyi deleted file mode 100644 index b3bfb92..0000000 --- a/Test/TestProject2/temp/451745df21e598af.pyi +++ /dev/null @@ -1,52 +0,0 @@ -""" -Auto-generated Python stub file from zlib.zinflate.py -Module: zlib.zinflate -""" - - -from stdint import * -import zlib.zchecksum as zchecksum -import zlib.zdef as zdef -import zlib.zhuff as zhuff -import string -import memhub -import t, c - -@t.Object -class zinflate_stream: - pool: memhub.MemManager | t.CPtr - reader: zdef.zbit_reader - window: BYTEPTR - window_pos: t.CInt - window_size: t.CInt - wbits: t.CInt - is_finished: t.CInt - is_initialized: t.CInt - header_parsed: t.CInt - is_gzip: t.CInt - adler: t.CUInt32T - crc: t.CUInt32T - output: BYTEPTR - output_len: t.CSizeT - output_cap: t.CSizeT - input_data: t.CConst | BYTEPTR - input_len: t.CSizeT - input_pos: t.CSizeT - max_length: t.CSizeT - def __init__(self: zinflate_stream) -> t.CInt: pass - def output_byte(self: zinflate_stream, byte: BYTE) -> t.CInt: pass - def parse_header(self: zinflate_stream) -> t.CInt: pass - def read_bits_from_input(self: zinflate_stream, nbits: t.CInt, out: UINTPTR) -> t.CInt: pass - def read_huffman(self: zinflate_stream, dt: zhuff.zhuff_decode_tree | t.CPtr) -> t.CInt: pass - def inflate_block_stored(self: zinflate_stream) -> t.CInt: pass - def inflate_block_fixed(self: zinflate_stream) -> t.CInt: pass - def inflate_block_dynamic(self: zinflate_stream) -> t.CInt: pass - def inflate_stream(self: zinflate_stream) -> t.CInt: pass - def decompress(self: zinflate_stream, data: UINT8PTR, length: t.CSizeT, max_length: t.CSizeT, out: t.CUInt8T | t.CPtr[t.CPtr], out_len: t.CSizeT | t.CPtr) -> t.CInt: pass - def set_dictionary(self: zinflate_stream, dict: UINT8PTR, length: t.CSizeT) -> t.CInt: pass - def copy(self: zinflate_stream) -> zinflate_stream | t.CPtr: pass - def destroy(self: zinflate_stream) -> t.CInt: pass - -def zinflate_one_shot(pool: memhub.MemManager | t.CPtr, data: UINT8PTR, length: t.CSizeT, wbits: t.CInt, bufsize: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> t.CUInt8T | t.CPtr: pass - -def zinflate_create(pool: memhub.MemManager | t.CPtr, wbits: t.CInt) -> zinflate_stream | t.CPtr: pass diff --git a/Test/TestProject2/temp/451745df21e598af.stub.ll.dep b/Test/TestProject2/temp/451745df21e598af.stub.ll.dep index efca27c..afe33f9 100644 --- a/Test/TestProject2/temp/451745df21e598af.stub.ll.dep +++ b/Test/TestProject2/temp/451745df21e598af.stub.ll.dep @@ -1 +1 @@ -213348433fb01cc6|271ea3decb810db2|6f62fe05c5ea1ceb|8ebed83a7817fa0c|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|d541ade6afb689a5|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|1f6617c02fc8899d|285b6aa29a34754d|6c658cc728d0bbf4|8ebed83a7817fa0c|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|d541ade6afb689a5|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/541a1ed9b8be53c8.pyi b/Test/TestProject2/temp/541a1ed9b8be53c8.pyi deleted file mode 100644 index a98f466..0000000 --- a/Test/TestProject2/temp/541a1ed9b8be53c8.pyi +++ /dev/null @@ -1,16 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import config -import hashlib -import binascii -import zlib.pyzlib as zp -import t, c -import testcheck - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/TestProject2/temp/6446627d4f07a1b5.pyi b/Test/TestProject2/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/TestProject2/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/TestProject2/temp/6f62fe05c5ea1ceb.pyi b/Test/TestProject2/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/TestProject2/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/TestProject2/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/TestProject2/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestProject2/temp/6ff26590374ae6fc.pyi b/Test/TestProject2/temp/6ff26590374ae6fc.pyi deleted file mode 100644 index 1b1bba1..0000000 --- a/Test/TestProject2/temp/6ff26590374ae6fc.pyi +++ /dev/null @@ -1,39 +0,0 @@ -""" -Auto-generated Python stub file from hashlib.__sha512.py -Module: hashlib.__sha512 -""" - - -import t, c - -SHA512_BLOCK_LEN: t.CDefine = 128 -SHA512_DIGEST_LEN: t.CDefine = 64 - -def sha512_ror(x: t.CUInt64T, n: int) -> t.CUInt64T: pass - -def sha512_shr(x: t.CUInt64T, n: int) -> t.CUInt64T: pass - -def sha512_Ch(x: t.CUInt64T, y: t.CUInt64T, z: t.CUInt64T) -> t.CUInt64T: pass - -def sha512_Maj(x: t.CUInt64T, y: t.CUInt64T, z: t.CUInt64T) -> t.CUInt64T: pass - -def sha512_BigSigma0(x: t.CUInt64T) -> t.CUInt64T: pass - -def sha512_BigSigma1(x: t.CUInt64T) -> t.CUInt64T: pass - -def sha512_Sigma0(x: t.CUInt64T) -> t.CUInt64T: pass - -def sha512_Sigma1(x: t.CUInt64T) -> t.CUInt64T: pass - - -sha512_K: t.CExtern | t.CArray[t.CUInt64T, 80] - -@t.Object -class sha512: - state: t.CArray[t.CUInt64T, 8] - count: t.CArray[t.CUInt64T, 2] - buf: t.CArray[t.CUInt8T, SHA512_BLOCK_LEN] - def __init__(self: sha512) -> t.CInt: pass - def transform(self: sha512, block: t.CArray[t.CUInt8T, SHA512_BLOCK_LEN]) -> t.CInt: pass - def update(self: sha512, s: str) -> t.CInt: pass - def final(self: sha512, out: t.CArray[t.CUInt8T, SHA512_DIGEST_LEN]) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/72e2d5ccb7cedcf1.pyi b/Test/TestProject2/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/TestProject2/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/TestProject2/temp/7e529fe7a078cfef.pyi b/Test/TestProject2/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/TestProject2/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/TestProject2/temp/7e529fe7a078cfef.stub.ll.dep b/Test/TestProject2/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject2/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/8ebed83a7817fa0c.pyi b/Test/TestProject2/temp/8ebed83a7817fa0c.pyi deleted file mode 100644 index 6375e88..0000000 --- a/Test/TestProject2/temp/8ebed83a7817fa0c.pyi +++ /dev/null @@ -1,15 +0,0 @@ -""" -Auto-generated Python stub file from zlib.zchecksum.py -Module: zlib.zchecksum -""" - - -from stdint import * -import t, c - -def zchecksum_adler32(data: UINT8PTR, length: t.CSizeT, init: UINT32) -> t.CUInt32T: pass - - -crc32_table: t.CExtern | t.CArray[t.CUInt32T, 256] - -def zchecksum_crc32(data: UINT8PTR, length: t.CSizeT, init: t.CUInt32T) -> t.CUInt32T: pass diff --git a/Test/TestProject2/temp/90921d009fdd674c.pyi b/Test/TestProject2/temp/90921d009fdd674c.pyi deleted file mode 100644 index 86d9bcf..0000000 --- a/Test/TestProject2/temp/90921d009fdd674c.pyi +++ /dev/null @@ -1,56 +0,0 @@ -""" -Auto-generated Python stub file from zlib.zdeflate.py -Module: zlib.zdeflate -""" - - -from stdint import * -import zlib.zchecksum as zchecksum -import zlib.zhuff as zhuff -import zlib.zdef as zdef -import string -import memhub -import t, c - -@t.Object -class zdeflate_stream: - pool: memhub.MemManager | t.CPtr - writer: zdef.zbit_writer - window: BYTE | t.CPtr - window_pos: t.CInt - window_size: t.CInt - hash_head: t.CInt | t.CPtr - hash_prev: t.CInt | t.CPtr - level: t.CInt - strategy: t.CInt - wbits: t.CInt - is_finished: t.CInt - adler: t.CUInt32T - def find_match(self: zdeflate_stream, data: BYTE | t.CPtr, data_len: t.CSizeT, pos: t.CSizeT, best_dist: t.CInt | t.CPtr) -> t.CInt: pass - def update_hash(self: zdeflate_stream, data: BYTE | t.CPtr, pos: t.CSizeT) -> t.CInt: pass - def write_fixed_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def encode_block_data(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, lit_tree: zhuff.zhuff_tree | t.CPtr, dist_tree: zhuff.zhuff_tree | t.CPtr) -> t.CInt: pass - def write_dynamic_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def compress_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def write_stored_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def compress(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, out: t.CUInt8T | t.CPtr[t.CPtr], out_len: t.CSizeT | t.CPtr) -> t.CInt: pass - def flush(self: zdeflate_stream, mode: t.CInt, out: t.CUInt8T | t.CPtr[t.CPtr], out_len: t.CSizeT | t.CPtr) -> t.CInt: pass - def set_dictionary(self: zdeflate_stream, dict: UINT8PTR, length: t.CSizeT) -> t.CInt: pass - def copy(self: zdeflate_stream) -> zdeflate_stream | t.CPtr: pass - def destroy(self: zdeflate_stream) -> t.CInt: pass - -def zdeflate_count_freqs(lit_freqs: INTPTR, dist_freqs: INTPTR, s: zdeflate_stream | t.CPtr, data: UINT8PTR, length: t.CSizeT) -> t.CInt: pass - -def zdeflate_hash(p: BYTE | t.CPtr) -> t.CUnsignedInt: pass - -def zdeflate_len_to_symbol(length: t.CInt) -> t.CInt: pass - -def zdeflate_dist_to_symbol(dist: t.CInt) -> t.CInt: pass - -def zdeflate_count_cl_freqs(all_lengths: INTPTR, total: t.CInt, cl_freqs: INTPTR) -> t.CInt: pass - -def zdeflate_write_cl_encoded(all_lengths: INTPTR, total: t.CInt, w: zdef.zbit_writer | t.CPtr, cl_tree: zhuff.zhuff_tree | t.CPtr) -> t.CInt: pass - -def zdeflate_create(pool: memhub.MemManager | t.CPtr, level: t.CInt, wbits: t.CInt, mem_level: t.CInt, strategy: t.CInt) -> zdeflate_stream | t.CPtr: pass - -def zdeflate_one_shot(pool: memhub.MemManager | t.CPtr, data: UINT8PTR, length: t.CSizeT, level: t.CInt, wbits: t.CInt, out_len: t.CSizeT | t.CPtr) -> t.CUInt8T | t.CPtr: pass diff --git a/Test/TestProject2/temp/90921d009fdd674c.stub.ll.dep b/Test/TestProject2/temp/90921d009fdd674c.stub.ll.dep index efca27c..afe33f9 100644 --- a/Test/TestProject2/temp/90921d009fdd674c.stub.ll.dep +++ b/Test/TestProject2/temp/90921d009fdd674c.stub.ll.dep @@ -1 +1 @@ -213348433fb01cc6|271ea3decb810db2|6f62fe05c5ea1ceb|8ebed83a7817fa0c|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|d541ade6afb689a5|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|1f6617c02fc8899d|285b6aa29a34754d|6c658cc728d0bbf4|8ebed83a7817fa0c|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|d541ade6afb689a5|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/90c53dd6db8d41cf.pyi b/Test/TestProject2/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/TestProject2/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/TestProject2/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/TestProject2/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject2/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/96837bcc64032444.pyi b/Test/TestProject2/temp/96837bcc64032444.pyi deleted file mode 100644 index 46e78bd..0000000 --- a/Test/TestProject2/temp/96837bcc64032444.pyi +++ /dev/null @@ -1,13 +0,0 @@ -""" -Auto-generated Python stub file from hashlib.__init__.py -Module: hashlib.__init__ -""" - -import t -import c - - -from .__md5 import md5, MD5_DIGEST_LEN -from .__sha1 import sha1, SHA1_DIGEST_LEN -from .__sha256 import sha256, SHA256_DIGEST_LEN -from .__sha512 import sha512, SHA512_DIGEST_LEN \ No newline at end of file diff --git a/Test/TestProject2/temp/_phase1_manifest.json b/Test/TestProject2/temp/_phase1_manifest.json index 7c113ea..3ba8ce4 100644 --- a/Test/TestProject2/temp/_phase1_manifest.json +++ b/Test/TestProject2/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\main.py": {"sha1": "541a1ed9b8be53c8", "mtime": 1782266206.092594, "size": 881}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\zc\\config.py": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\binascii.py": {"sha1": "257e074b935c33b4", "mtime": 1782266199.8074288, "size": 14937}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.py": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.py": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.py": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.py": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.py": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\pyzlib.py": {"sha1": "1c46d554b3a3f9f3", "mtime": 1783538216.7783763, "size": 26101}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zchecksum.py": {"sha1": "8ebed83a7817fa0c", "mtime": 1782266235.9510274, "size": 4067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdef.py": {"sha1": "213348433fb01cc6", "mtime": 1782827035.812386, "size": 8591}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdeflate.py": {"sha1": "90921d009fdd674c", "mtime": 1783538197.82992, "size": 19061}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zhuff.py": {"sha1": "d541ade6afb689a5", "mtime": 1782827037.897873, "size": 13495}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zinflate.py": {"sha1": "451745df21e598af", "mtime": 1782827035.992862, "size": 18078}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\main.vp": {"sha1": "541a1ed9b8be53c8", "mtime": 1782266206.092594, "size": 881}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject2\\App\\zc\\config.vp": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\binascii.vp": {"sha1": "d3917d97537f703c", "mtime": 1785777664.9648058, "size": 14946}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__init__.vp": {"sha1": "96837bcc64032444", "mtime": 1777902641.540433, "size": 186}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__md5.vp": {"sha1": "19f8024d10c828e8", "mtime": 1784356818.7075372, "size": 5847}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha1.vp": {"sha1": "0df65b8ed15664b0", "mtime": 1784356827.656474, "size": 4516}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha256.vp": {"sha1": "c9d54a4158f7f5a8", "mtime": 1782266203.9352357, "size": 5332}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\hashlib\\__sha512.vp": {"sha1": "6ff26590374ae6fc", "mtime": 1782266223.3380039, "size": 7162}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\pyzlib.vp": {"sha1": "3e775aa83705b119", "mtime": 1785894559.67875, "size": 26187}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zchecksum.vp": {"sha1": "8ebed83a7817fa0c", "mtime": 1782266235.9510274, "size": 4067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdef.vp": {"sha1": "1f6617c02fc8899d", "mtime": 1785894585.5916247, "size": 8577}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zdeflate.vp": {"sha1": "90921d009fdd674c", "mtime": 1783538197.82992, "size": 19061}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zhuff.vp": {"sha1": "d541ade6afb689a5", "mtime": 1782827037.897873, "size": 13495}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\zlib\\zinflate.vp": {"sha1": "451745df21e598af", "mtime": 1782827035.992862, "size": 18078}} \ No newline at end of file diff --git a/Test/TestProject2/temp/_sha1_map.txt b/Test/TestProject2/temp/_sha1_map.txt index 19fad05..88b3741 100644 --- a/Test/TestProject2/temp/_sha1_map.txt +++ b/Test/TestProject2/temp/_sha1_map.txt @@ -1,24 +1,24 @@ -0df65b8ed15664b0:includes/hashlib\__sha1.py -14d33679f7fadf1f:includes/testcheck.py -19f8024d10c828e8:includes/hashlib\__md5.py -1c46d554b3a3f9f3:includes/zlib\pyzlib.py -213348433fb01cc6:includes/zlib\zdef.py -257e074b935c33b4:includes/binascii.py -271ea3decb810db2:includes/atom.py -451745df21e598af:includes/zlib\zinflate.py -541a1ed9b8be53c8:main.py -6f62fe05c5ea1ceb:includes/stdio.py -6ff26590374ae6fc:includes/hashlib\__sha512.py -7e529fe7a078cfef:includes/w32\win32base.py -8ebed83a7817fa0c:includes/zlib\zchecksum.py -90921d009fdd674c:includes/zlib\zdeflate.py -90c53dd6db8d41cf:includes/stdlib.py -96837bcc64032444:includes/hashlib\__init__.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9d54a4158f7f5a8:includes/hashlib\__sha256.py -c9f4be41ca1cc2b4:includes/viperio.py -cfc83b830141b00e:zc\config.py -d089e25a15c6f6e0:includes/memhub.py -d541ade6afb689a5:includes/zlib\zhuff.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +0df65b8ed15664b0:includes/hashlib\__sha1.vp +19f8024d10c828e8:includes/hashlib\__md5.vp +1f6617c02fc8899d:includes/zlib\zdef.vp +285b6aa29a34754d:includes/stdio.vp +3e775aa83705b119:includes/zlib\pyzlib.vp +451745df21e598af:includes/zlib\zinflate.vp +541a1ed9b8be53c8:main.vp +6c658cc728d0bbf4:includes/stdlib.vp +6ff26590374ae6fc:includes/hashlib\__sha512.vp +748d0424e8976fa0:includes/testcheck.vp +8ebed83a7817fa0c:includes/zlib\zchecksum.vp +90921d009fdd674c:includes/zlib\zdeflate.vp +928c0ff6d8c69ec9:includes/string.vp +96837bcc64032444:includes/hashlib\__init__.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9d54a4158f7f5a8:includes/hashlib\__sha256.vp +c9f4be41ca1cc2b4:includes/viperio.vp +cfc83b830141b00e:zc/config.vp +d3917d97537f703c:includes/binascii.vp +d541ade6afb689a5:includes/zlib\zhuff.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/TestProject2/temp/_shared_sym.json b/Test/TestProject2/temp/_shared_sym.json index cff175cb9bfc2ed80c534705fc742c28f7b52882..f56af1afde2d014de6b02dc44f41e6ecb31b8224 100644 GIT binary patch literal 527038 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

    !w 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 bNxX*WSB71OAmym)@rs str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TestProject2/temp/ba12ed409d78139e.stub.ll.dep b/Test/TestProject2/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject2/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/bbdf3bbd4c3bc28c.pyi b/Test/TestProject2/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/TestProject2/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestProject2/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/TestProject2/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/TestProject2/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/TestProject2/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/TestProject2/temp/c9d54a4158f7f5a8.pyi b/Test/TestProject2/temp/c9d54a4158f7f5a8.pyi deleted file mode 100644 index 3e2d738..0000000 --- a/Test/TestProject2/temp/c9d54a4158f7f5a8.pyi +++ /dev/null @@ -1,34 +0,0 @@ -""" -Auto-generated Python stub file from hashlib.__sha256.py -Module: hashlib.__sha256 -""" - - -import t, c - -SHA256_BLOCK_LEN: t.CDefine = 64 -SHA256_DIGEST_LEN: t.CDefine = 32 -sha256_K: t.CExtern | t.CArray[t.CUInt32T, 64] - -def s0(x: t.CUInt32T) -> t.CUInt32T: pass - -def s1(x: t.CUInt32T) -> t.CUInt32T: pass - -def S0(x: t.CUInt32T) -> t.CUInt32T: pass - -def S1(x: t.CUInt32T) -> t.CUInt32T: pass - -def Ch(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass - -def Maj(x: t.CUInt32T, y: t.CUInt32T, z: t.CUInt32T) -> t.CUInt32T: pass - - -@t.Object -class sha256: - state: t.CArray[t.CUInt32T, 8] - count: t.CUInt64T - buf: t.CArray[t.CUInt8T, SHA256_BLOCK_LEN] - def __init__(self: sha256) -> t.CInt: pass - def transform(self: sha256, block: t.CUInt8T | t.CPtr) -> t.CInt: pass - def update(self: sha256, s: str) -> t.CInt: pass - def final(self: sha256, out: t.CArray[t.CUInt8T, SHA256_DIGEST_LEN]) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/c9f4be41ca1cc2b4.pyi b/Test/TestProject2/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/TestProject2/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/cfc83b830141b00e.pyi b/Test/TestProject2/temp/cfc83b830141b00e.pyi deleted file mode 100644 index 5af877f..0000000 --- a/Test/TestProject2/temp/cfc83b830141b00e.pyi +++ /dev/null @@ -1,27 +0,0 @@ -""" -Auto-generated Python stub file from zc.config.py -Module: zc.config -""" - - -import t, c - -POSMAX: t.CDefine = 100 -MAX_RETRY: t.CDefine = 5 -BUFFER_SIZE: t.CDefine = 256 -PI: t.CDefine = 3.14159 -EULER: t.CDefine = 2.71828 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -NULL: t.CDefine = 0 -MATH_OFFSET: t.CDefine = 10 -MATH_SCALE: t.CDefine = 2 -THRESHOLD: t.CDefine = 50 -LOOP_LIMIT: t.CDefine = 20 -SHIFT_AMOUNT: t.CDefine = 2 -MASK_VALUE: t.CDefine = 0xFF -BIT_RANGE: t.CDefine = 4 -EXPONENT_BASE: t.CDefine = 3 -MODULO_DIVISOR: t.CDefine = 7 -SCALE_SHIFT: t.CDefine = 4 -HALF_SCALE: t.CDefine = 0.5 \ No newline at end of file diff --git a/Test/TestProject2/temp/d089e25a15c6f6e0.pyi b/Test/TestProject2/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/TestProject2/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/TestProject2/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/TestProject2/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/d541ade6afb689a5.pyi b/Test/TestProject2/temp/d541ade6afb689a5.pyi deleted file mode 100644 index fd4ddf5..0000000 --- a/Test/TestProject2/temp/d541ade6afb689a5.pyi +++ /dev/null @@ -1,44 +0,0 @@ -""" -Auto-generated Python stub file from zlib.zhuff.py -Module: zlib.zhuff -""" - - -from stdint import * -import zlib.zdef as zdef -import memhub -import t, c - -ZHUFF_MAX_CODES: t.CDefine = 288 -ZHUFF_MAX_BITS: t.CDefine = 15 - -class zhuff_code: - code: UINT - bits: t.CInt -@t.Object -class zhuff_tree: - pool: memhub.MemManager | t.CPtr - codes: t.CArray[zhuff_code, ZHUFF_MAX_CODES] - count: t.CInt - max_bits: t.CInt - def __init__(self: zhuff_tree) -> t.CInt: pass - def build_codes(self: zhuff_tree, freqs: INTPTR, count: t.CInt, max_bits: t.CInt) -> t.CInt: pass - def build_fixed_lit_tree(self: zhuff_tree) -> t.CInt: pass - def build_fixed_dist_tree(self: zhuff_tree) -> t.CInt: pass - def encode_symbol(self: zhuff_tree, symbol: int, writer: zdef.zbit_writer | t.CPtr) -> t.CInt: pass - def build_code_lengths(self: zhuff_tree, lengths: t.CInt | t.CPtr, freqs: t.CInt | t.CPtr, count: t.CInt, max_bits: t.CInt) -> t.CInt: pass - def get_fixed_lit_lengths(self: zhuff_tree, lengths: INTPTR) -> t.CInt: pass - def get_fixed_dist_lengths(self: zhuff_tree, lengths: INTPTR) -> t.CInt: pass - def build_tree_from_lengths(self: zhuff_tree, lengths: INTPTR, count: t.CInt, max_bits: t.CInt) -> t.CInt: pass -class zhuff_decode_node: - children: t.CArray[t.CInt, 2] - symbol: t.CInt -@t.Object -class zhuff_decode_tree: - pool: memhub.MemManager | t.CPtr - nodes: t.CArray[zhuff_decode_node, 2 * ZHUFF_MAX_CODES] - node_count: t.CInt - root: t.CInt - def __init__(self: zhuff_decode_tree) -> t.CInt: pass - def build_decode_tree(self: zhuff_decode_tree, ht: zhuff_tree | t.CPtr) -> t.CInt: pass - def decode_symbol(self: zhuff_decode_tree, reader: zdef.zbit_reader | t.CPtr) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/d541ade6afb689a5.stub.ll.dep b/Test/TestProject2/temp/d541ade6afb689a5.stub.ll.dep index 669c69e..25a2827 100644 --- a/Test/TestProject2/temp/d541ade6afb689a5.stub.ll.dep +++ b/Test/TestProject2/temp/d541ade6afb689a5.stub.ll.dep @@ -1 +1 @@ -213348433fb01cc6|271ea3decb810db2|6f62fe05c5ea1ceb|90c53dd6db8d41cf|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|1f6617c02fc8899d|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/d63d2c2a2bd9bd2a.pyi b/Test/TestProject2/temp/d63d2c2a2bd9bd2a.pyi deleted file mode 100644 index cc9d917..0000000 --- a/Test/TestProject2/temp/d63d2c2a2bd9bd2a.pyi +++ /dev/null @@ -1,10 +0,0 @@ -""" -Auto-generated Python stub file from zlib.__init__.py -Module: zlib.__init__ -""" - -import t -import c - - -from .pyzlib import * \ No newline at end of file diff --git a/Test/TestProject2/temp/f5522571bcce7bcb.pyi b/Test/TestProject2/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/TestProject2/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/TestProject2/temp/f6b51804a0ba8ff0.pyi b/Test/TestProject2/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/TestProject2/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/TestProject2/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/TestProject2/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/TestProject2/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/TestProject2/temp/f9d023d1df2bc9c5.vpi b/Test/TestProject2/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/TestProject2/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject2/temp/ffaf70367668b227.stub.ll.dep b/Test/TestProject2/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject2/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject2/temp/ffaf70367668b227.vpi b/Test/TestProject2/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/TestProject2/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TestProject3/output/0019c939aae7f9f1.deps.json b/Test/TestProject3/output/0019c939aae7f9f1.deps.json index 1dd7c0e..5e61fc0 100644 --- a/Test/TestProject3/output/0019c939aae7f9f1.deps.json +++ b/Test/TestProject3/output/0019c939aae7f9f1.deps.json @@ -1 +1 @@ -{"w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "enumtest": "1b58766d38d05de3", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "definetest": "64ac83614c9bdbc6", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b235d6477436c524", "platmacro": "b57252077e6b596b", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject3/output/1b58766d38d05de3.deps.json b/Test/TestProject3/output/1b58766d38d05de3.deps.json index 401424a..e33992f 100644 --- a/Test/TestProject3/output/1b58766d38d05de3.deps.json +++ b/Test/TestProject3/output/1b58766d38d05de3.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "memhub": "04e5fe47ff2af528", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "definetest": "64ac83614c9bdbc6", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b235d6477436c524", "platmacro": "b57252077e6b596b", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject3/output/285a822aa26bfbda.deps.json b/Test/TestProject3/output/285a822aa26bfbda.deps.json index 6a0b038..bcdd3ee 100644 --- a/Test/TestProject3/output/285a822aa26bfbda.deps.json +++ b/Test/TestProject3/output/285a822aa26bfbda.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "memhub": "04e5fe47ff2af528", "enumtest": "1b58766d38d05de3", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "definetest": "64ac83614c9bdbc6", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b235d6477436c524", "platmacro": "b57252077e6b596b", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/TestProject3/output/64ac83614c9bdbc6.deps.json b/Test/TestProject3/output/64ac83614c9bdbc6.deps.json index 5f586fc..9f0cad3 100644 --- a/Test/TestProject3/output/64ac83614c9bdbc6.deps.json +++ b/Test/TestProject3/output/64ac83614c9bdbc6.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "memhub": "04e5fe47ff2af528", "enumtest": "1b58766d38d05de3", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b235d6477436c524", "platmacro": "b57252077e6b596b", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject3/output/b235d6477436c524.deps.json b/Test/TestProject3/output/b235d6477436c524.deps.json index cc8c3ed..395efe7 100644 --- a/Test/TestProject3/output/b235d6477436c524.deps.json +++ b/Test/TestProject3/output/b235d6477436c524.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "vectortest": "b777c587cc21465a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "memhub": "04e5fe47ff2af528", "enumtest": "1b58766d38d05de3", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "definetest": "64ac83614c9bdbc6", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject3/output/b777c587cc21465a.deps.json b/Test/TestProject3/output/b777c587cc21465a.deps.json index c8e8a31..57634a2 100644 --- a/Test/TestProject3/output/b777c587cc21465a.deps.json +++ b/Test/TestProject3/output/b777c587cc21465a.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "main": "b235d6477436c524", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "memhub": "04e5fe47ff2af528", "enumtest": "1b58766d38d05de3", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "definetest": "64ac83614c9bdbc6", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b235d6477436c524", "platmacro": "b57252077e6b596b", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "fileiotest": "c01b27dbcd683245", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject3/output/c01b27dbcd683245.deps.json b/Test/TestProject3/output/c01b27dbcd683245.deps.json index 9539ed5..bd79ed6 100644 --- a/Test/TestProject3/output/c01b27dbcd683245.deps.json +++ b/Test/TestProject3/output/c01b27dbcd683245.deps.json @@ -1 +1 @@ -{"mpooltest": "0019c939aae7f9f1", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "testcheck": "14d33679f7fadf1f", "enumtest": "1b58766d38d05de3", "atom": "271ea3decb810db2", "vector": "285a822aa26bfbda", "definetest": "64ac83614c9bdbc6", "stdio": "6f62fe05c5ea1ceb", "stdarg": "71e0a3ffcb3ebfad", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "main": "b235d6477436c524", "vectortest": "b777c587cc21465a", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperlib": "c3b259b4059f8668", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0"} \ No newline at end of file +{"mpooltest": "0019c939aae7f9f1", "memhub": "04e5fe47ff2af528", "enumtest": "1b58766d38d05de3", "vector": "285a822aa26bfbda", "stdio": "285b6aa29a34754d", "definetest": "64ac83614c9bdbc6", "stdlib": "6c658cc728d0bbf4", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b235d6477436c524", "platmacro": "b57252077e6b596b", "vectortest": "b777c587cc21465a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "stdint": "f5522571bcce7bcb", "viperlib": "f6ab8989f3545e83", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject3/temp/0019c939aae7f9f1.pyi b/Test/TestProject3/temp/0019c939aae7f9f1.pyi deleted file mode 100644 index 7c47ef2..0000000 --- a/Test/TestProject3/temp/0019c939aae7f9f1.pyi +++ /dev/null @@ -1,14 +0,0 @@ -""" -Auto-generated Python stub file from mpooltest.py -Module: mpooltest -""" - - -import t, c -from t import CInt, CPtr, CChar -import viperlib -import viperio -import stdlib -import memhub - -def mpool_main() -> CInt: pass diff --git a/Test/TestProject3/temp/0035c95a18d4f8e8.pyi b/Test/TestProject3/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/TestProject3/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/TestProject3/temp/0035c95a18d4f8e8.stub.ll.dep b/Test/TestProject3/temp/0035c95a18d4f8e8.stub.ll.dep deleted file mode 100644 index f0e8002..0000000 --- a/Test/TestProject3/temp/0035c95a18d4f8e8.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|f5522571bcce7bcb|f6b51804a0ba8ff0 \ No newline at end of file diff --git a/Test/TestProject3/temp/067c78e9f121dce3.pyi b/Test/TestProject3/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/TestProject3/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/TestProject3/temp/06f53cc594b4ac6c.pyi b/Test/TestProject3/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/TestProject3/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestProject3/temp/14d33679f7fadf1f.pyi b/Test/TestProject3/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/TestProject3/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/TestProject3/temp/14d33679f7fadf1f.stub.ll.dep b/Test/TestProject3/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/TestProject3/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/1b58766d38d05de3.pyi b/Test/TestProject3/temp/1b58766d38d05de3.pyi deleted file mode 100644 index 11fb572..0000000 --- a/Test/TestProject3/temp/1b58766d38d05de3.pyi +++ /dev/null @@ -1,35 +0,0 @@ -""" -Auto-generated Python stub file from enumtest.py -Module: enumtest -""" - - -import t, c -from t import CInt, CPtr, CChar, CInt32T, CExport -import viperlib -import stdlib - -class Color(t.CEnum): - Red = 0 - Green = 1 - Blue = 2 -class Option(t.REnum): - class Some: - value: CInt - Empty = 1 -class Result(t.REnum): - class Ok: - value: CInt - class Err: - msg: t.CChar | CPtr -class GeoShape(t.REnum): - class GCircle: - radius: CInt - class GRect: - w: CInt - h: CInt - class GPoint: - x: CInt - y: CInt - -def enum_main() -> CInt: pass diff --git a/Test/TestProject3/temp/271ea3decb810db2.pyi b/Test/TestProject3/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/TestProject3/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/TestProject3/temp/271ea3decb810db2.stub.ll.dep b/Test/TestProject3/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestProject3/temp/285a822aa26bfbda.pyi b/Test/TestProject3/temp/285a822aa26bfbda.pyi deleted file mode 100644 index 00d2f9f..0000000 --- a/Test/TestProject3/temp/285a822aa26bfbda.pyi +++ /dev/null @@ -1,24 +0,0 @@ -""" -Auto-generated Python stub file from vector.py -Module: vector -""" - - -import t, c -from stdint import * -import memhub - -class Vector[T]: - data: t.CVoid | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - elem_size: t.CSizeT - pool: memhub.MemManager | t.CPtr - def __init__(self: Vector, pool: memhub.MemManager | t.CPtr, capacity: t.CSizeT, _hint: T) -> t.CInt: pass - def push(self: Vector, value: T) -> t.CInt: pass - def _grow(self: Vector) -> t.CInt: pass - def get(self: Vector, index: t.CSizeT) -> T: pass - def set(self: Vector, index: t.CSizeT, value: T) -> t.CInt: pass - def len(self: Vector) -> t.CSizeT: pass - def clear(self: Vector) -> t.CInt: pass - def free(self: Vector) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject3/temp/285a822aa26bfbda.stub.ll.dep b/Test/TestProject3/temp/285a822aa26bfbda.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/TestProject3/temp/285a822aa26bfbda.stub.ll.dep +++ b/Test/TestProject3/temp/285a822aa26bfbda.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/6446627d4f07a1b5.pyi b/Test/TestProject3/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/TestProject3/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/TestProject3/temp/64ac83614c9bdbc6.pyi b/Test/TestProject3/temp/64ac83614c9bdbc6.pyi deleted file mode 100644 index 60711e1..0000000 --- a/Test/TestProject3/temp/64ac83614c9bdbc6.pyi +++ /dev/null @@ -1,85 +0,0 @@ -""" -Auto-generated Python stub file from definetest.py -Module: definetest -""" - - -import t, c -from t import CInt, CInt32T, CUInt32T, CUInt64T, CFloat64T, CPtr, CChar, CDefine, CUInt16T -import viperlib -import stdlib -import platmacro - -MAX_SIZE: t.CDefine = 1024 -MIN_VAL: t.CDefine = 0 -MAX_VAL: t.CDefine = 100 -MASK_BYTE: t.CDefine = 0xFF -SHIFT_BITS: t.CDefine = 8 -PI_INT: t.CDefine = 3 -ENABLED: t.CDefine = 1 -DISABLED: t.CDefine = 0 -PAGE_SIZE: t.CDefine = 4096 -BUFFER_LEN: t.CDefine = 256 -CODE_SEG: t.CDefine | t.CUInt16T = 0x08 -DATA_SEG: t.CDefine | t.CUInt16T = 0x10 -STACK_SEG: t.CDefine | t.CUInt16T = 0x20 - -def MAKE_FLAG(bit: CInt32T) -> t.CDefine: - return 1 << bit - -def CLAMP(x: CInt32T, lo: CInt32T, hi: CInt32T) -> t.CDefine: - if x < lo: - return lo - if x > hi: - return hi - return x - -def test_basic_define() -> CInt: pass - -def test_define_arithmetic() -> CInt: pass - -def test_define_conditional() -> CInt: pass - -def test_define_loop() -> CInt: pass - -def test_typed_define() -> CInt: pass - -def test_define_function() -> CInt: pass - -def test_define_clamp() -> CInt: pass - -def test_define_string() -> CInt: pass - -def test_define_combined() -> CInt: pass - -def test_cif_basic() -> CInt: pass - -def test_cif_elif_else() -> CInt: pass - -def test_cifdef_cifndef() -> CInt: pass - -def test_cif_platform() -> CInt: pass - -def test_cif_nested() -> CInt: pass - -def test_cif_expr() -> CInt: pass - -def test_platmacro_platform() -> CInt: pass - -def test_platmacro_sizes() -> CInt: pass - -def test_platmacro_endian() -> CInt: pass - -def test_platmacro_features() -> CInt: pass - -def test_platmacro_align() -> CInt: pass - -def test_cifdef_cross_module() -> CInt: pass - -def test_cifdef_guard() -> CInt: pass - -def test_cifdef_undefined() -> CInt: pass - -def test_cifdef_complex() -> CInt: pass - -def define_main() -> CInt: pass diff --git a/Test/TestProject3/temp/6f62fe05c5ea1ceb.pyi b/Test/TestProject3/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/TestProject3/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/TestProject3/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/TestProject3/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestProject3/temp/71e0a3ffcb3ebfad.pyi b/Test/TestProject3/temp/71e0a3ffcb3ebfad.pyi deleted file mode 100644 index 574b20e..0000000 --- a/Test/TestProject3/temp/71e0a3ffcb3ebfad.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdarg.py -Module: stdarg -""" - -import c - - -import t - -def va_start(args: t.CPtr, last_arg: t.CPtr) -> t.State: pass - -def va_arg(args: t.CPtr, type: t.CPtr) -> t.CPtr | t.State: pass - -def va_end(args: t.CPtr) -> t.State | t.State: pass - - -va_list: t.CTypedef = t.CUnsignedChar | t.CPtr - -def arg(type: t.CType) -> t.State: pass diff --git a/Test/TestProject3/temp/72e2d5ccb7cedcf1.pyi b/Test/TestProject3/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/TestProject3/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/TestProject3/temp/7e529fe7a078cfef.pyi b/Test/TestProject3/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/TestProject3/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/TestProject3/temp/7e529fe7a078cfef.stub.ll.dep b/Test/TestProject3/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject3/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/90c53dd6db8d41cf.pyi b/Test/TestProject3/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/TestProject3/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/TestProject3/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/TestProject3/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject3/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/93c1d18e35d188d6.pyi b/Test/TestProject3/temp/93c1d18e35d188d6.pyi deleted file mode 100644 index a8cd09e..0000000 --- a/Test/TestProject3/temp/93c1d18e35d188d6.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from platmacro.py -Module: platmacro -""" - - -import t, c - -IS_WINDOWS: t.CDefine = 1 -IS_WIN64: t.CDefine = 1 -IS_X86_64: t.CDefine = 1 -IS_LP64: t.CDefine = 1 -IS_LITTLE_ENDIAN: t.CDefine = 1 -IS_LINUX: t.CDefine = 0 -IS_MACOS: t.CDefine = 0 -IS_ARM64: t.CDefine = 0 -IS_BIG_ENDIAN: t.CDefine = 0 -IS_ILP32: t.CDefine = 0 -PTR_SIZE: t.CDefine = t.CSizeT().Size -INT_SIZE: t.CDefine = 4 -LONG_SIZE: t.CDefine = t.CLong().Size -WORD_SIZE: t.CDefine = t.CSizeT().Size -CACHE_LINE_SIZE: t.CDefine = 64 -PAGE_SIZE: t.CDefine = 4096 -STACK_ALIGN: t.CDefine = 16 -MAX_PATH_LEN: t.CDefine = 260 -PLATFORM_NAME: t.CDefine = 1 -ARCH_NAME: t.CDefine = 1 -WINVER: t.CDefine = 0x0A00 -_WIN32_WINNT: t.CDefine = 0x0A00 -NTDDI_VERSION: t.CDefine = 0x0A000006 -HAS_SSE2: t.CDefine = 1 -HAS_AVX: t.CDefine = 1 -HAS_AVX2: t.CDefine = 1 -HAS_FMA: t.CDefine = 1 -HAS_NEON: t.CDefine = 0 -ALIGNOF_INT: t.CDefine = 4 -ALIGNOF_LONG: t.CDefine = t.CLong().Size // 8 -ALIGNOF_PTR: t.CDefine = t.CSizeT().Size // 8 -ALIGNOF_DOUBLE: t.CDefine = 8 -ALIGNOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_SHORT: t.CDefine = 2 -SIZEOF_INT: t.CDefine = 4 -SIZEOF_LONG: t.CDefine = t.CLong().Size // 8 -SIZEOF_LONG_LONG: t.CDefine = 8 -SIZEOF_FLOAT: t.CDefine = 4 -SIZEOF_DOUBLE: t.CDefine = 8 -SIZEOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_POINTER: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_SIZE_T: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_PTRDIFF_T: t.CDefine = t.CPtrDiffT().Size // 8 -BYTE_ORDER_LE: t.CDefine = 1 -BYTE_ORDER_BE: t.CDefine = 0 \ No newline at end of file diff --git a/Test/TestProject3/temp/93c1d18e35d188d6.stub.ll.dep b/Test/TestProject3/temp/93c1d18e35d188d6.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TestProject3/temp/_phase1_manifest.json b/Test/TestProject3/temp/_phase1_manifest.json index c0c8ebc..98a925d 100644 --- a/Test/TestProject3/temp/_phase1_manifest.json +++ b/Test/TestProject3/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\definetest.py": {"sha1": "64ac83614c9bdbc6", "mtime": 1781005527.138675, "size": 9399}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\enumtest.py": {"sha1": "1b58766d38d05de3", "mtime": 1781025043.7585423, "size": 2094}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\fileiotest.py": {"sha1": "c01b27dbcd683245", "mtime": 1781261000.2857711, "size": 12600}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\main.py": {"sha1": "b235d6477436c524", "mtime": 1782110387.1454024, "size": 15478}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\mpooltest.py": {"sha1": "0019c939aae7f9f1", "mtime": 1782828388.8033123, "size": 2789}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\vectortest.py": {"sha1": "b777c587cc21465a", "mtime": 1782828416.8050296, "size": 1215}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.py": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vector.py": {"sha1": "285a822aa26bfbda", "mtime": 1784566611.8311827, "size": 2071}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.py": {"sha1": "c3b259b4059f8668", "mtime": 1784566611.8459883, "size": 56772}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.py": {"sha1": "0035c95a18d4f8e8", "mtime": 1783747022.686592, "size": 14147}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.py": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\definetest.vp": {"sha1": "64ac83614c9bdbc6", "mtime": 1781005527.138675, "size": 9399}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\enumtest.vp": {"sha1": "1b58766d38d05de3", "mtime": 1781025043.7585423, "size": 2094}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\fileiotest.vp": {"sha1": "c01b27dbcd683245", "mtime": 1781261000.2857711, "size": 12600}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\main.vp": {"sha1": "b235d6477436c524", "mtime": 1782110387.1454024, "size": 15478}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\mpooltest.vp": {"sha1": "0019c939aae7f9f1", "mtime": 1782828388.8033123, "size": 2789}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject3\\App\\vectortest.vp": {"sha1": "b777c587cc21465a", "mtime": 1782828416.8050296, "size": 1215}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.vp": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vector.vp": {"sha1": "285a822aa26bfbda", "mtime": 1784566611.8311827, "size": 2071}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\fileio.vp": {"sha1": "d137b1f3311f3a7f", "mtime": 1785902648.1442463, "size": 13765}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32file.vp": {"sha1": "f6b51804a0ba8ff0", "mtime": 1782531158.744144, "size": 8424}} \ No newline at end of file diff --git a/Test/TestProject3/temp/_sha1_map.txt b/Test/TestProject3/temp/_sha1_map.txt index b8e0fef..9eb655e 100644 --- a/Test/TestProject3/temp/_sha1_map.txt +++ b/Test/TestProject3/temp/_sha1_map.txt @@ -1,22 +1,22 @@ -0019c939aae7f9f1:mpooltest.py -0035c95a18d4f8e8:includes/w32\fileio.py -14d33679f7fadf1f:includes/testcheck.py -1b58766d38d05de3:enumtest.py -271ea3decb810db2:includes/atom.py -285a822aa26bfbda:includes/vector.py -64ac83614c9bdbc6:definetest.py -6f62fe05c5ea1ceb:includes/stdio.py -71e0a3ffcb3ebfad:includes/stdarg.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -93c1d18e35d188d6:includes/platmacro.py -b235d6477436c524:main.py -b777c587cc21465a:vectortest.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c01b27dbcd683245:fileiotest.py -c3b259b4059f8668:includes/viperlib.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py -f6b51804a0ba8ff0:includes/w32\win32file.py +0019c939aae7f9f1:mpooltest.vp +04e5fe47ff2af528:includes/memhub.vp +1b58766d38d05de3:enumtest.vp +285a822aa26bfbda:includes/vector.vp +285b6aa29a34754d:includes/stdio.vp +64ac83614c9bdbc6:definetest.vp +6c658cc728d0bbf4:includes/stdlib.vp +71e0a3ffcb3ebfad:includes/stdarg.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +b235d6477436c524:main.vp +b57252077e6b596b:includes/platmacro.vp +b777c587cc21465a:vectortest.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c01b27dbcd683245:fileiotest.vp +c9f4be41ca1cc2b4:includes/viperio.vp +d137b1f3311f3a7f:includes/w32\fileio.vp +f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp +f6b51804a0ba8ff0:includes/w32\win32file.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/TestProject3/temp/_shared_sym.json b/Test/TestProject3/temp/_shared_sym.json index 784869d1fd7c125627923c84930311edd7747ad9..a7ca883862188ae2368b0b8c0cccf2756f57de51 100644 GIT binary patch literal 584979 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

    DDT_X?+J*=FNk@9VF!Xw5B#Nr3mH9}vI><_6m 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 T: pass - -def add_u64[T](a: T, b: T, c: CUInt64T) -> T: pass - -def fxi[T1, T2](a: T1, b: T2) -> T1: pass - -def fxi2[T1, T2, T3](a: T1, b: T2, c: T3) -> T1: pass - -def wrap_add[T](a: T, b: T) -> T: pass - -def double_add[T](a: T, b: T) -> T: pass - - -class A[T]: - def __init__(self: A, a: T) -> t.CInt: pass - def get_a(self: A) -> T: pass -class Pair[T1, T2]: - def __init__(self: Pair, first: T1, second: T2) -> t.CInt: pass - def get_first(self: Pair) -> T1: pass - def get_second(self: Pair) -> T2: pass -class Calculator[T]: - def __init__(self: Calculator, init_val: T) -> t.CInt: pass - def compute(self: Calculator, other: T) -> T: pass - def double_compute(self: Calculator, other: T) -> T: pass -class Container[T]: - def __init__(self: Container, v: T) -> t.CInt: pass - def get_value(self: Container) -> T: pass - def get_flag(self: Container) -> CInt32T: pass -@t.CVTable -class Shape: - def __init__(self: Shape, x: CFloat64T, y: CFloat64T) -> t.CInt: pass - def area(self: Shape) -> CFloat64T: pass - def perimeter(self: Shape) -> CFloat64T: pass - def describe(self: Shape) -> CFloat64T: pass -@t.CVTable -class Circle(Shape): - def __init__(self: Circle, x: CFloat64T, y: CFloat64T, r: CFloat64T) -> t.CInt: pass - def area(self: Circle) -> CFloat64T: pass - def perimeter(self: Circle) -> CFloat64T: pass - def scale(self: Circle, factor: CFloat64T) -> 'Circle' | CPtr: pass - def move(self: Circle, dx: CFloat64T, dy: CFloat64T) -> 'Circle' | CPtr: pass -@t.CVTable -class Rect(Shape): - def __init__(self: Rect, x: CFloat64T, y: CFloat64T, w: CFloat64T, h: CFloat64T) -> t.CInt: pass - def area(self: Rect) -> CFloat64T: pass - def perimeter(self: Rect) -> CFloat64T: pass - def scale(self: Rect, factor: CFloat64T) -> 'Rect' | CPtr: pass -class Vec2: - x: CFloat64T - y: CFloat64T - def __new__() -> 'Vec2' | CPtr: pass - def __init__(self: Vec2, x: CFloat64T, y: CFloat64T) -> t.CInt: pass - def __add__(self: Vec2, b: 'Vec2' | CPtr) -> 'Vec2' | CPtr: pass - def __sub__(self: Vec2, b: 'Vec2' | CPtr) -> 'Vec2' | CPtr: pass - def __mul__(self: Vec2, s: CFloat64T) -> 'Vec2' | CPtr: pass - def __neg__(self: Vec2) -> 'Vec2' | CPtr: pass - def dot(self: Vec2, b: 'Vec2' | CPtr) -> CFloat64T: pass - def len_sq(self: Vec2) -> CFloat64T: pass -class Vec3: - x: CFloat64T - y: CFloat64T - z: CFloat64T - def __new__() -> 'Vec3' | CPtr: pass - def __init__(self: Vec3, x: CFloat64T, y: CFloat64T, z: CFloat64T) -> t.CInt: pass - def __add__(self: Vec3, b: 'Vec3' | CPtr) -> 'Vec3' | CPtr: pass - def __sub__(self: Vec3, b: 'Vec3' | CPtr) -> 'Vec3' | CPtr: pass - def __mul__(self: Vec3, s: CFloat64T) -> 'Vec3' | CPtr: pass - def __neg__(self: Vec3) -> 'Vec3' | CPtr: pass - def dot(self: Vec3, b: 'Vec3' | CPtr) -> CFloat64T: pass - def cross(self: Vec3, b: 'Vec3' | CPtr) -> 'Vec3' | CPtr: pass - def len_sq(self: Vec3) -> CFloat64T: pass -@t.CVTable -class Dog: - def __init__(self: Dog, name_val: CInt, bark_power: CInt32T) -> t.CInt: pass - def speak(self: Dog) -> CInt: pass - def bite(self: Dog) -> CInt32T: pass - def take_damage(self: Dog, dmg: CInt32T) -> 'Dog' | CPtr: pass - def is_alive(self: Dog) -> CInt: pass -@t.CVTable -class Cat: - def __init__(self: Cat, name_val: CInt, lives: CInt32T) -> t.CInt: pass - def speak(self: Cat) -> CInt: pass - def scratch(self: Cat) -> CInt32T: pass - def take_damage(self: Cat, dmg: CInt32T) -> 'Cat' | CPtr: pass - def is_alive(self: Cat) -> CInt: pass -class Transform: - px: CFloat64T - py: CFloat64T - pz: CFloat64T - scale_x: CFloat64T - scale_y: CFloat64T - scale_z: CFloat64T - def __new__() -> 'Transform' | CPtr: pass - def __init__(self: Transform, px: CFloat64T, py: CFloat64T, pz: CFloat64T) -> t.CInt: pass - def apply_scale(self: Transform, sx: CFloat64T, sy: CFloat64T, sz: CFloat64T) -> 'Transform' | CPtr: pass - def world_position(self: Transform) -> 'Vec3' | CPtr: pass -@t.CVTable -class Vehicle: - def __init__(self: Vehicle, speed: CInt32T) -> t.CInt: pass - def move(self: Vehicle) -> CInt: pass - def is_running(self: Vehicle) -> CInt: pass -@t.CVTable -class Car(Vehicle): - def __init__(self: Car, speed: CInt32T, doors: CInt32T) -> t.CInt: pass - def honk(self: Car) -> CInt: pass -@t.CVTable -class ElectricCar(Car): - def __init__(self: ElectricCar, speed: CInt32T, doors: CInt32T, battery: CInt32T) -> t.CInt: pass - def charge(self: ElectricCar) -> t.CInt: pass - def move(self: ElectricCar) -> CInt: pass - -def main() -> CInt | CExport: pass diff --git a/Test/TestProject3/temp/b777c587cc21465a.pyi b/Test/TestProject3/temp/b777c587cc21465a.pyi deleted file mode 100644 index e70167d..0000000 --- a/Test/TestProject3/temp/b777c587cc21465a.pyi +++ /dev/null @@ -1,16 +0,0 @@ -""" -Auto-generated Python stub file from vectortest.py -Module: vectortest -""" - - -import t, c -from t import CInt, CPtr, CChar, CFloat64T -import viperlib -import stdlib -import vector -import memhub - -POOL_SIZE: t.CDefine = 4096 - -def vector_main() -> CInt: pass diff --git a/Test/TestProject3/temp/ba12ed409d78139e.pyi b/Test/TestProject3/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/TestProject3/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TestProject3/temp/ba12ed409d78139e.stub.ll.dep b/Test/TestProject3/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject3/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/bbdf3bbd4c3bc28c.pyi b/Test/TestProject3/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/TestProject3/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestProject3/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/TestProject3/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/TestProject3/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/TestProject3/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/TestProject3/temp/c01b27dbcd683245.pyi b/Test/TestProject3/temp/c01b27dbcd683245.pyi deleted file mode 100644 index fdb53f8..0000000 --- a/Test/TestProject3/temp/c01b27dbcd683245.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from fileiotest.py -Module: fileiotest -""" - - -import t, c -from t import CInt, CInt32T, CUInt32T, CPtr, CChar, CExport -from stdint import * -import stdlib -import viperlib -import w32.win32base -import w32.win32file -import w32.win32console -import w32.fileio -from w32.fileio import File, FileW, MODE, FRESULT, SEEK_SET, SEEK_CUR, SEEK_END - -BUF_SIZE: t.CDefine = 4096 - -def fileio_main() -> t.CInt: pass - -def fileio_with_test() -> t.CInt: pass - -def fileio_handle_test() -> t.CInt: pass - -def fileio_rw_test() -> t.CInt: pass - -def fileio_wide_test() -> t.CInt: pass - -def fileio_chinese_test() -> t.CInt: pass diff --git a/Test/TestProject3/temp/c3b259b4059f8668.pyi b/Test/TestProject3/temp/c3b259b4059f8668.pyi deleted file mode 100644 index 67ff4ce..0000000 --- a/Test/TestProject3/temp/c3b259b4059f8668.pyi +++ /dev/null @@ -1,23 +0,0 @@ -""" -Auto-generated Python stub file from viperlib.py -Module: viperlib -""" - - -import t, c -import viperio -from stdarg import arg, va_arg - -TEMP_BUF_SIZE: t.CDefine = 68 - -def get_digit_count(num: t.CUnsignedInt, base: t.CInt) -> t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/TestProject3/temp/c3b259b4059f8668.stub.ll.dep b/Test/TestProject3/temp/c3b259b4059f8668.stub.ll.dep deleted file mode 100644 index bfde8ab..0000000 --- a/Test/TestProject3/temp/c3b259b4059f8668.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -71e0a3ffcb3ebfad|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/c9f4be41ca1cc2b4.pyi b/Test/TestProject3/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/TestProject3/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject3/temp/d089e25a15c6f6e0.pyi b/Test/TestProject3/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/TestProject3/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject3/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/TestProject3/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/TestProject3/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/f5522571bcce7bcb.pyi b/Test/TestProject3/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/TestProject3/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/TestProject3/temp/f6b51804a0ba8ff0.pyi b/Test/TestProject3/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/TestProject3/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/TestProject3/temp/f6b51804a0ba8ff0.stub.ll.dep b/Test/TestProject3/temp/f6b51804a0ba8ff0.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/TestProject3/temp/f6b51804a0ba8ff0.stub.ll.dep +++ b/Test/TestProject3/temp/f6b51804a0ba8ff0.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/TestProject3/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/TestProject3/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/TestProject3/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/TestProject3/temp/f9d023d1df2bc9c5.vpi b/Test/TestProject3/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/TestProject3/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject3/temp/ffaf70367668b227.stub.ll.dep b/Test/TestProject3/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject3/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject3/temp/ffaf70367668b227.vpi b/Test/TestProject3/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/TestProject3/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TypeCastTest/output/78418cf2ee722f0f.deps.json b/Test/TypeCastTest/output/78418cf2ee722f0f.deps.json index e7bbdde..a783ef5 100644 --- a/Test/TypeCastTest/output/78418cf2ee722f0f.deps.json +++ b/Test/TypeCastTest/output/78418cf2ee722f0f.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TypeCastTest/temp/0035c95a18d4f8e8.pyi b/Test/TypeCastTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/TypeCastTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/TypeCastTest/temp/067c78e9f121dce3.pyi b/Test/TypeCastTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/TypeCastTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/TypeCastTest/temp/06f53cc594b4ac6c.pyi b/Test/TypeCastTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/TypeCastTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TypeCastTest/temp/14d33679f7fadf1f.pyi b/Test/TypeCastTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/TypeCastTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/TypeCastTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/TypeCastTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/TypeCastTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TypeCastTest/temp/6446627d4f07a1b5.pyi b/Test/TypeCastTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/TypeCastTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/TypeCastTest/temp/6f62fe05c5ea1ceb.pyi b/Test/TypeCastTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/TypeCastTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/TypeCastTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/TypeCastTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.pyi b/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/TypeCastTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/TypeCastTest/temp/78418cf2ee722f0f.pyi b/Test/TypeCastTest/temp/78418cf2ee722f0f.pyi deleted file mode 100644 index 0e4d365..0000000 --- a/Test/TypeCastTest/temp/78418cf2ee722f0f.pyi +++ /dev/null @@ -1,50 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -import stdio -import string -import w32.win32console -import w32.win32memory -import testcheck - -def test_zext_u8_u32() -> t.CInt: pass - -def test_sext_i8_i32() -> t.CInt: pass - -def test_zext_u32_u64() -> t.CInt: pass - -def test_sext_i32_i64() -> t.CInt: pass - -def test_trunc_u64_u32() -> t.CInt: pass - -def test_mixed_signed_unsigned() -> t.CInt: pass - - -VAL_32BIT: t.CDefine = 0x80000000 -VAL_NEG: t.CDefine = -1 -VAL_BIG: t.CDefine = 0xFFFFFFFF - -def test_cdefine_values() -> t.CInt: pass - -def test_bitops_width() -> t.CInt: pass - -def test_unsigned_divmod() -> t.CInt: pass - -def test_signed_divmod_neg() -> t.CInt: pass - -def test_comparison_types() -> t.CInt: pass - -def test_ptr_int_cast() -> t.CInt: pass - -def test_u64_mul() -> t.CInt: pass - -def test_bool_ops() -> t.CInt: pass - -def test_ternary() -> t.CInt: pass - -def main() -> t.CInt | t.CExport: pass diff --git a/Test/TypeCastTest/temp/7e529fe7a078cfef.pyi b/Test/TypeCastTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/TypeCastTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/TypeCastTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/TypeCastTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TypeCastTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TypeCastTest/temp/_phase1_manifest.json b/Test/TypeCastTest/temp/_phase1_manifest.json index 14013f9..450b5e7 100644 --- a/Test/TypeCastTest/temp/_phase1_manifest.json +++ b/Test/TypeCastTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TypeCastTest\\App\\main.py": {"sha1": "78418cf2ee722f0f", "mtime": 1782109471.5646322, "size": 6566}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TypeCastTest\\App\\main.vp": {"sha1": "78418cf2ee722f0f", "mtime": 1782109471.5646322, "size": 6566}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/TypeCastTest/temp/_sha1_map.txt b/Test/TypeCastTest/temp/_sha1_map.txt index f55bb84..c175907 100644 --- a/Test/TypeCastTest/temp/_sha1_map.txt +++ b/Test/TypeCastTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -78418cf2ee722f0f:main.py -7e529fe7a078cfef:includes/w32\win32base.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +78418cf2ee722f0f:main.vp +928c0ff6d8c69ec9:includes/string.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/TypeCastTest/temp/ba12ed409d78139e.pyi b/Test/TypeCastTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/TypeCastTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TypeCastTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/TypeCastTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TypeCastTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/TypeCastTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/TypeCastTest/temp/f5522571bcce7bcb.pyi b/Test/TypeCastTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/TypeCastTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/TypeCastTest/temp/f6b51804a0ba8ff0.pyi b/Test/TypeCastTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/TypeCastTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/TypeCastTest/temp/ffaf70367668b227.stub.ll.dep b/Test/TypeCastTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TypeCastTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TypeCastTest/temp/ffaf70367668b227.vpi b/Test/TypeCastTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/TypeCastTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/VRandomTest/output/3f7c5e78d8652535.deps.json b/Test/VRandomTest/output/3f7c5e78d8652535.deps.json index e449ec4..9b3127b 100644 --- a/Test/VRandomTest/output/3f7c5e78d8652535.deps.json +++ b/Test/VRandomTest/output/3f7c5e78d8652535.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "vipermath": "3f7c5e78d8652535", "vrandom": "62cc01c2bb770ca3", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "e24a7f4a875f4518", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"vrandom": "03d3ece355d95d76", "stdio": "285b6aa29a34754d", "vipermath": "3f7c5e78d8652535", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "e24a7f4a875f4518", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/VRandomTest/output/62cc01c2bb770ca3.deps.json b/Test/VRandomTest/output/62cc01c2bb770ca3.deps.json deleted file mode 100644 index e449ec4..0000000 --- a/Test/VRandomTest/output/62cc01c2bb770ca3.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "vipermath": "3f7c5e78d8652535", "vrandom": "62cc01c2bb770ca3", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "e24a7f4a875f4518", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/VRandomTest/output/_shared_sym_includes.pickle b/Test/VRandomTest/output/_shared_sym_includes.pickle index da7240cae2293bffefc6644c9c04f5b058bd9860..c869f8d508a82144c957fd0e1f652214c713fe6d 100644 GIT binary patch literal 416223 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

    _tdz>{0A~FWIBm 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 UP#lB#&L+#&Q`1q~%y0Yu0KJ=@_W%F@ diff --git a/Test/VRandomTest/output/e24a7f4a875f4518.deps.json b/Test/VRandomTest/output/e24a7f4a875f4518.deps.json index 9e2740e..8d35dd7 100644 --- a/Test/VRandomTest/output/e24a7f4a875f4518.deps.json +++ b/Test/VRandomTest/output/e24a7f4a875f4518.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "vipermath": "3f7c5e78d8652535", "vrandom": "62cc01c2bb770ca3", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"vrandom": "03d3ece355d95d76", "stdio": "285b6aa29a34754d", "vipermath": "3f7c5e78d8652535", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/VRandomTest/temp/14d33679f7fadf1f.pyi b/Test/VRandomTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/VRandomTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/VRandomTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/VRandomTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/VRandomTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/VRandomTest/temp/3f7c5e78d8652535.pyi b/Test/VRandomTest/temp/3f7c5e78d8652535.pyi deleted file mode 100644 index abe01c2..0000000 --- a/Test/VRandomTest/temp/3f7c5e78d8652535.pyi +++ /dev/null @@ -1,128 +0,0 @@ -""" -Auto-generated Python stub file from vipermath.py -Module: vipermath -""" - - -import t, c - -U_M_PI: t.CDefine = 3.14159265358979323846 -U_M_E: t.CDefine = 2.71828182845904523536 -U_M_PI_2: t.CDefine = 1.57079632679489661923 -U_M_PI_4: t.CDefine = 0.78539816339744830962 -U_M_1_PI: t.CDefine = 0.31830988618379067154 -U_M_2_PI: t.CDefine = 0.63661977236758134308 -U_M_LN2: t.CDefine = 0.69314718055994530942 -U_M_LN10: t.CDefine = 2.30258509299404568402 -U_M_2_SQRT_PI: t.CDefine = 1.77245385090551602730 - -def radians(degrees: t.CDouble) -> t.CDouble: pass - -def degrees(radians: t.CDouble) -> t.CDouble: pass - -def sin(x: t.CDouble) -> t.CDouble: pass - -def cos(x: t.CDouble) -> t.CDouble: pass - -def tan(x: t.CDouble) -> t.CDouble: pass - -def asin(x: t.CDouble) -> t.CDouble: pass - -def acos(x: t.CDouble) -> t.CDouble: pass - -def _atan_core(x: t.CDouble) -> t.CDouble: pass - -def atan(x: t.CDouble) -> t.CDouble: pass - -def atan2(y: t.CDouble, x: t.CDouble) -> t.CDouble: pass - -def sinh(x: t.CDouble) -> t.CDouble: pass - -def cosh(x: t.CDouble) -> t.CDouble: pass - -def tanh(x: t.CDouble) -> t.CDouble: pass - -def exp(x: t.CDouble) -> t.CDouble: pass - -def log(x: t.CDouble) -> t.CDouble: pass - -def sqrt(x: t.CDouble) -> t.CDouble: pass - -def abs(x: t.CInt) -> t.CInt: pass - -def fabs(x: t.CDouble) -> t.CDouble: pass - -def labs(x: t.CLong) -> t.CLong: pass - -def factorial(n: t.CInt) -> t.CDouble: pass - -def combination(n: t.CInt, k: t.CInt) -> t.CDouble: pass - -def permutation(n: t.CInt, k: t.CInt) -> t.CDouble: pass - -def pow(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def powf(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def cbrt(x: t.CDouble) -> t.CDouble: pass - -def hypot(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def floor(x: t.CDouble) -> t.CDouble: pass - -def ceil(x: t.CDouble) -> t.CDouble: pass - -def round(x: t.CDouble) -> t.CDouble: pass - -def trunc(x: t.CDouble) -> t.CDouble: pass - -def fmod(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def fmodf(x: float, y: float) -> float: pass - -def modf(x: t.CDouble, iptr: t.CDouble | t.CPtr) -> t.CDouble: pass - -def log10(x: t.CDouble) -> t.CDouble: pass - -def log2(x: t.CDouble) -> t.CDouble: pass - -def exp2(x: t.CDouble) -> t.CDouble: pass - -def expm1(x: t.CDouble) -> t.CDouble: pass - -def log1p(x: t.CDouble) -> t.CDouble: pass - -def asinh(x: t.CDouble) -> t.CDouble: pass - -def acosh(x: t.CDouble) -> t.CDouble: pass - -def atanh(x: t.CDouble) -> t.CDouble: pass - -def gamma(x: t.CDouble) -> t.CDouble: pass - -def erf(x: t.CDouble) -> t.CDouble: pass - -def erfc(x: t.CDouble) -> t.CDouble: pass - -def sqrtf(x: t.CFloat) -> t.CFloat: pass - -def sinf(x: t.CFloat) -> t.CFloat: pass - -def cosf(x: t.CFloat) -> t.CFloat: pass - -def tanf(x: t.CFloat) -> t.CFloat: pass - -def fabsf(x: t.CFloat) -> t.CFloat: pass - -def floorf(x: t.CFloat) -> t.CFloat: pass - -def ceilf(x: t.CFloat) -> t.CFloat: pass - - -class _U(t.CUnion): - d: t.CDouble - u: t.CUInt64T - -def isnan(x: t.CDouble) -> t.CStatic | t.CInt: pass - -def isinf(x: t.CDouble) -> t.CStatic | t.CInt: pass diff --git a/Test/VRandomTest/temp/62cc01c2bb770ca3.pyi b/Test/VRandomTest/temp/62cc01c2bb770ca3.pyi deleted file mode 100644 index 17b1307..0000000 --- a/Test/VRandomTest/temp/62cc01c2bb770ca3.pyi +++ /dev/null @@ -1,77 +0,0 @@ -""" -Auto-generated Python stub file from vrandom.py -Module: vrandom -""" - - -import t, c -import vipermath - -RDRAND_RETRY_LIMIT: t.CDefine = 10 -RDSEED_RETRY_LIMIT: t.CDefine = 100 - -def rdrand16() -> t.CUInt16T: pass - -def rdrand32() -> t.CUInt32T: pass - -def rdrand64() -> t.CUInt64T: pass - -def rdseed16() -> t.CUInt16T: pass - -def rdseed32() -> t.CUInt32T: pass - -def rdseed64() -> t.CUInt64T: pass - -def rdrand16_step(p: t.CUInt16T | t.CPtr) -> t.CInt: pass - -def rdrand32_step(p: t.CUInt32T | t.CPtr) -> t.CInt: pass - -def rdrand64_step(p: t.CUInt64T | t.CPtr) -> t.CInt: pass - -def rdseed16_step(p: t.CUInt16T | t.CPtr) -> t.CInt: pass - -def rdseed32_step(p: t.CUInt32T | t.CPtr) -> t.CInt: pass - -def rdseed64_step(p: t.CUInt64T | t.CPtr) -> t.CInt: pass - -def random_u16() -> t.CUInt16T: pass - -def random_u32() -> t.CUInt32T: pass - -def random_u64() -> t.CUInt64T: pass - -def seed_u16() -> t.CUInt16T: pass - -def seed_u32() -> t.CUInt32T: pass - -def seed_u64() -> t.CUInt64T: pass - -def randint(a: t.CInt, b: t.CInt) -> t.CInt: pass - -def randrange(start: t.CInt, stop: t.CInt, step: t.CInt) -> t.CInt: pass - -def getrandbits(k: t.CInt) -> t.CUInt64T: pass - -def random() -> t.CDouble: pass - -def uniform(a: t.CDouble, b: t.CDouble) -> t.CDouble: pass - -def triangular(low: t.CDouble, high: t.CDouble, mode: t.CDouble) -> t.CDouble: pass - -def betavariate(alpha: t.CDouble, beta: t.CDouble) -> t.CDouble: pass - -def expovariate(lambd: t.CDouble) -> t.CDouble: pass - -def gammavariate(alpha: t.CDouble, beta: t.CDouble) -> t.CDouble: pass - -def gauss(mu: t.CDouble, sigma: t.CDouble) -> t.CDouble: pass - -def normalvariate(mu: t.CDouble, sigma: t.CDouble) -> t.CDouble: pass - -def lognormvariate(mu: t.CDouble, sigma: t.CDouble) -> t.CDouble: pass - -def vonmisesvariate(mu: t.CDouble, kappa: t.CDouble) -> t.CDouble: pass - -def paretovariate(alpha: t.CDouble) -> t.CDouble: pass - -def weibullvariate(alpha: t.CDouble, beta: t.CDouble) -> t.CDouble: pass diff --git a/Test/VRandomTest/temp/62cc01c2bb770ca3.stub.ll.dep b/Test/VRandomTest/temp/62cc01c2bb770ca3.stub.ll.dep deleted file mode 100644 index e68134c..0000000 --- a/Test/VRandomTest/temp/62cc01c2bb770ca3.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -3f7c5e78d8652535 \ No newline at end of file diff --git a/Test/VRandomTest/temp/6f62fe05c5ea1ceb.pyi b/Test/VRandomTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/VRandomTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/VRandomTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/VRandomTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/VRandomTest/temp/7e529fe7a078cfef.pyi b/Test/VRandomTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/VRandomTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/VRandomTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/VRandomTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/VRandomTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/VRandomTest/temp/_phase1_manifest.json b/Test/VRandomTest/temp/_phase1_manifest.json index 7366268..d724d58 100644 --- a/Test/VRandomTest/temp/_phase1_manifest.json +++ b/Test/VRandomTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VRandomTest\\App\\main.py": {"sha1": "e24a7f4a875f4518", "mtime": 1782109440.0645702, "size": 4476}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vrandom.py": {"sha1": "62cc01c2bb770ca3", "mtime": 1782101201.2607212, "size": 12067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VRandomTest\\App\\main.vp": {"sha1": "e24a7f4a875f4518", "mtime": 1782109440.0645702, "size": 4476}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.vp": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vrandom.vp": {"sha1": "03d3ece355d95d76", "mtime": 1785318522.203344, "size": 12206}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/VRandomTest/temp/_sha1_map.txt b/Test/VRandomTest/temp/_sha1_map.txt index 9a0c734..a4bd666 100644 --- a/Test/VRandomTest/temp/_sha1_map.txt +++ b/Test/VRandomTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -3f7c5e78d8652535:includes/vipermath.py -62cc01c2bb770ca3:includes/vrandom.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -e24a7f4a875f4518:main.py -f5522571bcce7bcb:includes/stdint.py +03d3ece355d95d76:includes/vrandom.vp +285b6aa29a34754d:includes/stdio.vp +3f7c5e78d8652535:includes/vipermath.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +e24a7f4a875f4518:main.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/VRandomTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/VRandomTest/temp/e24a7f4a875f4518.pyi b/Test/VRandomTest/temp/e24a7f4a875f4518.pyi deleted file mode 100644 index 2825744..0000000 --- a/Test/VRandomTest/temp/e24a7f4a875f4518.pyi +++ /dev/null @@ -1,13 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -import stdio -import vrandom -import testcheck - -def main() -> t.CInt: pass diff --git a/Test/VRandomTest/temp/f5522571bcce7bcb.pyi b/Test/VRandomTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/VRandomTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/VariadicTest/output/067c78e9f121dce3.deps.json b/Test/VariadicTest/output/067c78e9f121dce3.deps.json deleted file mode 100644 index a2f81e4..0000000 --- a/Test/VariadicTest/output/067c78e9f121dce3.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "viperlib": "3ed8c578036234a7", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c1416dfae155d6e2", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/VariadicTest/output/06f53cc594b4ac6c.deps.json b/Test/VariadicTest/output/06f53cc594b4ac6c.deps.json deleted file mode 100644 index a2f81e4..0000000 --- a/Test/VariadicTest/output/06f53cc594b4ac6c.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "viperlib": "3ed8c578036234a7", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c1416dfae155d6e2", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/VariadicTest/output/3ed8c578036234a7.deps.json b/Test/VariadicTest/output/3ed8c578036234a7.deps.json deleted file mode 100644 index a2f81e4..0000000 --- a/Test/VariadicTest/output/3ed8c578036234a7.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "viperlib": "3ed8c578036234a7", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c1416dfae155d6e2", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/VariadicTest/output/6446627d4f07a1b5.deps.json b/Test/VariadicTest/output/6446627d4f07a1b5.deps.json deleted file mode 100644 index a2f81e4..0000000 --- a/Test/VariadicTest/output/6446627d4f07a1b5.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "viperlib": "3ed8c578036234a7", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c1416dfae155d6e2", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/VariadicTest/output/72dbbb563aa943b0.deps.json b/Test/VariadicTest/output/72dbbb563aa943b0.deps.json deleted file mode 100644 index a2f81e4..0000000 --- a/Test/VariadicTest/output/72dbbb563aa943b0.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "viperlib": "3ed8c578036234a7", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c1416dfae155d6e2", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/VariadicTest/output/72e2d5ccb7cedcf1.deps.json b/Test/VariadicTest/output/72e2d5ccb7cedcf1.deps.json deleted file mode 100644 index a2f81e4..0000000 --- a/Test/VariadicTest/output/72e2d5ccb7cedcf1.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "viperlib": "3ed8c578036234a7", "stdarg": "71e0a3ffcb3ebfad", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "main": "c1416dfae155d6e2", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "72dbbb563aa943b0", "fileio": "72dbbb563aa943b0", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/VariadicTest/output/_shared_sym_includes.pickle b/Test/VariadicTest/output/_shared_sym_includes.pickle deleted file mode 100644 index 1a3311ab2f9a458e76e32152ef01cd6e6784becd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 573973 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

    b9Oq^{^`Qd{+mik_8`PetSG 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 q!*6rH&VRf6=MMkRs{iM&{XchK t.CStatic | t.CInt: pass - -def sprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CVoid | t.CExport: pass - -def vsprintf(buf: t.CChar | t.CPtr, rule: str, *args) -> t.CInt: pass - -def snprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, *args) -> t.CInt | t.CExport: pass - -def _check_special_float(fv: t.CDouble) -> t.CInt: pass - -def vsnprintf(buf: t.CChar | t.CPtr, size: t.CSizeT, fmt: str, ap: t.CChar | t.CPtr) -> t.CInt | t.CExport: pass diff --git a/Test/VariadicTest/temp/72dbbb563aa943b0.vpi b/Test/VariadicTest/temp/72dbbb563aa943b0.vpi deleted file mode 100644 index 66fdc78..0000000 --- a/Test/VariadicTest/temp/72dbbb563aa943b0.vpi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.vp -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG = SHARE_READ) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG = SHARE_READ) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG = SHARE_READ) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG = SHARE_READ) -> FileW | t.CPtr: pass diff --git a/Test/VariadicTest/temp/_phase1_manifest.json b/Test/VariadicTest/temp/_phase1_manifest.json index 103d828..4817db0 100644 --- a/Test/VariadicTest/temp/_phase1_manifest.json +++ b/Test/VariadicTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VariadicTest\\App\\main.vp": {"sha1": "c1416dfae155d6e2", "mtime": 1782266230.8679473, "size": 6842}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "ffaf70367668b227", "mtime": 1785424554.7179716, "size": 11048}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "3ed8c578036234a7", "mtime": 1785439636.6696486, "size": 57646}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\VariadicTest\\App\\main.vp": {"sha1": "c1416dfae155d6e2", "mtime": 1782266230.8679473, "size": 6842}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdarg.vp": {"sha1": "71e0a3ffcb3ebfad", "mtime": 1781258888.113146, "size": 277}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperlib.vp": {"sha1": "f6ab8989f3545e83", "mtime": 1785882958.4542437, "size": 59045}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/VariadicTest/temp/_sha1_map.txt b/Test/VariadicTest/temp/_sha1_map.txt index 2b6ee20..e7a4348 100644 --- a/Test/VariadicTest/temp/_sha1_map.txt +++ b/Test/VariadicTest/temp/_sha1_map.txt @@ -1,10 +1,10 @@ 285b6aa29a34754d:includes/stdio.vp -3ed8c578036234a7:includes/viperlib.vp 71e0a3ffcb3ebfad:includes/stdarg.vp 748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp bbdf3bbd4c3bc28c:includes/w32\win32console.vp c1416dfae155d6e2:main.vp c9f4be41ca1cc2b4:includes/viperio.vp f5522571bcce7bcb:includes/stdint.vp +f6ab8989f3545e83:includes/viperlib.vp fc980acec33d69a7:includes/w32\win32base.vp -ffaf70367668b227:includes/string.vp diff --git a/Test/VariadicTest/temp/ffaf70367668b227.stub.ll.dep b/Test/VariadicTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/VariadicTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/VariadicTest/temp/ffaf70367668b227.vpi b/Test/VariadicTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/VariadicTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/WebTest/output/8046d45456d0b153.deps.json b/Test/WebTest/output/8046d45456d0b153.deps.json index d68f0b7..63011a2 100644 --- a/Test/WebTest/output/8046d45456d0b153.deps.json +++ b/Test/WebTest/output/8046d45456d0b153.deps.json @@ -1 +1 @@ -{"atom": "271ea3decb810db2", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "requests": "b558d8d8f01f4825", "string": "ba12ed409d78139e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdlib": "6c658cc728d0bbf4", "string": "928c0ff6d8c69ec9", "requests": "a2c1138ed2328b33", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "socket": "f742623d43c327ea", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/WebTest/output/_shared_sym_includes.pickle b/Test/WebTest/output/_shared_sym_includes.pickle index 39523c0dc9da48e0ad48165b4a2ad2b7090dd35b..c8af2d4378ff4ae73363a0904b02af52a938a35e 100644 GIT binary patch literal 443002 zcmeEv349z!mA7o`K5Y3ub6>WTIMyvEkVKYbTW)Ej=&<9&VHnM{+*2OSh&g;^!?6pj zCm9x4hJ_?t%Mu{T!g7Bk;aXUBHwWx;d_V}WTv?K^WPv4Y5eXv2-(FdFAD#n_DOPp4`#A9-RAvaR<{(v!S#N|g4b>L^pMKavQ? z(^5sM?wAkX!m)TdnQFwBW08ym{?FY%F*rEC=XwoVny~l%rxB@ZMPo9j+-bge+xhid`MoOy|u3CU~*)N_{EnSSoeQ~^OQzRNZ5)AuD zA2sRXqWZ?3#2eF-sb${SbXsXn)vFpgB*%Sfv2fL>L`fsZ>QFE&ha-5G$|*>neruSH z1QH>cO9S6)rse5LISTDft)zVXGbiIpBmt7rc*2ErL+?8 zg@Qh0wIV9VBB5jST=fE~6Qzp9qX}LBHS`59LrEc}L^v1;)8~5n4Ea!r&^IUo*9$Zt z>Q|_KTuqDTsU=6(meUtbPAz%*1&`%?>GLXFJ>i#UaI2RH$MBBT^jkdYBOyWlq^wsZ zm6s)zmy^m~t+XlEB$aDDN>5VR?NNHUiYWccUcD;qrxcP@s|==g1+F|i5hH0I9+#uj zL63YQ5j)%`$BxD$Gl$2czHn^hWba|U&K>qsmce*z$FZ4US{b6Jka{U2N#(kvGU`#r z=!bESGLcjcc$9-4<@%&@h$_jA^z&i*`wC@J@h6plN0F1tR8l#TRFtF=Oe*ZOax|%g zlFD>a2`80^&WXgS<)^lxmaT%Pa5YV-Es%0PH9l&URW5N>R!Twu;~I^zbqhEPSFK5M zK(9g>bV~2El|Yj=0$uC%`r?u4px+ypV{tEagx;7;HPfoOpM~sJO|q$F!S3zUweYVk zY5LmMN?&D7*j7(gF4uaOogSrSo6<`9*`8E7l1gV%>6&xPU#OUqsFcPUcNx_<6mwe< zwaBKJ3%!|5ThL5xfi$PKV4MVZ_@F$=|HkF%nZrI`YkQ}^Q||Qn+IF^gw~J~WmS>d7 zACi64qgu&&j#{MLb!HlLDcK$eVAJTvnqtx=59w0H9Ic2ml-PG()Vj2awET-j)N;Gt zA*V4>qOvdGosz?TGHD#BLAEX7jfdV-SUpMku3h6%wgO)xT;Q;M$r@f1_?cK)#p^BB z2@?3mObhP|9rvA#c|#HZQSVe#c2>)COoq<(tjU13f6-hxqoKnFK?;y<;%N}HDE#@1 zv5HswHwhB{@}BYGp@ClSX#Zf(_5FR0I(FwnqB<*4>R69c27X*O8WT@;VvdCX@Ww?pmMdbD2h6> zp!{3548G~03`7mA^VOk9qif}v>>TW~4(N*-X6Df^)>xBmq~*m-39v2n%|RiE8hV{= ztOrFMf3cVIlF(*sbB14Rx3fYKH5|#)jG~Q6nBT5I6lVn@%0yRN%kr?(4O|zvv2NhH zz%6zI*9C628@MiT+ugu*fgA9Z=&c2hPOzBiaGB?f){N_i4A+HF`ACI2$7cP1J+79>X|ueSt(6R--Ms)Rq9HMhAeqAi)# z_sW6!ENBHjRT+a9ndMTXa%rl%7fxp51s0Fth;VHY7LU!22<*9~H1H7Si;!^Q9(3C1 z9%M6hovNXhVFV6bE;km z9#OopiF*vYl z{#|ujH`w^PUZFX`T{mX8T&ua|XUuw^72yJ4`kQk=Hjarfe#^9Eu~CHbm<_CjE|l;5 zzngY$otO409|?OCHbd-Lj7*zN5VUWS?};e15u!Y*umk&ooU#ln0#4RE=C~!g*-Ja# zk6`ocOyqd07hCwP4Dnf%AiLj<3%$^Ow?(1bY?&peGf_fc(Xw6A|uv~*Vsqzi3Ug}bl6hq!vj25u0&?TK~5=X#L14X){fSlU0rhLWXG<~ zNyFYBef%Q1Fws)078lLwJ6RNPK2=CTWSGC24Bxzvux@ayBaYX1cY1}Bq!2Q~NY)U^ z!4csUDSV7Dip`)nFg`xm@9p>W4fKef-liBb!nmSd4i0!Gt`}S{DS(VMM;F3af#Xn5 z@382G8p{-xZI4SFdq#(Z*GsHUh~n5pa@;+zw=|U!%Mzl9LSY96M`#^XY-fqJ2w@yY z#!E6Gj|B)zjxJ2d*A95bOSR}=$$RRE&f7i-AK>gl90qavXwlCDqL92Zx|cz>6J?2p|R11ryEWS zjYBk#G}1G^&pX&J+EmAMxTQQRT^K_*jSTjT?-?E)@_KrNM`PV=!_<|5bkAt-zEY6f zB9LS?%^n@-9~Erkon^ytsG`33&1@rP$l6+g9?=m>DMF5Q&2)oklV`lIZ@^3992*!G z-3Faw!*oAQd$}Og+I>A^-m$TM(Swt7ZD_jD0M&qF&jHbsBIgOD$i+w$MT_x#fgHIQ z_YCz2ZeuSHNRf-t(=WWyxzLWI3v*iy+{bu$kC%qif<<|e9ZeSonT}a|$oL;Vrvu}7}_n>IM)2#xTuGX3Isi2b3-DXGEg<*9g+=!_)8rwHK zD!M(|ZpYJw^CIdsp5j|wgt4<4RZA|kx(yo35;VG(38dMaL(^LVu9w?!b)n_eE9joV z;U3WybcY>J7gV=NlW9p>+$-#ex**V1xyoA-wma?Ey3oHY*Vv8>Q_CxSf~dugsS9$| z6&QrQqH8K*M_P6=E)dmQU$S`n2KMX`&b3V-*CuQlR5zE=guGw_zuk_g8`JSQM0blO z+F?i3h4J^AnUF6&?ej+?JIFDiWKNIPwbcc|uFB^t+^a^U*Wzje+Xe5xxY9s(fqOD; zGLkJ5pGIT-UFhD8Mz#yx&(X+sp?f^8H`L#<@O?B2c%gei=CCaTf5;rRW#Ac^V_5Nt zag1^W4~InhNaoNj2XD!Z*`~RC{3df`ToxXbYqLTw4`0f4S;FPwRheUBm5YC6PBktE zPs`@4QZIa;%bXfqF5Z_pHMorYFmsIQGVsXEnYLT_zL|NVUEp4td7@p|{+fBBUErRZ zIrg*eBPQOPNTd&EPVcJ|E`hU+NN-LH5ie}N&J9^>QWtSaTv9}Oc%EhE%%`+ULR_S; zXHI?AymA)0*JsXRzs6X6i!IXsGpGI1_?Do-7U>C^vnHHFc%l1*nk(``_YTb&6>D-X zNoy_APjpMRo61$~lJFMkF`8qNXuKD`@2FY5L0!0KrARMQbIV;0{-imA&T+V0(4M8% zlozy*X3 zq!Lalkz3L@>^Cu)s*KAg;?{zt!*;8Bdlg@Fma~T!z`63ZlaatlI{GbaT@ocy26jOs zMSvBj3$@;;@3?m|F=bNPl~aIF^XYW1R3nIB3(1&T@XB z8Y9{=U}kwVI}XlvL729pNjb^;$I~|b<8p6Lh>l?|f(c|PV(MdSddK3?gg>6`W%si> zX!A~w(y~oyRoayHq|%X8Iz394Co!q4qtHR?lgfsqvN5S_Du&fTSrnm{ncMkS4#bTZ zZi2*J=N<7yWAa2aWZehOQkip(0`A_P&Yo!W4U(t!tu;*t1M{Oo`H``0X_j-b-FUGh zt=#p-bio6Jm(h7Rh5F=kxx!QwSz!cQCJuB40pkSeOtY#pV|++47!2EtDCVd-x$4le zD1SamaUg$0mlGua<=#EPa9}r$AV>wG&a42v;V?>HZz&dA00$a?sC0rfVA&Dbnb@^c z!!@ZFJT&}MFbT@8>qksFK|-vYiNu^q(Yo^HR^?W`moHe8%TvVga}p%tny4I-eGVrw zwYmz6tYAeIVUeB2?48oD>?PCBb4z-wvY#!*!H7k$;xhw%bzEdKZ|I;sMi4tea<1Dq zK0e|d5g+Fa$BI~Slt$(>EuS~ll99k^tC`ydPIC9e9$G+jG+1$dIu#BTv7+fpIQW%O z`Be!y7LV;H!XVt^Kyh*OMwTsGi;md6Ba@pmbcN3srY!Q7B!RPs>$2QSGmV(CeFI4n zIJLMbTMk8>V`OiF=3bRlUY1l|P76#|)3nbuN#$CP(vwtndz4;}saN3>Ljq^p)@O+q zYub%{)ER4mlTNF$tcx=Hlxumm=$0opU&s#q4i$$s6_r2t#2(9DGfX|PA3G~Ufs-&B z^UBce*%(&UI8txSs7Xlx+SgoOz^Ri}7;p&%_<#B7wlG-bj1 zR|stb>!}#16^x&pvC|0=>n`RQGQplOsageY%17dgjW(1=DKx0s;0*=smTXJZLcg>-wNc z*OyKOtlyzLe8JhHFajGjht?I!D&4ug&}7aI)+ChIP7+EE{q;~2t4imM@d!;v@2(X5fo_$RwVd9mXu6j;ZB z4qYWqhnmRyQK6OI$&>brth4k#Trqa?4ax<#Lw%B5hqb}*es&oa4NcA}h2k0%$rdT- z;6Cq>uxpVIUM@~0s>1PzVzb6PH&vh(ggk=^?~YsSTpTnE*9g=CB~Fpv91U5t24PVP zTrxm=1Zsgl6q(;HS<(VNeOjn%SZoU%v<1E5w4m183pLo|Yz8CS9PnT_zPDFYEUCah zb;jCqZoWJgcN|E)U!2tIyhFaDvSW{Gef`9^2TdPb6dE%ygQfTg7J}_9#bO6E;u{^^ z^XV?Iu3Z)`%UTr4E=IcS1qX?Og*~Vc}3mj;HEL;ml=j#}k5xpApnD-cqT97@d z#eo(a5vK(Wx=}dKbpvQYp*4d=8^Fc}2#S-n*6#0~uWw^cjnADeUaa)XI24V*&Fv+}}10eiD)}FFBkDn9bozL~e#L2m)XODNl(?33sDPAYx zwh?dIYX60_wD>X9Yc+}#(9FT&RKdNM1wBp?OWKlSeepRqj1Bin-m&q~{+=PhG!YKp zlID`))2!z-`}U3sXNhR|mMq;+Sk7{^=b&IouCn8}toV{_7#JBD9UdR{j`xlTrioDh zmZGe7k>*67Xqs#6Xs#?iO{$lJUTCfGj%2MJOBY%nYGl2my$8kzhWdvE>+Cu^nrn(L zOwb(j^p%3+k978x<_h4R$8Y2D`LENio~DUE{$S73k{eUwq8I5Vs#w^UeP z_8Xl>xHtQ)jmHw<)=hhw4e|?mFEvcx92Am6?R=PGEq5W}UnXaRS&CyfE};ztve`2;ASQ_mysMb7k*xRulraed|E>Aby+%3nh;KihuO{=rA5x8y4*iN{#dyE}4l*$dxN=4u{ zDr2d*w3~{(#!xDM?yOVMNk$_?HLmQY!|w3yROA$;Nq@p zad~*U=d)ed4)57ITLymbx@gP8{XK_m8F;~GMi%Aa46oPQvhaz|%C=lwre%`te?93`ni8B9rmD-Tb^6yb*9UZN$9bGMx6jGyW(m%Q5*i103 z4AE`@&ph2u3q~7FRS$T^N5=#73a`&O}es_f2lwsVf_@dTQzCIoNRo3#)N$oLVJGa>>A;#{Y4c1_658Iy_AwiEUbRpN*aAc%PF;IL;e z{&&T0O4aoaM#4w%zqM)nv`QF}0R$1Qn{b!$%8aB7Gk-y4ewH}qmF|hTii_D=#Lb)d z7#Hyn1c|tci`X57&W`u&mHIrD@i_t+A9T-(v>p1isx;3PN3)jGbghxD@13BTnwHLS zyXJYf%J@8Cj9EVhWG=*8Ox5&azQT?u&sLJo7e+KyvuAAJhJG&@eJ-$Nw&PmAD$xtX z5v>~B-6Nc4Or?3DIGQyW0=ZUG3y$~xLM3~VII>lH28VlG8w~9UMSM1cp|nc%VsTWf z`-UfW54tp&TGQJXNlb?5AT6s|i@Q{^mk1=w<=X8^o0O{U<$~=dy|H5Z8I|o;acpZi z+ZJ~M{L)B()1}_kn(x1;e7A|_OGj?I(dFoT+gfe-eoy7QT{K@hYu-)1o$WS!pH%r? zDvochs?V)1)!%wepv}UHNJIPr)oFj^gfkvr&z*mt?m-0p4E=<$5p}z-zHGP zo$c-trtZ~_@RwD>-2w^o4%S7&m@c-j!{1T~BOIL|3D>Dzt!s>Dogn|YO8H8`lwGXG zD&+$8_!*Tl;^&E!vWpd2rCgvUS8w6Ny_bojT!rN=cT8n%CB$xMyI$pr_<(}MTMe!* z*~>KPh-Dw!!R=O+?bU+Wx@0wLY;A|PyHvJ_fG9||+zrk>qq2@m*S<&EuM)mi9N{`u znO*FWG<~+SI&M@cBi5rJ8FR|6_DG;yphpU+ly{4xyfo-e+ssy@bG2F>xkcrOK$e2U zx-95Yo6Ih>Bl#wkWS>ZqE;Yrh!;a*;Rg#FxDNK@X&0g%WBl!`P!X|~HP*EL&9?^2bgM;y-@;@Q&a7ExPk?<$q( zuvnsPt!@#uwfH2J=!jUNo$YQBwYBV@Ri+c-m{!Mvr)0O9BU@weUX|woaXf2cZW6UM zjUG^m9u!BkZYCZLkXh=MOl_$?tWv#R9MxKCc!{k`Olit~ARH$n-^RdyOyzq>9N#+h zG%gaZ!?)#U z^O5RdaYSoD)IF1FrybL?Ri-#@M$nj?Gj-2o>akZ{Q^ALt+e-Q zl_}2C5hT+(&eT2i{Wm+R9+m1VMN@T8e}8O8^%W{r9R4Fzs_xnRzp31IM&DF0kRBtklU;)L~Vm4 zrVKgrIGUp5+LYz&mPZHsFNA=!=yOu}nF|eu*`P5O9}_cW%vzEJ2FKL1hFhsSO5TJh zC|1%oW-UnqLu4-3WDVA?srlJ<#7((NlE6rrda=6}Fq2(jN8FgTBnb?csh7E%Q8U@K zcEnA&OOn8#nR>Ci7j4mQGCk9>saZ>sz#y89S{*MzEX`D2-jXCRs-~WI34&{8cx!n} zlE5&VI`0xh+syFR@|GllaW_|JdJZ>S*TQeIx7syr=IkX&U>r`pZ4(@hGt;oC`AU+& zxSYD8yBETdeZo%Kd3j5cz#yHvrnwrclYPaGx;cAE5*V^m9~-$Cxs!d{j(dLQk|Z#2 zXR~gsyDRv|?Z{i?FG&L9cj}7gYEVn|dpr8(>?KKHFwacsyGy^uW*RYNk-sDf4C$$N zaIQu6WEIOUVrrd=_1=VveNpR3i$!BtxB!PiK_1a#7c%hlv zuH`LB0wag&GIuk8D7$Soeb3}BNdg0j>N0mPo+x{l9rL`rB}rgZQGE#EVsKIR5j*1f znM;zu5TknLE=C$+t!;|Vm zMp{>OX>+pOF0#ywteUkX2@F-L_p6k(=m-KCJ5I}6k_3h=&Ef4<3um{*ESI<1z6lIr zn#0?z*3E9mSuSt2Z4(&IROiiuuDRnaVz&V;!&}Q+k_5&#)h#&W?N$Z1T|&>#T#^Jv zJk8DAttxJ}KP_XsqS)0sE-(gaE_1gkx!ry>19P>O3yg}YTW?hAuEnup@33)Y%~)@l z+$Bk1h*aHt;uYPsskjf@kvC^ANdn`g=49_)bSrk>9N25wOOn9gsX6T33%$r5nge?+ zdr1-)NmXah`&ZXA|FPNFXS0_ifnilMt9Cto4<=y|BrLwpQ-x- z1Fq)scd_y>x7k;gU1cWy%hY~>(N}fL9xG5T4czVaNoFj2EpJH@7>QN4@{qS%mc8A! z$&8h!XD&$sqq62QcgwQ3+eT?%u3Gj2Bed#09oIM4db&}&s&39+k_3ip)mu7M>0G1l zx1(>7za$Ba-I|-fi#=U@F8nh+oxnh@b(%Mw=y9kjU|3guGoA40u9Qurl zbIo=lR+lo*S!9IREN8cBv+WdYhO=s=iHjJUrO#+23PoZSp9%j`mIW#*hSxl5A3__Df1O15|@!pvso9&+-RB!NL^b*-mR z3$8`Zu=N_q&s>rOhN0E9o|wBA_Qoz6ZAR-exl5A3$h0}!-HU@`Yo(fUmn4C~YIAaT zFEEa+wQ9;;k_5)D)pIXN7~71_XL6S$fgx@6sh`qBw$1p4WwVzgfnjcQ*}GTeZB1Eo z_L3wp^lfhT?p1nQqt=|gBnb?Mt9P?*28*55veh$}B!K~P_4ckLadI>5T_$%)5*RaA zw`?i4YAHhJW-QyB{3S_XAYHxEk%i@6cv3&k_3j;)uoT_#zp$Sv!id3 zza$9^va8qpg0XhrUQw~60{=Y9I;lcgpHwy^m5oVdQ&QP{Q(8I8qnw>o&Y@2i(*GBG zl&g};%aY2=De2Wpn{rK3xz?lfB$eH)3gPjrw7~Qlk|Z$puAX~ILhxpqzfA6uBrqJW zUjIrHl{aJVWwVzgfgyTx*}G@%*)B1gvzH`+VSDxLOB1~}Bl~Rjk|Z#cuio^QD57ts z!KC0)ze<@^^2vW4i^+B7aE|7zuc#w#csPpZI{lDXSNd zB!TgPb%!$1VS+Q>WLn0OBrsrbwJLU3cE)(Dj5{&`B{Bu)6ZQGD67VQ;QkhCBN0N$? zRDwx`C6%K|C6rXAlS(+LL~cnZ-k6?DOs1-5qGZfZIU<;<^hJ;COtWt^R#dz(?Nbd} z%d-;MvdW5zZLdq;lHRK9^e8RclvX0zo>V%LO6O^%OFB0(X>Bblm!_)5;=Z_?ep}k^ z0Uo8xL-)_YtUj&mE?DaHQbY8==a#fGl2oosDx)4{jD8sRC=*HLfJZs#QLaxahsbij zk$yf*e_x?YD*ogd6uENMX={Vu{>|!?!ITuZ^6*4Vj>Zm;%hBneM?R5=9qyB3N8^#1 z!{bq3I5u*!m#)R)hY!k={BK;Io;lpw-7(qe^R@2swY7J3v*HyYH}W;0uZ4Yu|>`3SN2kCM(xa2 zWj{3}yve7(FUH0Pq00qnMr|xyeAS>fgxo%~Hl%g24Vj~5;GmmA$a6uOQaO`|$6mBX z%Yy1kY^Epetrf&U7o-MNQ;zjOH!(EpRkJX3gJaRem}TH#J8f;R7l@cHOfQbe4%-J^ zFLX`NP0x3e`+uer(JvNMlPhRgWH)5Nn5UMHd6t-02+F(pK%jL&YEnHl6-vaE`Sc^Y zCb%>DEpJUg1a?81z$dpNJLX}1Y9m(TWC;5NhE$FQ{Gyn1KaR+bVvN?=_lT{{V4eNY zSxE>Smue+ZjL|8pxX8XFs_2>noe($<<4e4e9Yq<9v8{%pxHS7Me=Np!Ix84~!w$ZY zfSQS-4nEif=lx=~vw09WG!jmU>sFP~+GeM?HfUB9yTw^K2(&Bpa+tSu$==7ATN;<_ zE<>q&*jcFvG^4c6bN(8j3IKmxJjV9Nziai^Z%6MdkVHg>qMB=&`61b6NX$ zpc6RWQ;<$nPDN#TJ{=GAVZNP?h5K%KPs!l4PeBS$9XlB#4+b|?z`0vWd20dA02QPK zmGX&Td_FqB)QS7WmY|Run1ikWCxQyn0Zhz=f|EPuKNw-}C4(l@EwJ~)ys_JVVLt#P z%Ud+{BG}FBpE-AZ%Hcu&O`m#s#92uQv=K2U2_-19smOj~D2LxUD+hsg5vHI}4n;JN z*v3m7)dPXXfZhZY)h1w9JL4^|`_rXe++L9Roe>w<=EL!t)Z9_eKfkFp=bhRaO|7l) z#r(mbHxxN8NBzE-v!RY7rtD9UJ`Y3g*sFL~Yqx*r)Kq7n+uylM_U|g*1k&k3c1lVs zwZzPf@KRf`m6saAm)GHAF?=-(lWo#eM2^SF?^|3|VCSe*5vyDf)#^a-NYJ6jjdZ1k?_?LRRSiN=ev)te$Hy%cQ%I5P^=2>m)kk{p3>0fJM2x6Vd66d;W98$sGef;l|$Lq)*-e zgj=HL36}bdv*Et;311Pt`%BKszd)eW$+(Nj^PA?+SadCz-sS!J8JPG^x7u8_&3@i! z?!nhyqLV%siPMl;RYM#eJEyk{CDD^#rDC$GQl=+ z+EGL8!*t}BGam?x=0S{lEaax)QgOns^u;3-9JW!Ls9m9~qE9?X<=R;evp9nlA`v#? zOK}0@T3fo8iLcm_4vLfHJIJb^(~&v^WQg*aiOQo9}B zn`HfwO@(BQI1a^-wR!NzGZq;@_l#xTB2Ly-v6+y=?UH)mZRy*m4*)AE95>=|7o6x7 z(ZHMa;6=XF*CtL0*3oQVFnnZ3$u^jzY~O%yIw{_gXW{J=#lpe9r1k|b~=i>~=4*w2#D z{G7ZcN#O1ly}2bBxZ?M&$4j^q`*zMea)iJgAGsyrhVQpt5?^vw5(0NYP~-?+A?c5+ zn<3caR1}%95qrW}!3f+KU?>!)0e__Bv-pA<%g^Qxq=y5VH?bQDhs6yPXw`KxbOL zwz%d~%f4C^DM&9ItveN*p4K~+-Ofrvpj%#UNx0~p$BsBF34yL^dPx-5V~yR)tA=iPzKMU+ z)#EMB3PqrI7M(HAhbqN((qf-B6w7A~#qxl&ViD-Fl%p&29o1+2QCiZOk8}{pj}0aA zGiN0t&`n40T-@{4VfB~hb}~)$%|Rz4(0PSIn2w^z=}rgp zSkgYDppnaVC!8s|b9VLfIA+AZYpQ)xZg27XTKxXjN#ijiWYGtFai6uY%3%Lcs+#5& zkHl?GpJa{$X`F%QT+*}`l|4uCJH&ZYrE2{?3M?0l+r%R)lTxUP91qI@>zc68!zLt@ zk)(26^33*So>t~^z)7m%Sdikx1|vI4(rmKLJE$)4FtKb4KDtM=Mk8viLbLd8JMSBC z5?PkyE$K63ct$;6)4{Qxv55bu9PbGPoJ}D)=Sfp#jw2;^wzqe7wsr;Dr*?MvS|&RT zk&?HvN0*agSUKFY|DY>{BBnIkMN&G04#4b2$)3Oq71MRPppzbZy3F}ktgw@RHC-tr z|8w1u{|da2IQg%&<-eXHHWlLUk~{hNLixMd`_)jB*=K8EyVfaONS(slc90Tj0n)do zYL6eF_~o{7l1tUn4Qv#t>8Zx!`+`T5#gdpLpV(7g2l|FGUtDj9e*+iK2gvhz;DpsH3(S5t_;|FuCO-(77qW{+43)o zHo(m>Vg12icsw{QAMiQb{_ni0Z#6abe`hCVs_GjG?k0z-yEOgLOc@KD{`jm(e|J@#W{l&$Xgo2$5a$#Gt)-LpymOy2)oVy|D6^iob-ew(yw8;G%xfRcY%L+F z1U!nIG%gF-9fkvYw>KpF!VWb5A7|c*N;OT`(-iy*{Tt z2Uz62z_7H&u>F2}r_Z7;d;GKFS}souiZMsWI-IcieE3rDhWcE|a9DALX_dpE6{j7{3k8_LGZuWkI zL2HUMlgDo6?WQ(HXRmfvcLdH^87(7!BpjCg&b)VWDi5E`%;`J$M}Dry>=kEmn$yuV z=e6Q0&PqeYiIH2KqY=~G^@XcX8)nHD)n_jI)f|{-yGx}$QQ3cNQGME!Ym&;f9;N5> zOY^k(zEY{rWYG22XK~@B_zN$4#OaH1a1aW{;_~A9oOT-1em(94{nd6^IhmcwbC)UJ z`rN)!sfo|;muK8EgRzKLuu)kYJ32Cf_lwgO;}jE}l!{4*NO3hrH+S;}Pnt2D2|Cuk zXcwCt_KMd64T{sLwZ>spFj3Nu^UeN_ZVDwXRPp z8BCf`)GSrxGJfhg_^_*pox~3P@;Bp7;g1X^& z*XT<^D_pbWMoXm?N<0!?)QT6WeLpTvE7lp>iefwCu}7SBrUL!W^415-#|h22!qKzG zJK*UbcVs^}_quDeQFO@#A0ML~sqyU;Oc=-VSgqqp>zyy;*?Acn7xK7o<=FUWf6tI$ z&dcpMyWoyz9Ds7peS1fRQ^p}fmST2YuQ}z>o`ZsA+-yg9ncI3jFfuYaJU;9l?;R1$ z83!g=3b|So=ZQYioLAX#URiw3`E_~F3*{ExN8xZND=`nf@Ivu9=eOD3(cS~&14I48 zf^~b19qH<30i?$~eWf6c!>=qQUF8DljRwPeY}h;6KQY$d)7LjDSk&umSWA_~m$b1; z4|qV=+v7PTm@KRP-rTFx76Nbi4v{uN);n+^Is;5pDUI6%8W zO3{Mjz%naw-&zIgF6@{v%DhZA`xwWQ3xDU2iSGj624v#9!1n|-<~Cr0J17MHwra8F z=I(n&fxlOe_4iJU4vZi2_Kc5@4(y&7?;jJ)_Uw6t|DN*i>fY(|%l@{uK<6%BmofZz zswO;G;1CE3gtV<-AS47qbtw?gc|rprrPhRI#$wM$|Cv<{s=B z8R-|j2l#wyLI2oJ<(Q3d371n-=-eDlUwYs2-l0A}=MIGN_!T3>HSuP_LFj0bMAMa;R4NkI8lsdP~tK zrmFY#c=`tW(+i_7sNFL#*pF#F>)JMpFN*Uu#;vBFpeb;CFmjx>y2}XFY5h9Pam1MU zbp?mSb_L4={M3ZSvPew2Y6p!S8XNB)DuMRnfLNm)RCWB2?6Zl=SE{J@f{zNRK0Xu) z+nx;Q*p+R5HD7QU)Kdd^a(L>XEFZOL0n4KtDp3w)T>@3d_eByf!3N>&brnl0@b8Qw za}_);Emd=TC>Tz}?Tmu*s1h~DX{sn}qe_P?vQT5PZZPJ_GgZ^utN5blZckg1y{L;yL6We4LJ-*+B74v^ zw#~g0;aKoUSPqOSk!akGcBe`kTPOt4ZY)xKM9aFs94{r6_cl=kzAKvi)zbp(!v8gn z&G+nWcEA+5dWabzZDI}ff9^X)tq6=E+rb9!z`Z&lQwW{5CXB870aCskL7 zN(w@PCSp+|lweXR;<<1LCMQTE8V4i3z+iAP>WiLSY#v^Wkp&Set^~@k*fi*V%JZ7N zDfT&Vi1H>#8yfaRWm#()=3_W4jx;iJdBxTSM7R^A4NYWAj-8~CwA1z;nzIZvG`nH8 zlL6;4s#u(X$TK1l%TACc@af2i-xpd`1PWG0hWv}FgFyH?L5i?uPcX#&wZ|j#Y#H<^ zh)k&1#Y5+f=eid!Oe_M~iPDd(R*Xk|$lOu9; zDiWRch5d4GB!LZqj#Olh#)b0@q~$$pdA&Hb*qE;tG!A)HLJs?Fe8P)kbuKE#q@%@- z8^kF_)mTWDXXev7=z;3zJ7c*x{Ky-A92TbqHCzk&PdL&8-H^}~f%h8OV-pK4b}c$e zIBOtYAxu1Eb*)`2p7K_KfH)OcqX#xrLp69Q z%Hf3Q00#&*Z8eB?DX?RuXJT-09<80n!Qm+gFKtE9jewn%ot{v*R-aFDWzE7|?5%JlI<4~mw;%wqEt-WIty}kWoq9ceR z!m|}qH!A2Fl_;WFc|F6_{ti!gL^r>i?D)EHzQ}5oZx5HNx3AwbAiT0}wxe5B{K~pf zrAy~PP3+k-&^yrY8Tam{kHRBlecWBnd6IsSgk@uo zyUSWX5LAqV0zKl+8N`-J+lO4lZukXO}~w7J&)!%Rzq!p}Y6>(;oFEz{S1%>}tD$ zuzLwf61bsXKP_A<30kul^u^-+(WqVg|2a*guwjtCDyh6Isl1$qSyz*H>NQE_T949` zRCar;^ny}IlE9tpdBlsguboASd1fCPOE@bBft$GX(}*+$aAiw3yTe&A2;9A#*Edo< zaAz+w`y$s5&AWqr*;&B|+_-zTaqve4Q?zZo>~UTengy=i%aOKL8&I}aR9@SB~<*$14Jg1~)Qd6fcIWs!Gju?L+Mg1|jV=No%Yebp6@WmO`@Bh$VmRQldw3aW{`c%7{F^>N`H!~H&;?dj=Fi%Bjw_@n`fhy zixY32g;q8$y?M=AIXL*{RqS$c_sug#%gp&V&oQ*TT!Hf@r^?YWxXCaKoyTm0lWjK@ zHXhJ(^8h~0J%HyH4KY3$w74a=zPKPFIVe<_xwuC$P)FBB3;^bcZ*HtMw#2fhiU z*>DXX*cH`~D9{M$b#pQ(v~F$|%d$xmW++HUD2TL?E-ejDpWiRfi0o0W63cUCrbmg# zgVS;(A(E>kmaDG2Qxxt$91++O-6)pl>LGc0$QSk#1w&C9}vqGri0cnfosIs(PYlN?;aLQb&G-O z6fM4+6?RGy9;6FHssm{{7`s!PLE>Vdowp<`9CWH)4G9Ek>K(uI!Y^u~gxM9TLM zC8Hdh3DL|;JmTft1vXj@Jwk`CIV$as_(F2bFH*jn#gbi@Rq0^Nd(0OK2D~%mj495Q z=~A(TmuCsngt$lp@+z@JbNb#ySTI#dEY++`MUUHW6iYNa_z^sCKPr}IR-mFs?l+4i znysYb7p-m+OEo+0nU<$TTTOS)kLxR?rEf@&rWL<>LPOsEEL-Q%Oji?&`{FTyed@Df7%9{XnN|SQ4@@EP5>7^AF_~G5k zdz7y#|E&B-vE3Q z@DspK0nY$_52&LzVD*5_fGvQ_0XqOafZc!zzyW{^m;xjK#{h2tybin(V9i>7N0O%LtkP*8+L~KLz{@a91V42LX=&z6SU;;5UFZRRn7R7XmHgN8Is^y;7~mw}6d(z>6>vM?4#3@jdjR(V?gu;w zcnI();QN3l0Z##*13V9?t0AZdYy@lqYy)fu>;hZ~7y#@C90J?`2m%=3B;XVv3Ahz- zJKzq$-GF-l_W|w)JP3FQ@F?K>fF}V@0iFXq52&jps0VBWYyxZpYzOQDTnQKe><1hI z+yDpy7~mw}6d(z>6>vM?4#3@jdjR(V?gu;wcnI();QN3l0Z##*13V9?t0SlfYy@lq zYy)fu>;hZ~7y#@C90J?`2m%=3B;XVv3Ahz-JKzq$-GF-l_W|w)JP3FQ@F?K>fF}V@ z0iFXq52&jrs0VBWYyxZpYzOQDTnQKe><1hI+yDpy7~mw}6d(z>6>vM?4#3@jdjR(V z?gu;wcnI();QN3l0Z##*13V9?BdurkfQ^7nfNg;7fL(wq0Rw>jfJ1;A06_o)oCKT# zBmuVqZU@`}xEpW};6A|pfCm8&0UiZ>AMhmLDS`z1+;X)t*3k*#tR5f(rT_`RF~A!D zZv=c0@FBp1fQJCj0iFk(-9&H>pbyXwkO5PGTLHHLJ_7hC;PZel0KNwJI^YL@9|C>_ zcpC60zzcxo^u}xj;B3G-fGYu40X%?Vz$CyAhyxOUTLHHL-UWC!;O_w+AxNaEV|rKO2C@{e+75|@HxPL0)7Elv67$}unTY{ zfB}vI-VAsP;M0K503HMU0I*~g!BW6QfQtcd0lXFPX~1Uy-vN9V@V|g(0T-+$xDX%# z1_3cZ9B?P#U4SnDz6khFz%KxeYY3VEEr3?QLBREZQ-GTRw*qbh+yS@~a1Y>K!2N&+ z01p8k27Djz7~ma`LhPVCctLEcEF{8D*;yl_5&oq4S*W~3~&^15^xG| z8ju9M1Mp732LT@fd=v03z!QKc0Tt^AmH;*YHUf44t^n)?^a8F290EiEF~I8qZvgxa z;2nSu1MUXg4|o9Z2;ggg9|L{@_#NOGK;?RZD!>}RTEJz1%K^Iqy@2ZhhX7$f1n^qG z>i~ZPcn9Dfz`cMk0KN$LCg59up93BT{0{I8pmGC26<`fuE#N}HMSyld2cQqo4;Tkb z00ICR5CG zs*MEIfOUZNfJ*>d0o{OIfC0dMz#+g5fFOVYP6AE=l7L$QcL44L+yl55@BrX*fJXpd z1N;#1Bf!&u{|3AOsMti%3|I*`4{$!970?FQ4d?~*qnRDUCqEznhymh&zW}@*kOsUR za2Mc%fX@K_58z(_{|fjX;8DPnfTsY@1O5PL*i6s}*aA2Ua5-QH;A+4%fMLK0zzcXK zAOe^Hyaw=Ez?%VY0lW|Jw}6iWJ^}bL;46S{0lp3RIpA@?Gl1U%s<#l-0M-LG0JZ|Q z0d@hd1ndV$fExja0U^LN;1fG+@^;JqL|t$-AMfKTV+ z(=YMqdB7h4^=A<@05$`*04@bw2Dl3FGJpga1l$NX3^)o10d5BT8Q?ZR3UDXjU4VN5 ze-C&7@HxQ4fJXq20e%4ZFTk$=e+2vqu>5R-6@aq==Kyv9t^iyOxCY<>30Y3%&4DdgI-vKJmA*ceZ1*`*H47dc) z1?UFs0}KET0d4>=z)`@>fIkDI0B-`k8}J^$M*;r;_#)s-fPV*k1Mm~TPXWIL{10H+ zxdfGfHGs8%ivSk`IssjPy?}jy>j8%VK>!1s0^AI^4Uhu73-E5hM*trMd;#!9z`p_h z9q?noPXNCG{1&kEJc4C_)qpjC3jr4aIsl!3J%GJ{gMjM+3LpqL2{;9~6>uBiPQbeW ze-HQw;PZel0KN|RH^6@Yehm0E;5UFJ=MyXitOBeCTmZNb&<^MT^aJ()4gd}UjsO(E z3BXA}5^yWv4#1s&djWqB_#EK#fUg0*4)_t^KLGy?_%)#70)i!gm4H=%^8ptC+5qi< zK0rTU0&oB@1vmmY4mbfg4M+lR2iyU;2XHUo0l?<~j{v>~_#xm&fTscf4R`@iL0uPX z2CM{}2RI+l3TOlL0{Q^sfC+#Mm;xLF90&X*;50#k{pH1KhxlRqbT{DN0p9>T3wRE2 z?nMOW0VKd6U z3BWOe1bg}t^+n%-pWX@h0^o~)UjUu}te{k^8PE>s02~6`0C+XvHGsDO-U|2t;4Z*t z0rvqO0z3@(0pN!O30AQ~eStsWrxyS#wh}Z0&Hfa1G#Ez%XD0;03%A5CO~p zUITb7;LU)y06qoyG~iLd_W?_`5iA9418fJ30ImZh0LK7#0PX~Q8SoXrQ-EIrnzs|I z1atzr05<{-16~Vw9pGNT-vho4_`iTZ0bT%Hd?~>tfC0dMz%(EXcq`zq0rvs!2RsCL z81NY22Y~+q{0i_#z@GriFC$n1I0tYpU?-pj&;!^F7zK<0rT|9(rvNtt-U4_l;Ddk< z0X_@35AX=!Yk(gEeggPC;C}&)mlHGr&IOzYXa{rv_5lU}hXFSMqJS9SG$09h58%Ck zPXRs+_-DYs0KNx!6z~+_mjnrRLQ}A2`pZ@Vf&fO4U_WhFweK{3N&JPqRPr3wkM4w9z}9`SIa6 z?o?1I-M*7L-8%r7xOP%r76*Ioaz+~mdkUhBx%qjJWrvAj_P9B(Grl;(QxIRQK+K2l zpBwnT!5Lp1%_)fQm!Z*L0sI2+1mF}cLpUh|N4tr59O_0J!qQS@j1r7{l!>Hrz@r@W zDAy;ILpP6_STheOWW4>M^mR*w_yYwqv)f__D+Lr&!sov}0FYe0JX#&JGdsEj4px z@!4UWTCD6=+prsY;f3PUdtNxbHFor>n~P7co)-1RN^h+ly($;z!A(Ley>&M9q{`w8 zZ@X}I>+RT86rUa3S;We2gAKd=FVMf@6WlMH;6@vQw^o6n3o`s)j2WH<)U*)P0@edI z04@P+1#|(r0eb*@0TX}&fB--S!~k)?Ujj}8-T`%IVfDAYW zI1acKa2wz~fcFAE2KYGO%Yd%{z76=lfF}S?0-gmt2dE_tXLW!LfQ^8yfNg+oz%IZ( zzyRQSz#)JF2m($3P6AE?l7M#tZU=lAa5vzyfcpUd3V0CkJ;0-YCjd_pB(&q@;C~D^ zY+?PMnw!XD(^&1*^Wn!@aQm503yV8EjGsiuHqmRcZGi0ri9~9Jm%@3RoRPh;lhc!t z5cWi+mItS2BGI^)0zvpI0`6ep%crQH>hoI5S zaXd1eR=$|3n+f^i(>{MRl4kyDx>C(g^@^w2k2cV^Dtx0$50N7bzZ42irrBr7+XUa} zl%ykRR!0sRshVTK899oin`z-XRZSa*l>{aI_oehL@03UON9r0Ya7SxtE%&mf8(?Qks(&>%1-XB<`UwUOU8*4igYJfDL*FjJ zpQU_{gEYc7I1E)Z^L=Y{5u4U1DR!(;8f;gicfnpYsgiG0ld2f@MNyKV`sbwjC#n9q zUHx-6{!oje{&`US^QijgN%hZj_*2WbJ<+2#*6sg~4&m2kzRPK- zatYt#MENK2>k_`ZX{e%}?`^{0`{?KW^z3@RvxyQss;0x9Ci?cA`lqgzzEQJ^Kb3qR z6aCqRZ?${}6a6`aZsPcz@9M7KYw{`j2wr>>5! zE#X^}DBBxUiM3OwsLH92KGE;v__Kuf#q=#s-!#*gcg6bWw3-+_@zByGydRcc%R6C| z&bQU8=zr<8e}_L+yyulpB~q*96TBwNCn!90*gKU7`_&2y$Fx*)Yj?+Fr_a~A%h%T4 z)zKcHS_Qwfv-$|Qn;QSb-PHIe?xw~+aW^&oiMy%sPuxw7e}bD#s=2ehy|c5mE6_f* zv&+{q*^ySAX3oabxzh~)1gDu)^Hf)RYiDa)puNrC*4ice(v16$@DzL#$2qu*Z{pye z_$ChiiErZIpZF#Y{)unm;GeK!$oMC|D#oA3w{!5{_;wEdiEroNpZGEZPY0hkV&U)X z==S@&TD$4M(#a`W59A(l=i+_1haCUJJ>>W&?jgrNaSu8E39e<)64&%0F?llz-x8DgVUHQvQjXrTh~&OZg{mmhw;BEajiL zS;{|gvy^}0W-0%~%~E_KoeYLU!LZDgF}K%Q3+;>tBVlhqp7POok6vH&2=9;9WUkEk zqP}T$2QQl9RE^ggmXA~1^PA{PB{neA#-$mGB%Myx$ss+&gq+&Yva@}%tG%VYb8@Ps ztG&C8f@EfHWS7!=(QVPlk#wpdK(U^p!5O?rnq5X$I$Ti8x|6l(#f@3`8KpLQgho&js; zJT5dn*Xkzra=c~D5jjp<-=ip5{*uamt76nsv1@TtZb2EZ6f7TOQl2xNk~oK)k&5+O z<($1TYtGrEwRn+9XiqL_votcv*nZ@lTl9IC3YK_Y+GUC_X2^JrNnA+5hLPv;9LZ&W zJ;!v1WwKf?9eI%_T(*lIYpHsAS~i|fHuD(uQbDqLY1LOSO1bbWa4{XSe1+_#* zwvNA2p18Gl*kmfmY-08byu_NElFh$%k?HONiPurHl9;CR8+aNVsiQVb>W`wZ_)RGtc+$h;amMS04p^G(k*-@;yl*E`oXGyTzOx)#$D=Xhg-nzO2t zdI@T;xyAI*+{Enlc)?AU`KXUmQ(S6#%B;6EtNF}CVnNsv)UoStma3s2y{fLAXL_*d zHkQOYo@1F|&ePRoJ5A4<+kK7H9Ymrsfi0Gxs-a>h@w-U&yvrX)c_prag`)$cD62o)VG?$y6G>4n& zXJ99)W~=^s+?CF+Zl^zHS)FrkVt3;G@~g8c!K~HUbVt2{Z**0i;Eclla7IwxB@Xk^&cz5^H7$MCAlVsV=^ zxWGQi(T100@FnTIrb6Wi(`!>>6Q*?7J z>3Y*+wQKCVNV&>Clkmol2jhN)LgmrnU35q~l}oBF5(-e;=c5>0sX7>f>Sr2Ynx1Fz z1onMAyLR{3ST8AU7_Yq1bYJEw`wvR3yc^jrL%82ml^WDpPF+lMLhUs1A=Bhg+s^jx zcCtz_uN(AxDb5{PO=Pa%)I9bRJmISl=uhbr`x$|pI>-KQKfP8o%^t^Xzaq)v24BJK z6pD!%@J`8L3c$>MflOA?-Pp^{a*GPywGn6Z0^;PvS)B_6SwW@0AXLuALPx`*@3oQ zEnR_KT^(&*Q(ZgT{5yA)m6_`I?MnBRUuQNSCP0ap)J8S5R zS9z6cJ7(@>|Bt`$2CG|nYW4!ZS&>hKf>S4r8Pg<$={`LnTiTCICtH19`f2w2^n|R6 z-{)(c)bC4G(*rPk;bg7y)DyE>+*_9j>n~v_CK8M3ZL>*PBkrxoYhbmavpxTnH=AzG zNy}F7yYV7(y*no@TZOx;@w`MLKi~D1`BFNzmfwZv@VmG|_)_NdS_-xS=~ao$Sq->Y zC^g&6Z^okxI%KCldO~)#dS4(UM@@QL<-^aUxn?!uSLg+;J}T|QrD*RIx< zj=(Nz1GT|1wLX|K^rcqyM#2GZ-e)hei*WY^rn_yER%$(wHWyg09hB^yj?r7LH9g0W znr)}d)4i6-s>6}ETFo?8>rMA*DcDXtwmJJ0!|&&rZnH^Puii$> zi@bMNi*mE+?wnMt0~xQ$e;$8=dhH_9?FACo`24R*(3AwJy+(P1>2_0+mDvaC*VxPO zTIZYYwM%KvMK>7VRqo0wM!1tcLbT0slG4oKSoo5 z*&EpbyuvxACtD_42AeFCRTWJtQ7;H%c#Y|PHKnHgb?Vc&Mdw9+n@s8RQ&g#zTt=|# zOn2lZXi%S^8Gtf!*?C*g773YJeq9aXCBU#5KUD~lE`pKKbM`U)RwA$!M1M@W&mzwD@dl7_Kc z+Wjq4-BVp%yC!#a%f3nKymHd9V|e@qbDF$0F>Tpsnr?5_EuBbU?mIB zR4)}S8)I5+-re{{{6+qna-o@b^Na9_dNsRu;7xK>CI4DMRmo3WgB}5gNa>1_szFWj z`>;%6QB$?l>|J<^+zM*AP_Tj;QZ{%|$iX-*ne)YT-ZQY9=;`P`EHuR`d5#cs^(H4N z`vBgzpx&5L)2q>XiPfuFznDd0ycpTiIl7$lNOsTc@05L}n!3@;XKj4sLzY`!YCdO~ z^(Hqp`zZ2Tm-{k)ngP8%5%1=!m z86i2$3q`lBO#dU8p;*6-UFy8I;gdk$oy*%~ zQ`XZ0NhoqW5)B2Y*i)N3ceQkr57(qjlY5;zJG*z}TxXBr+10cJC5Mq(8z)qvGE>vP z-q#`T@^!b#y8@GKJKKDL9j26FOeD&wm4m_XQ90nDZ~1B1Pbm*tu{Ax*d<*+IUZ;kZ zd=2lTJz<0C33@{I3*5IV=Yjeaos#y53rvr&xQ9K3r_p?6OeQzvNtupV%=V1@L8)4F zj~ex}P0uvm$$o{$ZOF;U>iRa*Q)aoLQG1GSiW-BA==kfgrzuBTE;T*Ua0~k%yw`ej zHtG}A%Uey)D4f1gJ#CZ@@(6PE)2v@r1f@|Xi#L%HH9%X+M z+lZ$&O$DR0o)rsDhOpxxQ_kiV#h8$7!QHtniq-XkEsE6*jUk`a+nANdkdB>)m&sKg zi^~Ny$0B|6*kCXgFVLHuXDV#d9qeMfSfkowc`cers}|Cbnr*`q*5yB0dzO0jl38EG zki1GgnJgpfb*9_Z1Z)SgUXjf@@4jwzIP z>%tSN)h0Mw;nkMk-1uqf*p;{|N8Ex#YneRF0vuR-4ClC)0O zr2U*{0cnPXxyl-ovtC}l+K;(1HW#Z!qB{L)x}-LlgqWYAdG9!#gqK@|*iX>Gnak8B z;mYjqx;3TRS?2D@E@jR;=-nglWDC86A>q30la2ig@3G8vuVC_3*{hj8MeT0PW}$7; z4LMhg9f8_Ym|NXhZrIp5HMO&I$`|Np4ftE>zpR30T8XAX@&d^I&JIAC&Nkg>m1=`2 zRc8I@N~l94zsdO9S*Cj|5}6;Yum5CTTYa|vGrI|IZS!nnqK0@Bo_2Z5WLr$Hm79$D z@c3r_rsm(zGu>;GaFZ!vb`dH=Y&pLXGsE^vKSi4_#MA=P@* zThJs47Ngh*jm2qe2_6a2F1Dqq|i9oQuqN zO@`nVgBeRQF15qpSpsFW(VRHDZmthT;C}-r965z!Lx+4}at4I!duD;%obW=^bFJ=V zr|=F`JoJ9qE>O*Co#_c`GIk5@!704@i&)-nE<4j5?6oL6>;=mx>RMB#+?6O}NyBeS zPOZp!l-2cfO;5?cfxVFvr%7Et*Q52gX3BX9a#`nH`v1he37B2QbtfLsf+P@P6G$xL zfeo}+TD_=SEo^KHv57_kBN^~Eo!9TZmb&Q8y$FrECPWO z$C*hciD&Z9zBrjg-IDxG{?3=oWd3n7$^Un%esyovt-9~^>lWYmOHkieXRA}E&N+3e zZrz&wHL&U)>94#GhyGL-3=LNBG86~)ltAQCMy(eKvKborF0fTT!PHlzLuUt6av=4) zcp}9SFnmLFMSyF+uk2~xloE9D9j|&ho z)srGKCG+`nKE5W{qLQrx#ok&fQP<3qfr{$I$5n4wiS+L?*NX$L_FBE@A7`wW6k6@` zq?n0bG&1$_eZfvYKAr>`b*nT)os9XGbp~?&U~yDxN_4NGbJy+ahgMia#Q8Bgf&mn+ zACUU?_;6}~zX6gc+XU8=K&s#N`wrV)KlFPCFX7XaFN3Cjnh`JBUQ4_v!eZ=7 z7jc6NPS#t&RPE7A;MM=ij9#Xt*63wGm-gVW7S4(EmwV(TghUdP7>EAS2UkB6K~7Fb z&Ld`8&#N(R5%2~2z&-@Y&7lo|`gdV{Y|2`eM3d&%Gi$JPz>ey{-hp5x%py*PAZq@V zVCOg)@Aq0x#sf^{HIdvberm|;f=PB{JeNsUZW9fJLllEb`Re#EsqPls8hl-_wAVH# zR}Tq#jb8hJiw5mo5Q(P4P?Er?<3-hJx{zt85lS+U3*=a*ywsm-N(MlkEDTc>xxdy> zkqfp&Mg$WYJ0mH-(*iSepwwx?RMrCNkdlCD3PVgjtYP1~3$F*&WpAKVA;R8ms>j}i zU4l2@$~|@2J5cHzpMB6&gM9$Iq&zV=qR;TAH#k%mAO)|;bspg;IN<7hUyh)uh8zLx z61f2d8)FsMrG)GqDAnS#51MMQ4`AmHniPC zZ7sM>r`W6kRfq6CIcO{m@MP>CFO!-TUd=3;lM(VcgNw*aZV)m5R9NCZ(HJVC7U@c*_p`N*dmP3gkEN>M{}H zl%N&fSoWpWJW&yDL?~6pjL{gK6>-0s9OnoT392>;U91p_1A1ROQMW7_h6i@yq6Os1 z0ow##Z5I56*qts8YVA~y!aIkWlsPGw+>xuzWO5=Msfut?>lU?BOH#SDQrao6 zE;r$h-^X>0GZceBYL^y6Kc&WDkV1PhVCt6y=O{UmKhm#zjCWY^hg=?59G}1|m9PT2 zcR^mF3N66msbA538o?EV;9Q;8S02Mbk+5qTK;5o^%M&B|Wk~q9fpQ;MF2GSF{2Q}m z4Xf_b{nIbQfQ$M(9%Dmk0Mxw#EkkKK7V!jZQ(v}_m7$#=EXE!x8Nkx4CN(h13I@1o z$JIMp@VfEN%BXRDu_;ez^)K`kPkITt-?KWeg5kfto z$#3o1wDtPSuM`BC8nKCMLDW+T#$}tXuZJNZ>gfdInl0V+Fa$(Bn_z6bsxA)!QO_qB zmtIqshk&RT1!IwP>xxZRT$_p&`tJlry^`Q;y>_F+CXSqwHeBO!j9@xo>K)y? z8@FA4{bt~%48z_fFzP+vsM~Q*C#LY(#kNvwYkOCv+}7UK)!UAn-Yy>+n;5NZ#X74p zzG(<={i|OSgl`#yGed+8vU_wrE`)&lz=qfl1p2o$G~Se-7{%psi*^iS%SSFz; z-ae=2P@$h~P#i^XQ=qP3_hBri|;4dCiAa)KS38s;u2c*1}HZmI$GKNRXKg2rU;`30%=t!(dI-?@HW zdtY0rqqKHyEA}+gjX|!YmR*12H5kyeMg5tOE(EA?xMR4rjVhbYElKr^0NsOAKNcP* zl4PXmg8_a%EY4}_i$&^+;K8ZCbw!9Y<%$r2U23~vlV7S~RnQF|P#qK@PRjJn5HW4% z1QcojFSVl86~hNqf9Hx3Ys(cQ27GEDbGi`+(>Jf_9mjs8P3j*+in9Xb9Ke`yXZPn) z<^)vz zOyHKm)fn6!eTi~HLH!GwQL79HWD(TAW$4HiRpu@Rkz@vR41zl1D#$Zm#K{V=JP<-d zsriC&v=%5X{pkUs3#^WE@S{@a;Zx!zg1>Nda2%Bwah4`!KP6yF2(?t;m-d*)L}H?? z3ebE&b)1K7<*kcNSx*#fEZTOaM#7;9wX31j$%1h-uK(UyNn|zFMZ}199ALH5!MD=R z2%i$44t)KEZ87RU#VtSTXR=T~2G<88bSFll3Y%lAjv`uH(*Tk@q|H$If|vyq&i11 zO;VY&`U~FIvS`WP7sn@->eL{_iU6())g41kBI>1Xy_*8jO(c(&gSCH zl?~-GuAaG6knT4~)rI|1V3hkbWu#EBkULC5wf5+ga?^D?*G{U-qz@6P(qxMJo7vg4 z%;d^WaFbz$;c{2X&%2K9O!5GMrnQH`pZ;#P~CVb^XJcL)f=yDl%s)8>hJsg9$&1a;a) zy+BKtr&)P7Mgr+C3f?jJNQZ<&t(oSUcpDf-e_8NaT|9G<(^)w^+*%pm)<0O0TjJEO z2=0vyq0%lJmBl9Vg(#04D#yuJ$;u#z6*p3i``Cj6)XKKDVL5zXrx9GBN4 zvtI*g*0-f%v+Z#KmM?>d|B$cqREmR>>IwX+YwP|uM4J07+Sdh5J|iOC)oJkjQG7ZG zib6p?gEU4Y3u>q<`SeKglk8@YE2@E60z+8}DY%mFmOvwNTcWP+XK+U*Eti@5S# z6Je+?R(wkL5L*x#_&$U1Z9$OFpZF5yVj+t)JAK*(YVkCzk`JdqJb8!>Lto#3ITB|e zlzf*2;6ec4+3%Ay5AwvuYakbCw#TdQll{jP0XD`~pPg3^Nc-}jT_5}a_XlM^O3BAg zWZ$GTSQZNkps^(&@3E`BqAK|w3NTIKIixH#46$+DuI_6RV1z4tj{{CmY6qAo>ocEF zX@)VDP$5v?7Y45x9QAARPzys|xBGzr{b?4XdW4ioSH$=XX+}R3v?K667a8<~k@`*i zoQo&y{B~BcLZyKlKrkc z{2u-j6$(4QActbFKs}O0sofc2_4|VN>sCM<+Y$lsPa7)4nrA2_PR3{{|3FZGLY6Yi zsz;V&DHCGI(C&bceI(aV13%f znm=}Pzg)l*6>e+z2G77tij409J!Tp zTCn6hLB8ef$ImedMd30t4hq`8<)DQ+1e&S${6z51y}&Wp<$-Xx6BxHy{||xO@n@LJs0Q6RudUL)cI`U3%+uUtCd$;S5*^K#j8?`cM$O&4`m1!3ap^xQqr!H@#^J#c zd6%nv-RQ8K+(_uC{|^FJR|kCRAgl}!oTSW=O#QRy<7e`pf5Cr{YeWb$n^XTTqMRR4 zu7@#ibi$n8(W*EWcTYhVl^&=7@orMB#_kj@mkG!UmYTN-ESL1)Z>KmYbkuyb5cjkI z*FjK6r6kh&;0#HyMz};s;3~q-b@=vJYgNt@@f5(V>_$vZnh}0vE>O|9RJ$6XVWFsFZ z#jcu#2z*di8Tp?wsE69f)dD!buh_5Ob~qnT5I2C-?dl?d#mOggybieu zN>_5^WcX%W){Ae4EfO&OCmd8j!{DhF&9Hx{PZuTf80vP_DX{ZQ?vG49s~Vm1uNRo3 z#wG^wmWgbYR96IWwo!dp^B&*PFL`KndDr^2eQVp-wyp0icdTpaY;D#p>Z1a+5?ODt ztE~;!qvM-tz2#!MAWU4Qe0faC8(-B0Jv-zsD7?sc14d}rd6iRLD%1)AwK&{-@8u7D zkAHxvLDZE(_GnUZe!}sBjNBp2f}ZW8!}^m2x{NEQsxmkRKwTqDjT;M&1btn++KRs_)nhK5=u2T$pYBLNECO_L0F+VD zVnJfpm5@C(z{o;`G`U^>QLII(nxOkboS+Laza%+xVkgT333R*qoQStbOQUma{T!+^ z0}x7!Gb}Pe?vh2Rme&0tE^TcHX9NE-#Hi|05h45Is-RafsIWVrgT*ZF15{TFZCZl& z+ZlPJUBpnUzDaAv8e9DpQFJJY$m;+sleDAUza7HaR|T4stRU3i=(q6;eVxVLuJv8( z``SC!c2w}4%q)WXqA*$!z}W(h`lim5cG_ogO1j?hG=4|g8XzW+>Q3E-0AS2kcGR;% z`XqC{9TmDtNp8;W8yMDSimONV?L?G6C%})wtGk8S;++ZcM9!pagqwS0?RRQGFhx@L z36-Npi{<_zb`23z@fE!7*#4JOq$}F{)|EOc>$=KaogHl*?H$b)PJI<OtW#Z%n61)gx{N<&y%+(yAWTfTdv(L_MO(hLF;%9@miL`U^3+kkYKaE|Bw! zhC4x*2kdpb`lf;P1c<pY={z+k}SUoiuxfDqKo?sna8Xm;HXHkE^S7x;! zR*#TK7wp(IGHfzKhkR)M22A~TjRTK5tV6r8 z{}9>$sQpHoidi}t;860Cw5tP}@+e+U)B6~ClnsFTiH06WH9;tNLjb5RT>t0sR^sw)ma)ATB!-E+tmlP#NwbG z;80=%pw1KMg?jos;HLy`l@RKDOI10GU00O}$Q-9I+u<|QGt0Z=W3_S6@H768>Q z&`ZYp2k|}Qa(S(JW9W$DWc3JKSY$q+c3Nk-TP!iYP4pT9 zY8`%5UGkrrBn*Q3P)cHOVxTb+20?u!B~k9**%%3fpf(7JqjlHB4qY0i6Q{@ZKwx!Q zD#B1@dx)N+Mgyy^OtE2eGsZTs>gp7Guz0JBU4IY^g4*nm=pSm3gho);35nyi1~Du> zW7ttGjyjaEU!Z@ohIMvap&qWd%c?SxBj(nt&GtLB7 zpAvjCW6Hyxnbg;{K~SGfN%RdCT?vE)DyeesgVj=w-55mm^C>Brzv51sW;*>0f-0vZ zWI{GX!XT*aDG8a74UsSiN~I)ZLN-LgAgDnhajbPtI8ZWLG-u>}cf_sOGvn4L#$qtl zNJ`l_IGxq@*wxv!wI{mSqt=L5^rCrn+6|ElyOHCQYa2YiLsK zNwNGTVh)yBC*Cbs#_?oUB6%)CuUFK)DL1|5ND{joZf0Tf<&;}yb&|u4OO(kJFSAa` z!Q*1(Yl62(YZ9(4McuE-$^vH*SRn_PB7<0uG6oTR~UFDI^%` z@l*;}O*))8tOZ7WLvTz$8SEdDGY*~)#_~AMmB8v52fui01Na75J(tRirAl3y1xCG) z;$Xp27e`>!ODPU=@47ewqh3vMkb~F75g7GaiW8|BC}*{tw43LEui{y!CoR(I6T-hVJz{qP}OO> z`mu*$Y#<*)tl+z3KvU?pV$N;%Y+q2L>)Ttp=8zps9Zp zI!9v%M@aSdo13Vll!>GC0iFw{{#h^=3fizf>~cx~&NlV0x{nh>{X7>_r;ip;{kz~T z8Ao+@X!``#Pw--hV)$wj`nIEgJ3a|$?nep7+QCsrc1sU?@qwA0MUXPr{mAvtBRjCR zpDztk_YI_XG1O6-2;#+XN+$*aE3e6tty7IE_>sa5MJGWH&dnX1woj9Wrb|(X`&Jijri@hzq#lF_Ht(8(oZ%bQix|0w8Xbu!C z+qOfl4{%#}9^kLBO|6gNqtgMQES5SS4AuX{d`Kvt93Yw5uPzkXjv)p2w=)8a2+({r ztP>haXUDI)#3?z$!ofLqfo06j%GhS?vkUcek&q9P0-SbCs^oT_Dp^Z(oh^7#sA)12= zUyw5&ON3}Sk;Veyz;^s2kOrj@ikG?FbdTxLm2UXXJ?2E<*DwPo&?2}ac zNc@A_z5)UXjM^$VD=IC0Eycb{d#PA#t*q_p#NcI49Ir*80mp>O{U!O}w`o*23i25N zas+5)02CffGAx!7+nx{pwD4FJpvRzM-N0ck_fwa)1LkMdQ?mmu&;otgu>^i?iTaa` z2zY^9227QN@Dd}W++jRvemO0G4?s>2K%$?NHQ!4;j%t8G;H?0-C4ZR5`#hemyh5i-O5p(>>+k34C$gpB=Q9(BvHiwOjZvO9+#W`MHoU zfCq==lbjR7H5f5_4Lwf+u5K6Z#^Gds%yBpwD9u@3Qg48>23KG5IXger;OszY&b|1Q zL<5{PxVq2h?EF}RvjeqQg3r$JUHTG2&l!e>mV&BDVQUO6`)iJ&Wx-Ag%mEOY?wc`^HQG-d(S^FrMOVE?xqFXsa- z?i)qnCS-{#cZYFm2-SsvbBdu}7T(7EvcKk-UlweETwp9o6>Z*hH%tHwnEIYDGzozF zOXv-?DY_sF;K^~br^l$eNIH%>n0}os=%~R^dsCk7FF8D2kfUTin{<2G{gGZbyT6OF~ zZqe8+#gS4GS3M?cqLl$^0;B%GjFqs={1_Rl2-E_kf;zC%EW)ue0P0UuMY_L)3enwn zK^94G`fxpMtsW&X>c?r1GC$_@CTiYFFt%z>aucw%Vp&PNw3CA{r$BSXh75v z*EkmF{+7$i1p=$g1dfdrXX8SbmHS&RD;FsA4CW!39~du2d}d zRa(|n)_1k{mDjhVm51|@Y*detggEot839fNXk`EtRwMNLf*0wWW+_S7lEm?%s8s=t z7*wnaEGxXJ7kxx>f6MKH3v^1ro?jYPKNh-2Yr5V~rw14z%t--^&Z2)yNG{Ug>2s*W z3_!@xtz@X@gy?Y^C;a`aK#&~3P-3jn@FsmKar&GiaS9NV7_GLn@(oww?C-e}X902O zUhnprj3Ja?n$>w?Vn*ZXbB_Eez{!Eu_~KnjBwwOc=>BqA03U#aJkxc?yFxXY99*L4 zAM+=N3l*bn7a70d()NDLrR_njY+c)4?(FO6=vrHD@9kVGB~3ej*NO8u?grU}8xsHF z{eD(}m;(sk+A}naYpm0d8=zVc)g|M(%u@1yE(BTk^QDa8C9)7sB5ySO@FPa+7wI-hvh1pY6OB>5cP3k=NgX2G(Xog90yJq z%EV5)w<5++gQy#_44t2AGIZdCA&XPBdT6RjpUyILey+*Tfs^qwA7mrH==ceQ`uXhm zrN7o3zZ7h-aTwzRdW+@Mb!$uIjZXu`a3*DXe%dRmB( zwyPalJpEnCo{`bvo&9CKj%}(g>FciylzYsjvZg$KW=Kgc7fA8c%|dM{K9@a`{s<9P zMG##OHEg8NUte^jPy_hASdH-YA=N10)FRww^V!LX>M7eRLzU6~Qcnrj&yC?z0l1Y0 zrys^9e;KDJmRz~@8kpu5`Dg&1)!&HUpI3yjRu^p)_{%DNlV6=&eZ92qxLVyJk}c@P zl2L1a(an`zx8Qq*`eA-AJ`Es7zDs}>Zx|ZdFs2U~T70GVx^?UPE%HSn+fY3cTW!_( zTl7~9=9R{8C5;7J@lIa?*1My7bH@?YC8gm3d_}TP@`mpD)g`#u0@G_qZtj%kW98We zSv1jGT~Ztx8Xh+<>KXAC;4;T+M^Xvq4^;Y)xZDNNO=neAdU3?INp&y&Fi7*SL2bz5 z7;)5B(b~O4P2wN0R}aYJ(O`L`N%A)+xb_?wUx`82;}Mda$nbYoTIKSLH5EDoU^ViUFzD>&DV7f zg3+~Y%t)ElwFRTDEz_Ckdcj8h(MnI*SNO`tqgM7}YuJrhpQU!RnbnrsG1mJ2SuPfJ ztuF`RMC~|J1G8Z4w51C$S)|N8fx)Pr1@poEXr@MsbSo76Z4)`4t_t-b)9*g_-1_dX)KIweCXAG1J>! z?htIE(2LBN;ZX~njMK zT!C)>AFy*lGGYnHqRol_J{o^wv>NO2)qaoh==b<9vOUg0V2@8o#6c(3ay*Ir7KdH5 zOx!M75O&c8nQIrj{Vw9s@8Y3s7jqDFv~E#u7rSxjm3_2G%gr!aE+;#~XhGOV2c)9D z3n7ruA7!qB9Gl!?2A>IlGoLu^9c1-W;3l#DFOhefY5tGN&+4Bvbn78=Ggh#EHE}i=3HyT%P7=!^Pc&m?X`fhFP-dD%e@LQThKap?Fg6W8%s5O&c8*$A6sZhi&+R9B_X+B_Qb^w;~gf=6pBCL2y; z8<&PT2$EfGh9n3zAICpMwbeYtt;iBtVTRgr#dMaHk8PzDIjz=;=IZ>n`lg0Q-RtAf z30VcIwAYO2IS7)sgv)7NL!AW@CM&a;L&#z zsq$z)IS6zU*$5f9C5ujvVfncp!-BB4E(i-j6WcQ>v8k6eW;QqaJ;$Tp^B`@?L4a2` z%Xlr^ybWci?&U{hvxx6iPnx zUOR;fa-c{C^-1cFD`Grq{Yj8(B$4?rdcx$+*H(3B^`4LByjL;ykU# z{6_Ujmuq8o^J%hV=7>klQZh&FaZ|gYyU9UVsb#c{9BWGrjow(-UiG}3#B#E=~5B_w*qt^B(wW;Pes>7Sf_4s3s$7IYi zIStJ{2cfY{&Jv*+Sgy?EY%A^1X|Rx9EC|l2&~52*Hd(q7d9^_Vh3*^# zqiEZhky094YWvwBd$OcX^*g-E3YKQywA37g4*(&luv-|8F&_1>2uz&{yLtgTnckwV z*B@d$YFe`_`C4k61eRK|rVPSL4uUTE<`tSO4pSq`1jCc6$ih%XE{x8?7TmZ)zSL~@ z2~~7?nax%I2XX>$ty7}%nBm}2D-WrzT_74}o5r@_U_Y7l)>$xGqAQKbSfXc`1*2`v zutaN8`Kjk?v)xKaRF%X1{abttCB(T_Yauyp-4t=qW8Pehb!?ko)&{S;{bh|Go z9<`uIs-y-`GkZ#D(V8r+6O5KEt;k}!HUh>hSq)p7?5(8G!?^Z^c#Z$z%T z)9T+2e-hwPt3W(c_h#Ej(oUnFlsCK+Y}3MXjIwN6c&@dO+3o~ex~qM<=YwuMK;|H< z(cQO=87a}2E!ta1E(T(Xs%cF@E`BM8g@+pOsE5TKYEW-wS2{Tea-6{)F4za0Wcxr) z8mRB%KT@aNNN&so@Tj>VUlC_zTX}53>71pkk1eQQ7m`1~eb)~U{z-*v zw*YolClypsmAakMQ~7w*($D^!f+a|YX$eZan^XE`=`to*x`~Sj(zhH0(wy)~&xYJX%i*%T_SF#4K3hQQNxg9?X1;-x6Wf))GNMN>&NB zHN!&6RoU|lS#g8SQA>;FXgSF)OylByz|0U!1Y2URxEU5`t>kwGt+D!yETO(a4RfiE zN3CJK3urd`9kMhW2Pjg#sOgjgm3`H>Njz%)NlEe^S#Y^AAqN5OFLwSRuqcbp>ZIi- z;mPjhTM+iv1qo|4jrDfY?=2oPz0F3z90bHH>216;VsRMuEfaT(-h!};F34QF_<-L< zJo;Vi%MNG`0=rmKzrpBQTI{-Ip6r|MPMEWpm4k4$V-6OCy0SC{q+ThvG2tJi=IDv= zs5K|fPKU;^tnfJqlHbkT-B=>5XIrkUXWQ0{Oldv4Q3ntV+1J=>Iv_miUMB~j(q3~Z zpM!vdtT6`=I2?=4{#t(0BkKSxNJb=4$@_8u>S136c=S~eSZxl1I5BN0L8&PR0fA{o zIkK!=qN294*M6KhdsYcJ&g=<#aPaEEh3~Ijxo~-GWb7P9DZr zOF0ObsTeZbn32+*#ukJ_jz_I7fE=dPQuC&vvC8PUS^99b)Ym_nw_HjWFHiWkk4G)p zhjq{L8-p1A4x%UzE$gBAHHoS}z<=Z(w0aqT5WSwHRE&>!)KWFJK(R!)K(R!)K(VbE z7PDHQSXx{?SWb;CP%IHHP%IHHP;6_41s5o`HPe|I3zV-@!wf8V)Ef2|D3&apkpt9d zdRv=>o-~a|T*|?gGVvu(vMAT(kFY_`SuW-`gO2&q1iUK(RQ? z(k&Brfnq_}MHghQUHqosMLhal43eiDgjp?6EG>53GEWvLX|~G+N)CdYP_n6)1);7i zO#wN)3zVm+IZj?YYR%;@P;wBQ1)^ zfs%tD5f3$=tnPz=Wzkviw*2Ibmh~7GguQh^=C(ljRll!z^!pktP;wAvxInSkjFpz1 zS)kZPcG79Ay+E-kFc&Bep1(l(*SZUoV1=P=!+($U1!|1DIe63>lWgJeyoK@fWqOCe zY(mIg!v%cus4&*wi<@M&V~1hrX6!e(?~8Tsncq8dRXKC zcl`muqgFu@|I=_z733f!d+m4F?A_qZoY?j4mV0D%VD=(Jo2aVO)){IPOeP68Z zd%o4-(YLyElZ-0JK@d-)XKIjh`{9RGpPpl%tskR+odY8VELHu^_ZM zOA{d0>fj6PsL&C*K#r#fTMx6FeBF1Gc=X+5(El8S#@wVOLN{r-(oNb{x=E+?eKFWK ze1pYf#$c0uP8w_uLgFSWv(hGRGG(5THiO{0NlTLkYiYiJZt_jv zP2#bRo6JFI%uQM%oa>e=-K1@$n{-;=7pr^Aw>ms#tS%cVau5Ht=3>0%556U*50N>rR)`$zGjTJkkQ@Xl6>Efa zwN1a3gCK|Rs6lgn>&iNB!#USVS(4lgutL)T*w##!oII&!y`eGvy+i$Rs}GM_e-cLH z`pZE;sV%EN2Av!P2^4xSNo#N3)`{Na#k(sxJqj=3artVZq!oarX)=NJb6;sk8R0 zTNHTL?;;-kE~Y-3UCcqK*+q-PE?OpT7cB_8=z`3(i|_ee#G~KEbZx;d<{)r?D}E%+ z;;>L>nTV&d8NLN!7afq=)vNElXBg!QClpo;!$f$UXMLI<+?WB z_s}YrJ(%j5-2XOKz*l_bFz_&Lfg8OApOi*9ZG2*MsLM^yVY z>)^#$>o}NqTE`(LFZ5_0IX_dy%0ZCSNxRJSMjs1F59kQ&d%$INJ>ZOP^!Y6+kMFtT zQ7cc(EPJAAwm14%7F3pHkti#;ry>WzU65N4UNvB80^~5AZ0e!smTNjw$BlP73S%Rc zQa`?`P(Dnz{QNdYfEJ2JJpzN;eDfRY`lq^X{=bkhr#~Jw)B|;Z$iO|j4)(nf8 zxcT&QfZw5EC&xn(QVDxMoGg3-pojWRmin1leYkI6;$u&JeD9k|+ z=b5} ztr-?_D%b3{HZ|-L(>r501^z3$!Bhf|x*M_~$ZnhgO(jR1vMx5bf5+0}V$jm#{X4cb z!)@00@BBAP&!C7$Ej`v{aFn)@MF^+Sag z$^T|@Y~7Nf8?$8K#?UF-nBgHlE?h}xM=Nmc|Bo**9<{^>h;{41DJ@!(rNxVQEUjb< zB-l2}L2wt<7KFXEGy&pV#ABxkXSoBEpG>E*_7D6CfJdzY@jcy}Z6irLjeaiO@axGo zo4ddi&uun$A%<~I2ktH1H9p-I(2a+{9E1+tecPCk5{=m$-a;~mcNFF4@XPDw@IewD zIdt?#{{5P8Z~68<>x{<2sLvdi^E*VGVyXD3quvTF!j>K)YWrE@aMjY@TgTZ`xSvD z$XweJob!sn(q$;Mbn{mPIS9}stlc(dq?E=+R|J+6R|HnD{1rhCg0~{DFdSk_RAAB%wp4g zEVjwSY-5J>EHkkm`-0+83p%Sz%+g{eW@+VTVmSzICT2m{TT9c=#Ow&t039Gd6U!eq z=8}I!ZE&4{N39K0;Ixh8;xzh6S!0Vn!iBY@s6u0S(7~t)9GC9Erknj zsFd(+oScs-{_4jOkY{&A;Tg?-Ebl(be4^4Q9#2~E+zSdD8U#z*d_vFCmJldIu;Y*1 zBb{+r@tt!?_AOPj)V2~Nvpievii2YU@94HoeqW@?xzW%9`N|X@Q7?a3lO2{t-mok( z!;;)T*4QwRmhns7q$U1c&xGu(1%UnxtPd`krrXn~d~yz>UQah0;AUN&fVE z+Ku&;v`l#HCM~I5$9ozD$6+I{r&0OjL{hz;UL@Z&bMCdlhjq1LX&p;UPh}it(Noeg z-XD~$^UvvN6kKOz>3y7W`6NTG*V7BLJw4j%>Cr~ISvi&J!okYm4ji}foCWD~GLpU& zn>WK?yc`eYwo`C2;yt z@a|CH^&UL|$O^o16NXj`oXuhN#mefU^zoo}WFnj;glO0+Ubq9N0zx}>LP ztp67(!+kwHzTb?Z$yJK?!-L~%dgjaA@JLZWxx#^Gxh#OM6akp4wwHO@UY5~zkUd1f z;iyF0S^G*aBoUIy7<6g+YqFFgR$O%zk_ z!jtZs1asTBC`|#FYu}Fd`gVM#Z$YjQ1=lO5a0F9ijv$el-;$<1lQ+A!KJ817f^4XCYVGd zXl{FjTC|~wCrHmr&)rSRVm}U_L@6wSuDlVFe zsq-U-R0KDQ#_F60(@|nP;SbhR`g@jKT3pJ+%?j&QLrViVEk{K0Q zPG`b3+~mw+H3^z(tR*Npv{ecL%npSE&`_*y=-rE~e-9$}a-#&ZvCzHTC?Q!6rgM~5 z69tzwZETxAdI}mm^b(H|g&fWI$!wc1joh{z*$2X#;TE3j3(`WupKj_{5E^0%Qg>&p zvDtUBr^k~sdQ77g^%wblp*z z#f#ZvB;I%a8uHkIS)O9l$pXtMMxDv(wObs3>#?KYqRwp676n8kK=<;R4zr=GFg;^c zVuk4$@)YBy14D^|OBTxs_sfWevosBo=H#Iyaz%~~7=dX-!7nhT5tR~cdGnU=7nxW^ z*6rTBB?v7b1xb%=ScBx$PC@DxV^++w_G7jpyH}b)A*GdOP-Ne57OP6qGIefH*1=xF zidO5%^DS$7f+)BynyPG`(a@C2o~N^YWIcd#C7vKpE+1TGJEv4*Ziu~XG6PQLa!y4n zB?vQ7@K&*pWcfu9Up^^B=$uMEQf88cZVmp{97@;;v<~oba zj#OEvpz^M?LIjyz6#V1b$3^AyntXktDLDse4alD)0#UE_`7c*mo9A>p)thdonkjNL zDCz0e(1-Fq%$$mzq{_M#B}i5qL5VC1j_qoMq^Nw-)S~9* z3rN`PQi6^4QFfCut|T8ebp%a84I%ZebaCXy$xm*wGO0Ni^G3GC%texE<;bc$z53vt zvI0qbNK_3{VYFv|?Fi83$x|R^o$FMOKqbq~T~6~R!)azL_581yuE{3|1ad@Qd}dipqzkbXpODLrPu(QD;c2i^Nmn=zP)l zk{|E}_5+!LZOB^%sVHf4ph?>fbS8g}!pgf!b6RAOs=4Q^n-a(&S3NSX%JzYqw?)BG z>w&|I$|p^A78#9M61kXrUaY)gpIY7^&_}_=M`-W^=f=C|Q%A0!Qdb3X*t42u>VID-iWkwXAs8WaH5Xy?FFN zGlj&=>&2tw#i(wQV8Toi@`?>CFG^naOLD6Hgr|=qEgXPx;sQaaixgzeJGSR|-sBvk zie!zEngpXt6dVh**q(c!b|Q0gjl3jG+W;A*E&yQwZ_Mz|^?G@3rk80J#$HCjb50fn z$qtd3h?AEb*0Q~fQU^fo1r--LTu?b=e+r+Ne1-I~rSKp%7gRI31){sj=!-?_rZmQ6 zwh+}U?|`rjc!-4zkRljA7-STb#|M|Xj@2mv7`R9e0RIE%k1qooB)X(eR3Z zQx1<(Mtp^vWfN0$Vx!4%n*^cTOhM}9UMj8i(IuSkd64tXXda6m&LW*AE$*a{mQ=ZP z5)kZIM8PpvB5Tv^z}57ULH0*Rj6;+weEjetW^YS5(?piBRj&xh|1?R`9thw zT}0-TVdn%QjKLX2RTq!%8mW|fM#e||70U(Q+_}Ka9VQJ~i_OqffvX`gCJ`hi1>U?8 zaXOXhX-R>lAyN=mSaZCB*+MdOKO~cX20RL`qkdAhk9N)Z+I2SpI5uP{05!dL&2CN0 z-krOmy3h<3_wg@GL%%qu>H=N1_lx#X4CjzSc1Zsyn~swJb7``~QA=koM|mK=!`j(I zr4U<({_jF!oNQe!d!|_-0=r@cajuzu%pk;@=@cWmkIQB*%)?T4eqsC5bw3|6qdctH z3Kh8qZba*74Y`dnrK=f`=aJVH|m`0@(mzA?HB|K}! zWQ{rDWLN~@>`OuFF4Ajyr64%Ac=~NI`pr+Kqu`At(I`I%}IeAbyNsWq8M zLFW0HY82ehRHO18j!cz=nW<9LIcKV*%G8roH^7bP^-GYcM!`)w8kNs$@`qUR(4;;{ zWZ%#QqE2C5rH2N%xNGyKOq-c9M}v}%QFAM)lQz%okhV-mQC6m;9)%URHK&p~sWQEy z1W5pS6=HY^U=-Y(bBM}!IL_^mFwf#pL`fU+mE^;wlQ}#i5-b47jT4yMqzGR#CIt%s zlHoxdlEK6_(;!c;KDd8wC#nYT+zugV^W-_Fb2}Xv3Oi?ZqOuuV&TFb&g=IR*?4LYkd&;ZA-cNM=R5bQMU?Ovb?^3Eu@#QyGXHqmHF2~9=i zuFz^q7fe1XXSoT&RE{h#pu*GQM3#!92FqWfXiu zW8)hZWooK1807WdTwiZwNVb2{L1v(gg2N_)QxR#6mnf{Zkb|84u%-JbO#pb-5xh}F z<#C`Kvfe~oc3!>hkeLkBhm4XK!arn`1P|B1M67=oX=CH|VIvaPn;$kJ<*$dL;LdtT zzm~IL%kcQ+p9^2iaf|oq1}I5#eMAYkK8mtS*GGq28J8Gk&{JJvl#zIU+02ub#v^PZB((K#o$eg13v3N1I(_&-{dKVWW2`-5poJ*79N*C3 zdg8cc!6>+_xVXbJD_QyCC}mBqdB{)*(3op< z`IzZF34hG=K0mrd!D~ksqA3yngFPs!ZMmMa;9Vxti7gez7PK-=L&SW{QLMt%2^9d*BK8NnyzC>E8dT7KWFl? zlzMpGS@pQKu8v|?TU)W%*4f+FTP{vcROidLs&lSBJMt3<=Ks+MXZB3!Qk(p@7Tk$) z(^I%v`l?ECT7jqQ10abwXrlVsPwYE#Rm7hsHl!xFr3%Nf`K$&Bc+C%22s!ZCm>Ltrz3d z-s38|n&U1N|j@WIXNpz}Prtc1b0|dq3)4Tv+Hb0#7Dq zXcrmNqH&&JOzSAUipXoKSMI4U>d~htlM7MkYfto8otRGG!%*}gZPx5bTUNA@dPWph zPK(W{=tHV3Ia7lC-N`68D%6icxSxOs~UH`6TYvDLz(@L5KPFL$=S$J&WWk{j)r>OunafqZ>RU9+A|F74?_JbiYMczpng^2P!w@99CR znGFX;8`9#SkXF7?M!~a28I^A)MtN*cPd{Q{PybN4a%;BNd`q9b<}3K9&CI6Pq{Uv7 zR(`Le;MrbB<&$1}<&V{Jmy9gX=60bBUnk|tk}r$O$}+R5uk<4GFic)D<-mf849FFFhhXA?Q3P05;4&R_*KT#h-N zY>MSOvBPw&=_(^VuQlaM!s3OqbL?!!6kUl$%&CFUkIfTZJ-*@ zK%(I5^bkkoLsMd91mJcYSqVT^!LxN@WN?{r5oB<=?MvXqqTttr07 z(bYQ0b2YN)8-R&-J0WXiQE>Y3x#h5=Oh>_&3KJs>a@Z(1_Tj9NHFQ!gh-{?3+C)zZ zBPN{ji##Cxaaa!M z@a;j?J^1z@Vp#*{KKvzCV>uAt#Nv93Z(=3K8qyqyrWge`XWgRjbfL*RV$adf(UPCyJFFPF^u=~rp<2$3*Yoc!ziH5UFmcJ5yy6%#VI6>Sd zP2N+(_k-NkI01NaEd{8*?0{gl6jCowYs}IvGTwkm+eOA3ECW03c>_y}f=doI_m^Er znu}&iVh;kVG&iQrN5QdZmYwLRl(L|L_SC7k}>jDVZQat?0#D%XKiMh<8B1c** z`H_~KOVBD0rcV?cNl@e+;KqiYgqa{w4%zsK2i+*R)Dv`-qVD}vMCbbm0 zYM{w^e?s``7l?WTnO;P}f#gd|q{Nq&WRWt9fg~*sBxxlB8SL>y!F6@Nb~&=KQ6(4u z#jRvi(;@+NXvg~kR+*#6vRKs)5zMUx^QfK6vt8gSCjdQ z5c%*;r4t~!Htat*-#U0IG72t%%@}t0YDq8@q`-UT$xs$ljhQaVe9)LK$;d)W%bhL| zeYt(`R)A+`;;f`-_oR@Du9hN53n;V?E=#95&0bT>$2~;A}T3 zCVSa#Qp}{6X=2A-M!{vpf`ljQ4})+*WWFIrUh;;R?PZiY0GvDcnLTpl?a-)`Y*ZKN zlN7-n7;C)+_u91oI_1dD(`*-mRR+oNl_`>wRCG?eMWo7HhE(%&nJBpAGTq%#`DT#j zWIG-lAt7NN1*eE|x?cOFAl-_BOCpq$sx%UERGx6WLxRGI;c4N5i+w1Z58jdr*O<2^ zHE#8hd52}5`Vq#ADELRboF*#YM?p~=+2Q&W0lDz5K+1iEl{<(sQE(}V%_+)|>Q)nF zCq1Nd+SG(E6>O#akzO$4aC9 zBgt2|nj${*`5Q8+P>1KQ(w7gb3*_8yWisy^2l2SgPCUuD+=X% zV<#@NNU}n?6^=DZ7EQIQrmQ)!s+JP;Pg)$N%LBW-P|x=oCDdoDYM)K2YBfh9aI<8< z(jyt;md=>edjid>z%K&3N`1`>VmQPecMjDY0W3BC|H=Zqlt?ag?& zje?tuAS&PC$OuT7E|VS4&j_O6?^{MdZglw+ET+C+6y-2$rGdV{DQ1^KLNKaRQh{)bE9#FCrTI!$xC}}i3^TlojUQ%N=wh?vkZk@hB-neQ zC*8Iq63<=`NlGB@XhkW*0mGNFi5($6n!NZFEa8In4P7#oN|!A2CbL~cI0m+qogdhq zJv`e*d{2@Gx%tYo9N|1%fsG7UIU|E)J3iPHh=R-O1vV2R0P_ga1Hk(m*!VInO@J>) z&pxn`90Qy4cK4i?x}?f1l2r4Tx>0b6Udj93zI@Wu-~rEjr1k+oTY9Q{Cx{- z%^87#bblrk{N%B{`~%rhH+45ehA zA4;R(ekhH~cQ`^R2{V*Z)H#PzQe`M5)%;Kz1vl|BDxcTn4>6jYP)cmyM7>Z-2;Uh9 zL|FN4Y@v9m=VdNU_oiws6p6$_FOjl^-YDgGp%-)9U1AcGPKD%A=S*R6 zs}9+py0@J?b$Hf`ml?fsy?B|?>)~84k^$F?WRSmJjDoxCMFMcWNO}S=+ptQ4Z6@0x z!FFd932;Fc;QbA&mwN_(d1~;pE4`8&!z#(mIjoW@X8@_@ht(*!#Ln*SsC?2i*RV>$ z^jQ=!KdeT<-?y+zZuGenESS4YGRf;<2uu7^7 ztE8GAR-@o1c1Gp%n*1R~lM_~n?VG3AGQ+Zk%D&A?tMWjy=-Dfh~Id%m$8cPdNEds=g(|o5{~gRW#?CW56`vZn~gqsZ_Q?-Ph=Pk#Lq~@ zp|NST#S1uF>IKj!IMf(ifspQF6NMFLa*&F%-5ZV41c3KWWN>8-mB)c{$a;y+zPj~; znIt;b86`0lyv`_Tc|!x$H0P1}xHnQC&x};?qHq)(IZ2I?A_`v=CWkYfk&4n30MDsp zOZ>rMkn2rP=tr(MJwaB2gn&()?P-&LXd!z@yJnH?$mA7jp2py4GLhqGu0k)g8_P-` zY)}xLzL)5dTDV2CC=b~dnbTG|seaJZXvkX9l=vC2C^&9ZfS#lBCATr8F98#dvn(AC z-yQzou*|Y;-YnZTyIEH66|Tm-<0p(rd>!`_Mx^9*+;q;-vZCN(S#y6Km!!`&Lr+Q0 zwL_ntdG#gn!I3k{TVzowC7DlI)i3Q~7%H7>U;>N&|{ zo;MnSNa;o+5H6sb&AXsUJ+!8U3X903IDoW=~2gqTf{FBVM30|W*c1((g# z(+C}r`$Hkpa`LjW2s1$@#|;3tg&j{~LImBvYq(~;!nTnZpnmI6pM zzZ4J!H>H56e21eHK*EgI6fwUP5CxY3d|%#EA~&w}C|rIiAPO$7o5D3VMM;gN05Z=n z1w_I9Qb1I`8I%I*&S(LNCO^T?+Cz|pGgo8|&s-7VBD>yXU)xiV&f>IC8mH!C2>qL zDYo$w8!7eJCpOlVisima%euKUwz7v*ys)#JKa z)^?WHcC78_EVuNwcC_Qy>TxYCt?Ntc+t(M1m34jV`&!M9t>yKVj;_-Ba=E>=xVCJ5 zY%6!QxA(S}`a0INmO6UPkDcrKx>{R1T3fq1)|R@u%#U3i?Zr~Lx7=4+-`lpXWPa=| zR@%$Owzk&xaz|@rJ$`J$Rr&f|Gkj6LIKE@D`o-xdZku|0@6?_<58QRdiS=U zzO!d+ygbm~+dQa0%TbuxbH}0E@A>IF)q}5m@xbJB2Y26o@UFQ~MtH+udK# zALp2?o`~-i3=H4{7(HX-6TLmqW$V~vwe!&KuT1Ux%Jf|?Oy753f(1FICtpAG=pBV- z0d5``C`>W{yyg>^UB0zP^inv#(7FzTJN+`+pVz7?w02It z__YJy{?-LU69WS>l=8uqgYQjFJ^IA-UGGlqc}4V)C`D6&yoc_*5B<5QwQ%sM=MFr* z_t50S2VZ`9vbwCNe+)`b)m>dR{mtFePa5qN(7CDmzcuyPa~Qj+`}gdB^To;PNjHw- zzW7blI=ehs{cUe7i~$^Y`>WGWJjUTLJO+y+&EvO@qfh(y?mh78+f(75qJEoAfs| z3Lh!7fcDgV&r=i+??vcq`the=-*#ls$JmHY-n7b?qSrY+%4Ueo_)I_a^{H2GOH9;Q z-=WXnGj;DBg{`IH(DjwEiGlIv%ZG4JM`cWm?9IJqe2o-lc5CbXn>)TTI9#3>sPy1V zJr#_GP_|M|Kljws<6oP)|DHp;A36BmorRw3;2pLNZ`KG~0N-SdV9jV{K>Lo>g@Z3W zb>OA1SrSIKFziCyd+f=Wt`_#5Lyz2780?i#_Y@A@`K9T}cQGcGB2>3Qe}re-usazh zs}~=9Z{O6HzHYh*Bdwt^*v54`ier_w0we?N$?EY}R>p;#o>&{@GbxkR^Nh*6bP}B> zBMQTZr@Cf%_~wZbA#mv~s7G`&S?z*PNmK}f$K2852kr;H^X`GCUYe@D1s7VlpfFXv z9a_fpI<$MY7H4II;MR%0zW!S$t7lBzfA4{Jb{k|v)^MSpODxMypvx*F@S9Ek?6J;q z|GSSL{N97ouiKw7gEd(_!En#ui-**{kzKK4pE_DY3;3=wH;j(rGe?uvwMLt?;0Ing z@b+!f)jJP;Wl!RK%*eqV72tjje(4KZ6U$v%P^~4mj{eA+D8?a|V&~diiq}^LEXAt~ z#RHGNIrZ{eCg{~7DxUQE%dhFVZo{^#dak*Ai_2n}D>Ud&R)2Kx-Z!T1doW||E`2kL zhbIv2B&rlgN7u*$W@qxZOfvi~J~Ig+)A!xK|J_H$A)D_>6|7RL+G|hUxerV*^oixV zJdLwD_};_&_ddFR-#rKRB@T+()lLf-n3iztQ%}Eo@U>?cosUmV6iO7&Fj>8fj>3cl zZSk%;LB-I8pM*$@F8-o8U58UD2~??23t@(q)y>faFitj$T&j!i_ zFx*=lAdk;PdC)5Edk7(P>ZM2azjc>khP0uuU85WCJcU{R^lJ%E03G_)gVU35Nmx4X zL+4FaPj&cSJ5v1IL}eR3J4W8WALXq-Os2{AjEq80w-#XiQ+p>xhr^mgVd|T&Oh0t5 z7D>9AWoryqzHjD{ng04aQ}5h&apAmk&K84i-Z+5IoQY#R`#k7Ta-REND4ci6d4;L3 zRK=sc{i1l6m)=76oP49uddU<DT#mDDT zTahWm=q9-a>;;25GG^@u^rv2aN8Ddk=Ta};Z``R2<5fi%;=q7tQJY}DE`wG-TH6Xk zokE*aFIA@>c+CtiTx8ERNJcjdl}#+$ikx+_x(?y%;J$svjUr%9^cJSxdfkLI=`TGxrGVc=0lTY*9)Cg}nk|5}mdWb!o=YeC z2g){RNi0U9JX!tQ+|2&zd#3iho}UGw)2Wx$(S?@I41djdxo4moc)V-V*PS59A_775@W*8^yJIa)z25qoa88C znqky9stIPgwle8On(i&_*-+L!L&AsETJ=2Gn#m$CT`+CU!a>`rUZFhrNh9@?gQ_=eemTki#hFc{4m|qW^u5m*?8NF}vIQvc}}pE>mW({ysnbT<&UdL;;Mx*k&+xeiuK(~o_7>akahr?{Zt_>D0n zm28wLujdd$8$>caGtLGgA)^*&gf#Jnk^W6X<4o`+B0B!a^hv@3=4(HbK5Y$mFv-wi z0?|!YYZL~NvCRS*&3m8F$MYH9!#tf~?@8HWXPTluRq3PDb1(y_BFD&c=%R(C& zPF9!pVE6}i^%N(z_YA|ebW5C^e9ol+{p{acox1&t2j9CN%OFwq_g*^ig|}opbhe8h zryqM+9v^rOiIoMr3twbCuC=Yy+S^s>SYK{!UAJ~!r_^g!j913Sdv+EFCMqa{j832$ z($`-ZD8sLJ9eTcc@a4}JZjeS8fiz;&?<#a6EqWd~^z=*Lg8*B^04^wW6kuX#l>r|E zueHVXy&da1i@hD?w$_p<11*scw+{43b~9PU8UznI)sd)IKoQGa{MbBMU837`NQZ_E zAaXT)$JB*7C537p(3DXG+cAvLY+CT0R(bSrQ1sbRDc!6~X2o)GWW0YTtl}ETerWd> zpl?RrgbmEV%p~|GqYtw%f@R9gL)qzB6j=7|f9Ij8>Vs2vJ#*k&Z%a)gWg;~WRF$%H zp~AiRqN~(D_Dp~6>#2<5s8Ac3y6+9qq>Nf;rM0iK1C_kBUG1$EQ+jJ%-`CdK(bkSC zTSr@0QA%%3)e|rhqeU4(Ngs>j zvABXw8ZL$~mY>GK8INr~HG5HEBWit3BJCxKBu&lD&8t^mjOB)Opt(43OL3PJcn08` znpPJs`bgny@3*tH6T7I85J*r*%x8cF!~7Y5Hj&A|z|O(uTW`HJWvhP~!aDsHggwpF zJ{TgBreLz-TfIF3s`W8h-6fg2RwVk%Dhg5?t;^*1B;|q=JMhj|r|$U9RCTXWj#<4F zY>5k*qfO4LEi8K>u{A0@`0_J`B%S!tRvt{E$?D}Ii7v8X(9$GJmNe6ky)g9(Djs`G z)npVo#s$DBjqEDGn@->Tq)c^uUs-$ZV|oUQL)%%tnXGEdDlHC8-T9l-k*P@Fo=&auc_QB*>b^HzovMyOR?vc{_!1pK{{F82zlVckii;y zVC6D_v!4n1<1KkT2P7@W`>g zMpC^_OXlPBgRdYAz%@+iRh(Wj@4;$#>diOBk?7)}gC|3PIEVa2N6G#B9+Noo>`N9M06v~M=8zss#DK=joPD3kI2lv=T0y-oi?qA0j9f$zV;$=FnGbz zXvOX2Wc4fqzzJdGed~2IA|}n%4zIVPYh7n&xxK60(owFM{fpMVzP3_FrMJDUy<>f4 zZHvUNnxXB z`n119Sq%mIk-ghhs;phPoiH;ir{ zOFx}08ypuGTr{&{F|gNH#wSLH9B@0Wr}x}H^`$2<+_C_%Kl=5M9)(YR_w)@Ew~tAc zrnqbJrq809E7|JRTd&piA;b+#cUEBTeh2v?=(-7_7?AY}Mk3h7{=N6&qvS(3S4NvP zby+bZ#T^{!A4q;OG;Pu>p5vAsXvUbMhB5Wd1ExAG@_+ulDbyTwm^t{~i~HaHrleQB z6Waw>yDDE_ra#C(E-qX>Haw(r4VgH5CuP!FSq=Lf9p-fqWTZNy3+g5(E+pJ^_|+`{ zfzGM3Jr4>ovlx?231lKh?J}&BH$74D7_5*J}p49n_;1?B| z*GN`>L17yvoX(l$5BZHTtXXgG1OT$}>4E8-*%LYN_I(A!{ZVY!_5VUe7w5t7wu99# zA`wE?)VxM_&JjxY*p-oMxYzd_did!=b8|uGlT}EAtdj-Ohu+0j&(vGrnYwc~_C$>0 zr(S-0>hayvFMbmxZflW}bNRwd-n1U0l}KdhK`x_|LbJB=geev~h|5z?KeB({!)7go zxnw%M|J}PU#>h#YyyjBbGqC;2@0wPk=sCm_1CX_8K+sx&J1`i=HM+w1nS!m&p_cW+ zfkz*LbcKxsQhv&!JO^>B;B?4-I=|EKRfnk=|kF}?RmqajNJtC7*l*zmwkGqhuq zH~o@Ur&yF^Fm|Mko3z^9Gd5aU(<^n7#7q-EDUQnVpO}HNZ{^Mm@e#)I{!1iU<%h<~>3C$Rz>IWCF4Uh{R@rjQp+}!`n5>o#zVt3KjKa0oZq`+W z$=A(vmBPk5*zkU&^^(@!!l8#=H;e7*2VXJUSQ3H_B@7x&8KrAfM((I4kOCkl2GES+ zCFU|%@9ZDzN1cibeI&8JhXOCS%NF*tpU3*|z?WX1-u-!)F}HI~@ky7ckbj$UWnv^k z9aF%ZXV9lL5b9+PzxfO*Ql#t@WnOCV!t$gF)Hvb0`MXE^qx0t z&Sg3`_0qoS$KSO|*^}630!1@Bp;#_wx`~yA%`l~xI(pr@essD}rDN zsq53EIWD@HtX?#==kcj$??wzwiRyvHsRxH5qJkuhvJ4fcKpNO~8r?NnU1hw%fp34i z&<{8Jd`e00w;^%XNV?9`L!9%7Bj+7NJK~)!KGHB)pRqdxT4ThzR3tkuSQQ!@PT9ck zVHK=P^KjC70z0x_Vr19aFkuKpon9EC7iR<#XPQq`a+FJ?j$+Q@EEY4+{hO@*E7o4A zXnOT$I+TcH9!(+(lSpI5ad2KPbg4T|fcBd!NLJiy=O7_y6DAn+C~QW@}Oo7e>QbXLi=@)*sAY2eyClXJqTg&0G!$gg$n0wL-Hcd z45|0&W6P{}Imf;YM&s5Kwe80C`3_y5d4oGdFKl!8RJuRFSTj2>LI^kk7<>T&nfs)< zaP}EH)4&iff+e4Q2;&5P?D73@k_Ri*3^+a7e%NZe>6_h5 z*(C{qffQV{90Ln2Z|*mLgx-jtL!dooietl_J@?rm5HviJv{${F1-D5V%M?X z_vDbgN@HZjesBP&)L8uN=YN!k9Nz&9Sb7_N658HB&42VX)=7cx@E^~gJ3jj^{mQbML=s<>Xk;ykN4Rk62Hc79I%{hz0Y==+wyQbQESFVr4g#v|=p2*=R(#3`F?G9o6D+%tpy!3Y|8! z0p}iB8hM9be8l-UoF7XYMQ1Nsqvpn~@r||{mxyVmYwa?ez`RN%HDG!eX_6Z}E0<0yCoV>*I>BhhubS-g)sIgbK9z z8#eDMEEk~Cty{g+))5$NTrSMEfX(io4w=|UQM}o>TT_fL&OP@Ykt;-lz$;CquLWF( zBM$J=dEVJ^p5FvIi`G}#Rub}P?a5|i%~BJ^uf^h}>x9mQM3m7n$agfU~o_iNu%6 zwuCIK{6#xf>dtT>*GZYkhA`D=^mX|W@dL%+*>wIP!r4G-CWqPvIuB0Gt@2aDlnG)a z3)=)i$A$Lv;7mNCXr{-ZfW-ZM!ZoqMj$6F&`Wvm9SSM}fI_|9Cq?_Bf)aG^oncY+2 z=;+u|^OCgppzGEduDBR8uLu1EKi>p$nc2-x zQ}DvwH=y}BxWgX`x*ImlFOq^@i8ZGos2yOsa(1&|W+xi7F{7^5iG)qJ=-+gBYVOsi zsQbsIrZchqTKMAG`Iix|YMZV*-6xQ5+jQNxnnMbtbvZxwd>bcET_gc>4&_kA||>5F9VEg`OcEB+KV7t2o4wv$0x28*kojk|-Q!3-n~F?SRpVh!zK zTnUqt!VQP9vg>J))rce1XW+Be(I)pW!e_lH=~18pHKeC2k~;j6h^7S^rz>bf7l9Ub zCa|M+fH$V1WH7GS4A*sp8O6UAV@oUSSC7W0TnNJ{K%Yr@WU5kvmlU_#?4B=q zmE$ymObabK;ryVfjZM^2#r9g8beIum-faBlQf3XB5-afp1K6X8pb-+0-XZ{zVqx1C z@jJ{jyXY{zbYeHOKudSjF)@sj*+a{_lz*Y09V z^&b99)91_=iqGIyi+=(}_GK6_;zQuJFippa6UPyFk~;32^EI z7QNQE2KlP>a$ml`T!Jelmm@JPZ(M%Q*hC1Zyc5wl$?VyW=ATEx9Rn%>=F7d+dVR3c)5}!b<&CSz6)LsS>7B(ga>$T)Cbcl(rx03a zS&fwZU=3Q2M@c@;7*>N%q#B|@Ghl9y2pKMGX@Oo>Lp+$lQmiY&Aioi!C0tfqhqVd1 z7i7r^K0pn6$r&0vf%7Sb^oNU0@e*Jn{OFQ5amz(F(WWS9m%fV^2YHp-Ks+uJ`D=d4 zZK0ZwfOJ5(;YrZP-&lBO&xQ9sW$N(31Gt%^YGeU#kWWhp90t!zADej<8jA;G?s*1+ z9Gt4i#+rNn5A#Ri>kEiu_LKCj@FcXaiQ0BVjUr9erC$y5b6GT9zzmP`Uis=b^T)ub z;CH;vjbbe?{#ur)wii3k2oke-zZ9htXQy{@?~zuhxnXi57RN<|3y?)a!Vi?<#s~X8 zT{ML9R%#)mCL~v9{w-BZBfLd%tzm=|*d{6>9<(LF^pmg1sker{txmmoLn5f`z7jV* z_tC3fZ!0jCufiU9szYhcnxksSFRj~ z@ABIxk{ND@`NK!>>cy0-%mdBFPl|BjZr|>^Uz{ATRYn*Oq;gJ;b+W!|1A)nzo!~8% zF_05&;0U^R>qcPOCPWiIWLCO|4U29xS}Be0Qebl>Xu=!aZg}E!mP*`cXwii_^z*0o zCU=2Rc2H)siuMl?h&ndCqZ-h>T!SZhVrsgC`0X_=nwkAaIE4^3#NaNRJA`}$X05pAHJ+s8CG#ipqA*MDoFxV5Cz@42J)A|YXi~DD zn%_5aMS3WApd#E3TlqqEsVx+g@*{?O$n5&^&;IN0*#8<`B&T*t(xf1Q0jQ|QuQCX> z*8{;qw5+Wh+CsCD=+f4Txti8sSxUrLnTy+$l}W^>nE`-_<5`O~b_vQYR;c;~#KD6f zLmIkp=3p`o5Aw+9cEi7`Q&>Rm?Jx$r2UQyhFt|78fBS`AC73k7_=d~^bjf8`5Us`? zR`4SmH9Z)&ylXY9l?JafiqmLaO%N3AB1&dYK7;BLdW}b)?yD{~o7T@=8qzDBclKtW zqTdI46T<08X_SWiAu;PDzRn#sLmYS+qbsIL+o_2&eMiMG>_=Qrqz=C;T7WhiTiy8- zz$gv?fYVU`JSzaNN{qo72Tzv6Byk%MD>|bYdg7>`xzU~7uNOxFKnAxP((}KTAu1Pn z%cx6I!OuD_hBguBy+bf`=sHgUl8MRDW@}A>`>t^bD-mw-@bcbXp4xkWv z@E^ZfPn-t(ira)hs|=^sMlnLX`GxX{Asm!;!sn_a*h&>IdN6mT+9j)xo>1D!!trw# zUOg@`=g`sAu%~Osd}=MsoYG6wE0ItfnMhb9qnw!)(QMr7dnfq-*CNtV-aLnOahV5M z&?4@Dt|xrsrEDzb$ODcbf8GS9i2#p%Q{%>mk^P!|!8jImnB<{bx83@%&BgGs#LSEEs0qB; zN3k9LFazFv;uG7aS)73m0nIx>I)c7Rg>%h00r(`nelcm|d)t@-CunvuxHpS19+>Rg z99~W~W*gFuqq5p$WnQg$B{*f+qJvfeh*GregRK<5pWMR$`3wn?6buDmX#)EIS!XFe zyryYXkf%`vYY+2ZGdk+=ue^|3)0NVhgh;fo=m68?Us~fV8`+~&%-$zT#LV1;X46Hj zB#iqkqCgR-DRWJ-EvuCnF;$R1jr=37yV>Xw36b|AIqsN=vc6UtsG|?XWkj+S#Hkex zhJ(1v-xQV5M1C0aQnYL`_vHy4kj$TCk8ny@psS*QOyq+u5OkSZWFL0k&Ea3ronf#u zyY7r5OPM-fxFE7jLA=bi6E1};Ig<(~ob=)a^Vw?^_FVzrb;K&HYw1G^8{OB1s!0}Q zy!cRvN@h=#N{yopNA7qTfb;{18EBJKaujO<1-L*SS8tOZz#C?h3b?BEL8$Kl0a2?i zdm7NBgFt*$syLBTLHlG%0WuCS3@bA+!mY~eR!eXsnYyB74v^7WtvXr!&!)$C!`$OH zsgxoFc6_oI85I=u4!-Z+p|4-I6kKK`z+?i+S{WF)38>d0y3p|CM$-PylBe9-_Cg$h z6h=`f5Eo0HESz{thwa8#yCwluDO;=?6N=HbIQYP*)~WCuG(kTi3&0}Y>P#)*sY|-; zeR6kpXFsh~wJFB@LYknU7xd>JX-0{jMqInqr!)IDug>(87;_;L4(9VGRS=K>n3Ts* zL`x{+2A!|I&_QB`4!>B0l^BM43$iE{MHl98hwot5Dh9LcL2a8C!h19FJ$vBg=qKf_ z%8UvX^2T(>GV@0eQRihPI@v4;ns||+h{S+G{{X5d_7-H-zLEim$hvl^VVktFhz*o= z8U7VPA@&|c^RUey%^rAqcF!>y9bncs?8y)?>k-brcm|BbaPzXYJ8Gp-WVbXMlX5A} z&K$)}qNEU<8B{4+6~+4)oaQAGF)n#3;O$1zTs!7lvq(F zv7)(X>NI`z*G$4S17Wguy`>s=n|Z>|BCF^SK~C?{!(1Sc#bhZYx!Z1Cmm)~GGMkNm zt-MCCyjra*e9fXcj%ZfY5c{UfPl(-`-)K-Fq$r2tbvm-aKeY2oBndeelKgoCa5NME zK_a~ZeY4OPr4PZbwP6%#6jae#GlY!^1Imn{Tru zm6D{bVj}XH`HeUcYZI~LN^2c3j1@!}{%@qW z2ll{K{5Qr#Y3RQgWk|U2Qy1W`E9Y`GtQ4 zN`E6V1IZ(vqlJX2LcKgV1ixUtuT;+GdgM0m>jCli<*TJ!e|~VVhZ)+9Yx)X#c+smv z<-u|d8C~KZ$p6mes(rcs{#<#e;FVr3ADe_H1Q={45XC$iZ|WAi)7?&)?=Wc)GT-c1 zpUu9&K<;LPFHh8Vjj^^)bl+hI4ygC9di2i z!3W$^%@36;L$v{%r;e>w=*^XCePuXz>%Ao%aDQ*9x0*-&;{H-@5Ossi*?HqOn6S5) zJrSYv`h)(|x5cPEmxB*&7_E;3*>ig?ymcD7f@C55E|e!hEJAyJ8A@yD z7;${9x%SxLDW*(?{0T-Na5B~93n~GV zmD5PMB4P^Rs|XBz5KHyaO#7IlXw;rj^f!dpz1R+YGB(-SaxSanlmbh()Q z&wOGk9Cqv-=4M;A5bbkW!=Z}zq8=%1^!B~x={wM}_8&$wCIwPVoMlAdQe%DJe-|Xv zb*c}l!RFvVm5?)oTHUO#2FsTC0xZ+4Fz;I^md z9426^86{sDP}#Uc?x}nHe+g2d1ct0^*~&bU>>6^o(4|bouR~9)x;BN1L@*mJi^i5^ z%KKz~3oWHj7^0j2Y<3iPMjDckW8|XHNK4BLo%-JvF2Vf9g z#2Yp}xMt&qb;Vz=*|cus`XW9&uzq#A(A6uUHc@Z1DPmoYAjR#)Fw4Jqp-vL7ux=@E zLLXszb0b1KXx>83ml?_9cwwW)Fb@#@+#laU5F6_{$7cfWcubD211uf-t6_C3s5^zv zNy`Wsb@=R|Xq9)HnqBKLcowuG1`q&*;cMnXXvia>Fzh4YH5`(OQz57PqT38iJg zUOZ+;v|s9BK#L@px%mTvT>@VEL}8`6IB_on=a2icEDQj=BL=qsX*N~}@7qw=A6ksM zS38pV116u_O_PL8V`;OC;uVZzVGeegGXEawcPQ4hk0!tfhvt9S0r$Lz;xHssi;I}G z_$QvVg${D^e}0aLVwkc>N<2WHBQEB2iUsJ` zi|6APb~a-zf&)38xgGAwut8sZKvgKk=L-}+UVB_yj8 zF2*ZFYi2mtBx}r5VP;eIX@~sZc0Vot6xIA_B4RdpdU^W=VQC317zDu`V>n4FvIbdh zmW4pNum!j7>QWp_b{tJd=A5HnUDTGN&7k=&Y$Z)EFo^grBM%BUzeEgJa;Bj1jzd}c zxvYC`MKs|;azJE1%)EqH6kUqQUX|@fS4h??6~$4YzRRM~NgBOBCYQGI{u@Q+i-(Z= zYN;VmFB8&LbfiSnt%R-CAs}o`T1BET2$_OMZhYnyzIaQJ2Stbo8V`PPXU(w2<08i{ zX9LU4XnIHy_0DPq$_$@6bva7nrpoFKccwfrv=wxQ%O6?l{iFQQ&0YdztlTD}ao z6tpy|`xeG!%aC<5B~s)nfO%vIUFf4=PJM3^pYcM-R93rVCCu)-M@H`-$7l=_g?k@S zjkaSl&ozfngEGNCBb;~vh;fpgq_JAs0#)5|Pu{J6ixLZ{f5uV^voC%)d+2lOELM-$ zH)Gjmj#?$TwA`m5KWAk^7!WmQ_x}k3)$Et=LnUMk`ZH%{Pri>bmFUzF0cL^mQU(i} zec`i~7f@*Nldsbk+HY|9QUQK1)f`l)p-61bZqxA@qJc5fmornxh4}QcWXcDPNjKdh zZRz_iVwp7vGc$@!;EUQle;O`Pw9|McLE1w%%yXPK5Jd-4;?}T4X=b=6d4xh%`%caN z{+ZdsXLVBP?QHdgg06#>Fi2HdT)rrTCiq zFJVo*sMd1}lKK5CoNZ+HJvhLNBJgITPFV#v=Offv`J z+gBtb+>K15SYFVVm;kYtofx2>)>vo{Q$Srk>Zz9N$KL&Vk;)l*o zGh#2Yz~fj!nCX@;3yI|lW#E;+=n@`&10>XT58K5^7phg#CJ`@ApIo#m%89@XvKt6C zm@%k9a!MK)?-!@VaPjgDcL5{e{fHGGRyBp#Ffd%U_EHJmEAZmqf}Vhr5Br@(nherY z_Vg%SQ{K$Ngb9JIRnDK>jX*HW(#F7Lku4vTfOce_@R$#n&?F{?jMT8lwrC=lc?#pY z(-mV!KGMoSr(q{elv>6Gg#}oR((FYL27s!x#LAk(PvGPv%!tnlH$_gIQz#xFtXo>D z7mmU6XnSGS2;3n{>QFckN@8YDh};YZ7~c*}WIRP0QEaqITbCHg6hNm8wX`>Rh;Xd7 ziGTqHKgHU0-owoUOfaKmMDA5`jvDUx-!OaFd1vPblQ60jr(SCXun^BeeKX)NtC3lC zB|mu!i3(5y61k(i zRft>?5S}X^!fYYT@#~pa;Q43N4!?GfCFbdA%~rqNZhPc%!aDH_Pm5WUFo7At)QU=k zpb7X$q+$uLoHCh-J2F~_yO@fZ$tcangDNl+)drHA!PcunJqUxPo%RCi64`OAN_1eH z)CxN~`wP|aV+DE*HDNWSeXv1k+Hp%t=`w?z8+*v=Sw|>a$%s3 z|5HZw0CGgpl(bSP_vHGAhU9o0=<7pw)Sg^vsHdk??qL*3yr6DTHG4YF{;wqrw3$6&ffZ^=`+-%=UdDNhq0Q5iBUSb$Td7xpA?mr|$Y^X! z?`iLVKeMOar(bITPVnAp4lb?1p;FHfySL)YN?*0FR_PmJZf&k4kN04%(mOa<$q&{L zMbn>WW-YSEsXAKHAF%_vB(5l(dsa!*H()2g_S$5n1cliU-gUsnFK}0Ag=!U!+u*>NJQrj%DFicWyOgjZ!$4wXtj=>SxI9|B6-Vl} z$=D)nj+dm!;E=5|Ee=&wnQBMRJv7Q1**6wzA@w2W< zkG++b2NT2OSp~1V42jil${)krX!qKVny#sqvTD6xJz^OTTCX5rm#9W#P^cr76v_1N4NvdqqYNu8W8V{e{RDD z_-!)&=tyGB^l$)wZ8|5fNXp=1+19OSY8)ViGLm;7ltN-^>@-Wkv&P}PW;9^ z@?mWwNK5>Q$ClAYlIGRtClAL8x0(moJ9;{he-r+hH(l@e7R+6pX3n2V0 z84jj0`meA}{wnf2T3)54l7Uk&gD!g0O5{+lwET~D^)OKwGT!pa!lA$H&0D&&~Zaf9x!zNjI{Zl}q<` zSU2-7XmfJOnzAWF$Vu~PMkYZ-+O6ac#;qKjNhf0Q>+`4H#~e8Z{;qJ8tk(59XpoPfsSY&1}(ww*|P!k({ zX`KL5I9^`HZbKyK`*bp#1_aGJbF#LhuFBV;x{&o2P)InOcE$%G*nku6#1$aJ{GBko zBXQhgwCx5cQuwoniYQZzX7nr<#f8@P>KRd7wONAYFA|Jx z_A*&Wk_;jOCY&NnW~f}?n$OYFkjY;3Eqs=3b9r-`2m>YpZCPoc635b7cMVJIR)CBc zoZ;Ywm(Bt#?HsMKq0R(77N$)E`!d=a-9xuEGrDfQsD4h^YdLi z$lI8~gI#s+BIIyZp3o8hAHK8vlu?1E$ay7j`O#b25&(k`X-w>9ra|}Gbz{?LRgkF0 zi=-~K_-=U%;TPu)!b=1ugaAg&E4$X@E`xU$0TK{uVh1t}=0>_oY(59@qa0blX;02N z{GkLZ(x_!|z;kEa6fI2vrT%bM#^X}yB7uub-ebQ%z?0Pb(03f6urd{jO=h#4GsKjp zNNK`22wB3y1>_yI5xL0xXdFWZ<>HVq7dTI_Zh?9>9VOzM^7btNjOtB9S?W~44(UwH zuFRlq#8cru&dz6OEl-mjkHRtr)_E-f#t8|a*R#wnozQF+7lj6E#$Y}V(?zX}-fKOu zwJ5y%@_XQvT(7PaH@j&HT@Pd4koTkb9-~LL)Fx358VZV@lc=P&x%krcA6PI(d64$x zpr|AJJQ{o($8I3%Lq^-=zBR+edp2xbzZJOsQ3%StN(~|q8*1ru40yB75Q=qGs|yCI zS=@@I5|0P{*%Ts#O$>=#biR6+X-U3PkK4DN<7}98+^UbLs`vf_`F>eeNLgDp-UD4^ z<2`gO=`jpNgZ*Z8rlXW6QjkF&hj+8>0}>2C)MID@gny?eCasm}?Jdzvq^_R;9vwrvJv+rTSwmfCgSF#DJN2~2i5emp;0+hZ9$4yM zH~_nYIQk;+BzH@%unF{fPtN#yFLX@HRh1aB_;v0K#^V*uEQug<7H;6JP$+ z&ZjgqFwj@14b^%pD0nH8B`RR{_f-p(fqboJsJEYAE^l1%H|!4>l7-f&Tj1ZRc;9sy zh_QU%55-2k8(|i{O}Cb-4%VyX($Em9>>1`Xt{FlLNK_ph7^tJ--e5t7W7vxe_5RWj zOtFPhe?>OpD-|3V7V%4c?2z(wN#f!4S!i(qH~0ctU~}$6J%w6zuu?4`|Ef}`D2E1V zHUsscT0eHYx3@l|Y2LUk=z-+6_tvKDb8~nX^ddnQnMEpYN#w9Q9&AY7(}mr87Ct|+ z@cBDQb$aJ`afDhQ-pge9>B0{|Cv2=++77#xSM60g=zg~9F=q}%2fuzSlrD7eqmq&V z4dDoV{ty~S}=6Ox0XhvAth=C2RHZJ9|bW^Lv!P9A4V8b`Clf6tOq*B3 zHcg5-vleUVaBXeycRV=()d6@$8?Qw$4gWo$EzP{}KEx^{Pym52N!Jc^NwID2v=ab= z{>H2LA|65rPJG>_O5GZdpxtrikqa-MgEuDruFikFPQa+ozQhC?zd>gVIjBhJnQ+d8 z>H;OjY2@Kb_&1?hN!;JO<=*wRbzdo3P^#FmgL?x3zBxQXONWXu?ATFBxJ%p;NyilZ zyYSc&Tf>tpX?|RWWzpduN5$jTvo-sI86Cn4D~U984y@*oD`9j)BY1W(UWp0UcB~#B5kP}@ z5v=cY1UD4djzNy7Ox<68jI4EX11c0X8waxzmen>S!hmvvkd-dpaUX>#fHlO<$b*&O zWnYhvP3p`%EKY3>(`0UJcp%&fz!$Y>s|?3jjN5_(l;d0j*l-`_~Kp|N_r zf5@bpXBFN_%>eum_Al0Utjp-6I&d!PSBj$P8NKi_7oa$olN-v;+96Y-+^rF zm(HS?m)2vP01tNJ1ma#DIh>cQ%xp=P62F1|(_Q0i5dmRTu30Uja-VbyrTc46?dgj~ z?eUoXDXk)$i?&U63gaRa!Mm^lEdvBJ%Ao(naSO+$X~2YW;dQu8jzXyv-?Dw??%2c@ zp+Ha&ak?FD%o_t|_bmo%Jt@Zhfo%qP7b1{DP_;aXnMC+AB zfa@0Vav`jDQ9?(8zP|F%P*0^YIMA=29oM;O2_f3B)w{vP!!VLwFP{U}0*w~je`(9h zwE@l~>ij#Hm2&gxZMs;0*SHuAF1NqZH<%wNpu|V6cW}VEU0+i|si_JYG4$7~1C{=Y zj5MW6uG&A?UnyfTXhkBc2P{m3g+isAFBEzZc_+)wm0Kq&ly=>0dv(kK2@Qa+D{h4q zcHPJX8X|1oWrA_Daer3S3`$d!h+E8#yxC|R9I3$)?OrMuhbhb>y=|K5^Ve^g9=#8C z-Vu)Arcm@6W@!o&ld^>bTJMEupzV17V%y63d{0kr-$1=qgL$Z5L3U+)Q|&Jd3>12? zt35Qa;YqV|4VC+0d#l03r7!VBPrj#Gsn^l(yJyG@UWy5H=Z$H#EZt_9MF%3{l|Fqj z_y$yYNbcDMGt0}Vh0d60@+l1xmJpRGg1gR4idoRG)G@S{g~{U(bANh^MLP7Dr%Wy$ z!W~K{b~B*G{Z2o~!iQ%eg?{fPK$l}6yNspBP{`Q?BHl)(9z`9t5fps%z)68Yh3>h- zpU}1a^b7MJoc0hq3l0v!m)F>A6$67kC?ODdK+}{%&=X}=B%2;alEqQr<^1W_8ECVX zl^GCF5A%@cXTW-4z{0c?A$7Z;X+p5WE6^9&qi6>OZXqw1LeGM^Hvkx`*Wu@EHi}sg zS_;-=eOm{&-Hzy#O$bb3`FQ=tkD;!QJ=ELN@u}Mj{#+PWmad`?ALCbJ%${#5Se%uG zm!&({xKTvDGQKOk47=|N-$wmlnRY8|;|DNFXKJSW<_MJp_=13`;{Il=o0>W%nl7 ze7e`d*x&sCLvTFX@`srUxy;s`f>~bOz7Yc9jM5@9wIKS17sbEJpPN}&wxs~9nbOu+ zFBp49qNO(7DDeg`BCyh%)PexuK3* zsL*DfZ$^us{w)>&fm(%R#j5oWi7v8>az)yx*S&4~g5;DZB|N>3h@BXxB{0zuq+y}!3QR3E6-cy%vt zTu%pPTbvM1g&k^TJhnI>3OA`evh}WQdwG(qMJZMyUJy7i%XPZ&aI>+=QOdwN+J@W} zXv_6j4THDF-WKkK_t#T4n(eo(E%pE4P9IH15)Gcy`qodY_CSlCkYg>_W>g z@H?NP5M?{&@fFrZCC27sP3=(x<|u|dfL1@j3WMU~9tW2RD=UVfP-}q}t1JV)@ z3*#B@R;oEWt_LTEJUl%QGk1)R0~#zIwb}UJI}PR~SpuE~%nRW+ekhjw3(7|{oX`s1 zBSe?|{%~u!9JwOonPs=9c}f;8fX%W4J%6$pC+Wy$;|J6N-)R~dKWRC_#X7ij8Sbj& z=c|((fTX?jGE-q-e59C+eKi)gL1|8_GfK%zg-0i9EA6R1T(1sjUiA&Jc`x1 zDD5{Jf0NBvhmc1vTP(|ElD;f^jEE4Ion&@&S34wxPc-I^y(j;O4R!-IWqfR6${9<@ zP`~#Qvbj~6i>;8J2mJ-^W%XWE7S0B^4w_r7@_2x6fv&^90{8MLOmt&E`W8wnYMa&4 zJ+e%p4}cSk4V8eA^B+Gqd*Cx=%qv~KlNCd$1RHj8aozgo9tNVO)f#|=xXuupPRqy( zUj`OJ#s-cqw&$^;S&S#{(hUO%@X_hAl|6W}x2KB-H8N(_R3p7b22T~mIr5$YD*nUQ zhqU6jGBYNA&TbP{3m_H(fEem>}=$sDD@IxGVD@*p%?lvp(J;;KxXX(?{$sH5JO zwAuK~p@eVZ-~mqj!RrDe_x6Qnk+vXBPXwsH&s*(vVYwJJTBXJMjG&|-H!3m@6LSRx)h3sxWjl19@!jYRKu3cjHBZ6RNYJThxU8d zjHBqfg?QoagI^R_GaO}Ky()Pm6<5iR7R$lf1Chky)0XwEaYGz!vNDD|LmDVB;;-U} z$-NfZ+6`gDq%Sv8#3986<8}&*aY?2-QAU}P$0IT(_AzsuUw#I)93s2ofUxN(>GCF$ zKU#C1P&sTG=;%?|3H396vost$QSF9(6J`U0W}%okj^g8NE9F z7e0RN{Hf#ECEkE6tf7~@x(Y6J^eYqUK(lwa!NueSOg2dpMiClatzHtr#w3!W$;+vi z=U+bq6+nYSHA6Pq{F&qULk|n}!#Fp!jq_w_V$=$jrGL=GIre_dW zMD)WWK%Zt~b9O`cBECiMjNhL>`y5ya^4Vx9uvi-i7vftn7mh;Oo&(uzExZEw6s!XL zpSo~n8@>pBv+)l&PbeljU=-)P=l+D2OB7mp^*yv@Fo@rc*b$!ln>AZDEq?B=99#1a zZT*%l_ag`>1CCKdCLzg(j{0QtA9A71#&;*DJ^1ry{`S@f)~;Q@b!*G}_UL6uFo5Ne znPqqRvun3(*tTKqnvE?FlK}U9j`$Q200=NkCxH_F3Ng>qs6_Y^2eoef-4EQ`0*8ar z;Dwmh!E&{y&|4lrX>6I2E4h5RX8SV_0NU2H#wA*_Vze3$-W4sae89fyZ#y6SKGtPP^ z9TY__r%w}ifATFmrV;7;`}xzyfJHt#@P|5z?UF1sDWDK8j#hxvgT-2PJ1&%)vpYDr z4dH0CsxbEixKu&w>>h-$7T}^9%;kDCHV%r->%FV{ViRqWHh?f&6Y1j>=Uqs@U zjR!bQl0rAxr<=Tek>1Im_uVvp9CM2W(6^Hgva`G@k($tTUv1~z(^d3=5#tePy|YMD zh|w-qWE0~nKtcha*#I~=;3{a0-BZc;6>`;jxzMW+*vdezf3Q%g)Zx2A0dP8B@Z>-* zDnI1Wqr9(BM!c+jX&b9-Q+JlER+)QbZ_?+lpIit*5gHjLQTB$Fc|G*hZruYH_8owD zMxS7%l&cR`s{;sAuax_HmF3{Ryk6xq!`KVXvO<}2^5wCR-7_D`xJ)+E9+b{Z_qKrX zA43gxN1(Mc%7%>_2B2qnu8N*1gZ0W#Z=d{m6>u2DG{dA`$g^{UZ3BYl3)OnAT+YGY zm9Hyi_tg9eRez(lzZE-=PAQoYr1G$^TSBr4pj!x3oCd!}5eBnEEE~#MSf~WcQ%p`xmzT3R z&O7LK`uuGxlAhHp49c%m3@sH*+)(TO013T6m6aAGLwa&8EhAIPFys;DY`UpQYHv|AF75 z)C7|}2!)fejg>$TMEJ|pxljdCu=!ugjV!pXG+?5!6@=VxXM}Z9whPnqnin;RcvNV%h$-e6-2*{xL_Ia}p?zIf-fMRUQCMOJKbF=D}cgCphFd>)< znJlUKVyM`2K{$x>Nv(*uZL9g-68g{#lwm39&w19x^&u(UY2J)~jpt+)5GiAnXn79} zz1kPDiJd&`^u;XbtKJH#ysw6WCKFv7%|5&pD#G2nU})NeRT2yTbQZz%GIT>hlNB~( zmS=1TKk6_?BoWr@BTqGl%d}IXm?3&FG`@l&kezv$EscR#pTDzuSa1=X198mw$O^iEbAJEopFZMUscTYH(v<@ zv`5dMo_l_O`~}k|2`%F*4fB}D1dnS4$aJB39LCmU+4$qz4QNOn&8(TS4axFS_kOGG zT|5Eqy+Pw2FC0*HI&3Ir93Vr$i@t-{!wmIgScg&m18-aw8cAh(Gh-ZL)g7_OQ-bnA zbfVI&O3xW6wiRaH3D$JX6-j*YwoICD>v*9143c;XHujTgmRR#9Q zUB~9PxRFBr6yX9*Pi-!kRn$k|5}AMhX<$m$6_nOT5DMW|0;WfD>W;1}O$giIob!6i zIkW|*+1SH>B#wtJ9u$Ht6hU$oFr+;j+kVxoeZj|GnSU9HN^jUGs0ERwJfbO$<#3)O zsU*_GUHVL>1@{#+vGwLKqDG?O!=zCkB1?Y(Txn`-Bn7q%YGFQC8tADFqC^;~e|6dK zg#PN$rJ&nvl_8x(3gzA~F~aIZkzIC=;;Q#NWypT>r(Z_p2OP$9*)!@dynYaY9tMo4 znEpWH&GA3uB3bz2GkDqb(T!dfT9<0f>Jw|vEBb`?{+CUlAU4-P~qik^^V2mG<>+4AxUX z0lZQn-#0MSH&hy`cSX3dOp0d_Wy^jBklZ_pAySXv-8P~E2rE$7Y|OdINi~sd`&buR z4~$fwVw$yreXwolb~AVQP!OM#M<`tn^bNf6$dTudWOo*qX7V>9qiAijX7h&h2&9)n zUzCEWF`V&?^cO%9ek%oB0EOE=Kd|xsP4{+h-S98g7okU^nt(NRPc;d=Z1#d@_RQ}6 zbIQ1XT&(Sc8e_HS6cPoTVrRoiS`GdkrEY!gR`;}m^Id$W%YRfc3}J}hjz$#fz3#fG zRSIz<0~Vsj>u$`kv}N(ESO-R}BZIdA8^->!Z~WGlYtM@&73j+93M#_%(g9f4=T5ve zcLeE=C_l?q->zl8a%|xp>Ne^6GxdckAVe!jk*jpA<6p}Wairq*R>cjBG{HCA#aLEO zCrXn|NKY*~82TaZbUlf*$+Y>~G)!|1>EX!0)Y@+<8B&KB%7rq7oj=o!AH6dQJy{a5}Gma80o^ zxzn@7ixu1;h*c(nfzgGioQrfizRuqE@{Vjq&YrKm@P(inmk+3v5Gz#?b;Sre5+a1^ zOd!E_l+>b;nKdGD)vVciUvb^~t!uYf{c5h-idTTaMa)Otp1C)Vq;Ofe;<^ZtON5E8 z!pSKL&O;OIEwF{yHQu>xD>RBK1VQEm|B|+~N8BjgP>VXFD#4y?&W%)g4%{fz6*M@M zp3pa({SPg^5Csw$$>%ZL^3zj*tk`;kM&P1Oy7pKH(a#W?YMkAAuPPCao7S}u7N<4B zn}$#dd`XPTw33{C{z&+ql3tdEum_0r68pmB)=ch9vbY6A^zF0G=PEV^=#Up=9H4rW zwh=T;y~?;8k|VUYsMVltjg9Tn{q?SPH-$G$?n1+xP~W#-l2dX^v3UPx*l_p3SsSOM zk7}nT|56&lazlV!QsNJLu)f+BrDsIX#*ivZNy0PyoA0>H&-VWv}0B5ijZyzVzx0z}xk zH_uV#wBSSYvJ6UDZd4 z+)wwk8=}mP(&~YANMHgHhiPPC&YKms3j8Tzjo^ow+(b6HV^^qgidfzfjPRJs&l%&^ zgdF=4($A6LkAsGkiam`TAy^YBr6h1!E0T&Er8)e4NQCiCynkW$QC-;({;4JyER~hi z9psm_IDdxVY~jcrRT;=-sEg<>*!_t#vJm`6u=`4Czr7B4G9g1Og^LuiQWXdUrCuT6|WQ4JerZ!Qgrk;Um=p_?M}R2V_eP1Am9 zo4m;{E?MrmxgO)mf#E_a4q^(9LL69|la}0HKOWdO-xO*N0Z$vTO`6Qy#5AmH#(!9_xLn?qjGw2tAr3jbSQT^c7?nYi9*_ieLRtJ`mDDW8|6&`?B90-aaKkDjX2J*EqW#`=! z23_;PnCc0DA893^E#j$AmZpAbRDyr>!`b`!m4{ev#N+08T|%VbNzf=zir&>eBJPe0-7ne z&ZVs0I|i^l^AJ6hj6}XKL^>-^$?u5*?%?P(gOErG+kxeB;}P$5@FiIVlUouQw2WO4pHT+S%9dy3Hq4>f$feg_ zi`)hd+A@nwU#=f#z;XF#;(%(!wjfka`2nrQa6q)Z9_+UPTN;!LjYCT=ggAuaPWn|w z6;VW+AvU$RO2Ayo?i#Gl*1FYL)m zyK|tnATt;`pq{+2d;i>Xe^4SN&jIe+DVX})@5w^>! zP9;*Q1Qgdj&IAbO0-LR#1z{h8?e1ZA+Iwgj{#qub3GqKu4*{Q6ut%f+ijOqZrVrWM zExnioChfB1(0Bu-Xd0SSvO;4J2V+-CiO#~6Rmxk%xT;>hA{msesfduMC!zG-(XJ=h zHR{d}wJO8uPn%(0 zHkhql5DmoO?fx8S2oG6$tAP72uzh8h1+ham0YzWTJQ3pgCEH8~C7U<+j`5{%) zwKZ7d2N`1bt(~0SUV^ajl0E{&3ey2@!=&O@qU~EY!H%r&l3%h(Dltv#7EgLfkA~e z5S#GP5ORrm^XJxCtI$bi%9t6;mZ5qEe5PN0Hv0l)zO?CkMp z@cqL6PiEg^(R279*4(`TTI|ueXFf@HT~0#t4I-SR#?p`U5PI0Lusw)bx zFR?b-9q<#BeWXBUhy#H?NRaatQj9pTPlvAC67|6*v=?19UB@pfRNLwqPugd48uU_T6QvvK)7aNvicEPlDa z^5`tJHEy0X(DLbWOEsw#APE_h+xAH5(h~^hO%iof;BY3IbTnr)p8a5;BZB` z-DR??>gHeQVXyKsQUQk$?#AdUwik^S;C6Vz*HuY;AR;G1I+h3Ew}n$+tWXBeq1d9) ztWGU2K+zafw-a_rc1Ae;e`ibX3=9y zrIBLDlp~7FM1mC};#ownII$tn7v3P0l{dMOXki4Pk3g%r!$74s7Ogh%oj&+HBDJHT zjgJ}fCq71~yB2oCu~$aOWVt?%Z1P1#O$!kHb2-B z6UT4I99*kJ0!D8n`7&GC)}|N_pldZu05lGj7?<;3-UThS zS=xZmUf51^0Yr278sec6)Q$AAFSn9mxEop-x!xtVnd?)vU?Rg!*3zkjiaHiYq0V*Z zKAzu$9I{WH31N%up?``v;>m9N6N-iZ1wM%~Vi9$s4LaiZ`LAD_-9!F5YhannaoWAU zC>0$ETOu^^%aQBQ?@<$%q^9O`d-u=}lww-u_KaKA_%*Lf@h2GF)lLdwZpYshZHCOo zuuqH5*W7z#9Q3}au(tW!+y*jQ8lQZ0jA_6ygJhROKYeusm%~SKU**@v3Sqx)$6Q26 z`gMO-k14y(2%V>0N+YFz*b(Sv%b6DF!OkX&O90LQ@qrvt=c}bcE?4L+ zApeaOdTxfKit-S}C&ouWTvO8%qbkh=E9pODa>lXO68r>Rzec~$F?r36FHo!k*^?k7 zY=MHHsz)aX=)rHzxyIAyzuIHB<_)-N5gHYSgT??J1s}V+9 zfw00q^qY;0TH7gJ-4=Qr{Kt&}uAS^J;Ce@=F>(_lX!-2uz;K{#F6qW1s z*?`#~ni~$mjxsFxw4yyBv_{sX(}`M-XqflBNwnoX88{{{8Mi@TQrjH0`Ljn(&Fn*Z!H<2~!Pr)?B~aQ0;8mbvF%n%n>4-1EPK)(Eo(%Dk$=0rp;h zpozv(ZK$x5Fx$J+9hu9fSDKrPTUhHUlu#ges0Q*Lk# z-PQB``JRDt1tnm;0&K0+i;U`iJX9X)?dfIbrR9yw9xP3`?0q%OKl@(DNZo(6mC0uy z$yl^RY`fXGV(YG*<*^;xWQ)0Z_Ro#k_g;-pMMnVEZ*n`VTiCuuCYv~(n`|yK62ilL z7HUoSeX&A=!wJs@F2UA>7kMMa>9FDqm0T09X(Ze^(^*d$)NH+RSr>L6WVMEaFVeJV z7r4f|DCnD^%F)QCt3MMqfcm*!eZrPW6twbnA{j{m{F@PAflI<92Nv|~5l|$obru%^ zS9KTxChJfpllfN`o2nV|?#TSQsHJ2_xZfpvw8OaB^=+Fdb)s-E7PBlz7JAwH&i&6( z=;p2Y!aJxc}2tKbOE>=ymwE8W+p5whEi8b5J1^x!>c=XCJ0)B7HtqE zC*Ew;TJKP$R_e+3mwF2Wtn9EH0jK4WQN+okt3`DhDb~0Z?qvks-6Ny-k3;1+h-%s( zgqWRyo^E`~!%D?Bso+@IO4w&w6r5|&!DYM^_yz)Bi?&n@)BHPvN9e#VX!iiw&zsHo(?Y_r8anYGf~Bh@jc z^FRUZ0<+PNCT&5j^G8kagugp|?uVJ@x+Vl(>JF4De@maUuK`W!1vD!tqh88Tz8A&_ zRRyURDkw07uB?NDIh0dTIibro)Pud|?vZ+TZHN5_ed|?x;x9JaTpi%W&W1m7i%JLR z#OQkeP-&olaHy}p4&*L)C6!_g5f6^m7E#-5JS>4cV6_}PDwmC1Q){b=Gt<>I`@$C} zCZfCI0y;e4F|#O=;DQ7X_8q#7n_6;pc1*Z!n~hsMIY}*BotkW1ybGTPJ*doVLe7bd z7Zqp2OuZW4HG*yk;GrrZ8iq*1OE6qBb23nJO9k_V= z;2QK_aD5TP2JjT_T8{&<;wPw7PtTC|$T5H&AzVQSZu+V-==k3C#d~Y0-3MWZqr*$RW)i!w(kuil zR3p`7QG-Z2{m`UXfQ=AJwF~4pSlliI+qa{S!%r|B<$EBC~it!a=V2RgdzJqY6FK@_v zS)|+wA*={dz4dE~R`@piu)S{u0c*Av&h|2_zKg{eAye{CGx9N-w5gw1DhJrgpV%Up z-R1RRd>oMz&6@2D0bQZ}bXeE;rwq98fI+N1_TOLio$ox{d~C(l_Rp*O=fAUmmN%~2 zii+{IsV-RXN6|!(I-$Op2rIu}0yZ7uT~me_1u8Qw-n9@Y`w#l^){`i~5$slhH4 zK8Mv^8=*~2jqI!;TPuBr#e7G{u;?rQK4-nW@qO(1W;mq7L0=g@>y+cqI^x=6cV*t& zx}#LizGt7)_v~YM@84(MvwC50E>EDECvirf?Ma9;!kO%Mwk7FzpPodkQR1K; zwC|YI_LG*cObccp3GdM-u#-ebf1}K*WyP^NZq@Y5u?fgXMY3}C{%iSZavZfzC~ny^ zEubo6C0Iacg}EsOWzi!@3sHv7Rp}3)3oJY{_i0un!dK}tPAA-b%~rdbKHwCW0*SPh z?$gfNPG3d(9;41-YapeifJ59)+qV`;mwk2`6?xFp8>Q8<-&!fEMQ|Afp+FuW+vQgh S*`^yewlJsBvB=D(yZ&z^Z*~p< literal 378594 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 diff --git a/Test/WebTest/output/a2c1138ed2328b33.deps.json b/Test/WebTest/output/a2c1138ed2328b33.deps.json index f050370..ec52732 100644 --- a/Test/WebTest/output/a2c1138ed2328b33.deps.json +++ b/Test/WebTest/output/a2c1138ed2328b33.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdlib": "6c658cc728d0bbf4", "main": "8046d45456d0b153", "requests": "a2c1138ed2328b33", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "socket": "f742623d43c327ea", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdlib": "6c658cc728d0bbf4", "main": "8046d45456d0b153", "string": "928c0ff6d8c69ec9", "requests": "a2c1138ed2328b33", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "socket": "f742623d43c327ea", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/WebTest/output/b558d8d8f01f4825.deps.json b/Test/WebTest/output/b558d8d8f01f4825.deps.json deleted file mode 100644 index c0b4f3c..0000000 --- a/Test/WebTest/output/b558d8d8f01f4825.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"atom": "271ea3decb810db2", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8046d45456d0b153", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "requests": "b558d8d8f01f4825", "string": "ba12ed409d78139e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/WebTest/output/d7e3386b828acb66.deps.json b/Test/WebTest/output/d7e3386b828acb66.deps.json deleted file mode 100644 index c0b4f3c..0000000 --- a/Test/WebTest/output/d7e3386b828acb66.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"atom": "271ea3decb810db2", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8046d45456d0b153", "stdlib": "90c53dd6db8d41cf", "platmacro": "93c1d18e35d188d6", "requests": "b558d8d8f01f4825", "string": "ba12ed409d78139e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "socket": "d7e3386b828acb66", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/WebTest/output/f742623d43c327ea.deps.json b/Test/WebTest/output/f742623d43c327ea.deps.json index f050370..ec52732 100644 --- a/Test/WebTest/output/f742623d43c327ea.deps.json +++ b/Test/WebTest/output/f742623d43c327ea.deps.json @@ -1 +1 @@ -{"stdio": "285b6aa29a34754d", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdlib": "6c658cc728d0bbf4", "main": "8046d45456d0b153", "requests": "a2c1138ed2328b33", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "socket": "f742623d43c327ea", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "stdlib": "6c658cc728d0bbf4", "main": "8046d45456d0b153", "string": "928c0ff6d8c69ec9", "requests": "a2c1138ed2328b33", "atom": "aa246c6e6aa30484", "platmacro": "b57252077e6b596b", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "socket": "f742623d43c327ea", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/WebTest/temp/271ea3decb810db2.pyi b/Test/WebTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/WebTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/WebTest/temp/271ea3decb810db2.stub.ll.dep b/Test/WebTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/WebTest/temp/6446627d4f07a1b5.pyi b/Test/WebTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/WebTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/WebTest/temp/6446627d4f07a1b5.stub.ll.dep b/Test/WebTest/temp/6446627d4f07a1b5.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/WebTest/temp/6446627d4f07a1b5.stub.ll.dep +++ b/Test/WebTest/temp/6446627d4f07a1b5.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/WebTest/temp/6f62fe05c5ea1ceb.pyi b/Test/WebTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/WebTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/WebTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/WebTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/WebTest/temp/7e529fe7a078cfef.pyi b/Test/WebTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/WebTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/WebTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/WebTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/WebTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/8046d45456d0b153.pyi b/Test/WebTest/temp/8046d45456d0b153.pyi deleted file mode 100644 index a6ccaab..0000000 --- a/Test/WebTest/temp/8046d45456d0b153.pyi +++ /dev/null @@ -1,18 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t, c -from stdint import * -import stdio -import stdlib -import socket -import memhub -import requests - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr - -@t.CExport -def main() -> int: pass diff --git a/Test/WebTest/temp/90c53dd6db8d41cf.pyi b/Test/WebTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/WebTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/WebTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/WebTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/WebTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/93c1d18e35d188d6.pyi b/Test/WebTest/temp/93c1d18e35d188d6.pyi deleted file mode 100644 index a8cd09e..0000000 --- a/Test/WebTest/temp/93c1d18e35d188d6.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from platmacro.py -Module: platmacro -""" - - -import t, c - -IS_WINDOWS: t.CDefine = 1 -IS_WIN64: t.CDefine = 1 -IS_X86_64: t.CDefine = 1 -IS_LP64: t.CDefine = 1 -IS_LITTLE_ENDIAN: t.CDefine = 1 -IS_LINUX: t.CDefine = 0 -IS_MACOS: t.CDefine = 0 -IS_ARM64: t.CDefine = 0 -IS_BIG_ENDIAN: t.CDefine = 0 -IS_ILP32: t.CDefine = 0 -PTR_SIZE: t.CDefine = t.CSizeT().Size -INT_SIZE: t.CDefine = 4 -LONG_SIZE: t.CDefine = t.CLong().Size -WORD_SIZE: t.CDefine = t.CSizeT().Size -CACHE_LINE_SIZE: t.CDefine = 64 -PAGE_SIZE: t.CDefine = 4096 -STACK_ALIGN: t.CDefine = 16 -MAX_PATH_LEN: t.CDefine = 260 -PLATFORM_NAME: t.CDefine = 1 -ARCH_NAME: t.CDefine = 1 -WINVER: t.CDefine = 0x0A00 -_WIN32_WINNT: t.CDefine = 0x0A00 -NTDDI_VERSION: t.CDefine = 0x0A000006 -HAS_SSE2: t.CDefine = 1 -HAS_AVX: t.CDefine = 1 -HAS_AVX2: t.CDefine = 1 -HAS_FMA: t.CDefine = 1 -HAS_NEON: t.CDefine = 0 -ALIGNOF_INT: t.CDefine = 4 -ALIGNOF_LONG: t.CDefine = t.CLong().Size // 8 -ALIGNOF_PTR: t.CDefine = t.CSizeT().Size // 8 -ALIGNOF_DOUBLE: t.CDefine = 8 -ALIGNOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_SHORT: t.CDefine = 2 -SIZEOF_INT: t.CDefine = 4 -SIZEOF_LONG: t.CDefine = t.CLong().Size // 8 -SIZEOF_LONG_LONG: t.CDefine = 8 -SIZEOF_FLOAT: t.CDefine = 4 -SIZEOF_DOUBLE: t.CDefine = 8 -SIZEOF_LONG_DOUBLE: t.CDefine = 16 -SIZEOF_POINTER: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_SIZE_T: t.CDefine = t.CSizeT().Size // 8 -SIZEOF_PTRDIFF_T: t.CDefine = t.CPtrDiffT().Size // 8 -BYTE_ORDER_LE: t.CDefine = 1 -BYTE_ORDER_BE: t.CDefine = 0 \ No newline at end of file diff --git a/Test/WebTest/temp/93c1d18e35d188d6.stub.ll.dep b/Test/WebTest/temp/93c1d18e35d188d6.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/WebTest/temp/_phase1_manifest.json b/Test/WebTest/temp/_phase1_manifest.json index 25a7772..5d03f79 100644 --- a/Test/WebTest/temp/_phase1_manifest.json +++ b/Test/WebTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\WebTest\\App\\main.py": {"sha1": "8046d45456d0b153", "mtime": 1783055933.4493492, "size": 2570}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.py": {"sha1": "93c1d18e35d188d6", "mtime": 1781237231.03366, "size": 1422}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\requests.py": {"sha1": "b558d8d8f01f4825", "mtime": 1783055330.1315396, "size": 9850}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\socket.py": {"sha1": "d7e3386b828acb66", "mtime": 1783054980.3909142, "size": 14514}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\winsock2.py": {"sha1": "6446627d4f07a1b5", "mtime": 1783052668.8022628, "size": 3547}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\WebTest\\App\\main.vp": {"sha1": "8046d45456d0b153", "mtime": 1783055933.4493492, "size": 2570}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\platmacro.vp": {"sha1": "b57252077e6b596b", "mtime": 1785332415.2187803, "size": 1266}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\requests.vp": {"sha1": "a2c1138ed2328b33", "mtime": 1785320389.7040715, "size": 9839}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\socket.vp": {"sha1": "f742623d43c327ea", "mtime": 1785319698.632702, "size": 14717}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\winsock2.vp": {"sha1": "6446627d4f07a1b5", "mtime": 1783052668.8022628, "size": 3547}} \ No newline at end of file diff --git a/Test/WebTest/temp/_sha1_map.txt b/Test/WebTest/temp/_sha1_map.txt index bd649c8..b597b28 100644 --- a/Test/WebTest/temp/_sha1_map.txt +++ b/Test/WebTest/temp/_sha1_map.txt @@ -1,13 +1,13 @@ -271ea3decb810db2:includes/atom.py -6446627d4f07a1b5:includes/w32\winsock2.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -8046d45456d0b153:main.py -90c53dd6db8d41cf:includes/stdlib.py -93c1d18e35d188d6:includes/platmacro.py -b558d8d8f01f4825:includes/requests.py -ba12ed409d78139e:includes/string.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -d7e3386b828acb66:includes/socket.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +6446627d4f07a1b5:includes/w32\winsock2.vp +6c658cc728d0bbf4:includes/stdlib.vp +8046d45456d0b153:main.vp +928c0ff6d8c69ec9:includes/string.vp +a2c1138ed2328b33:includes/requests.vp +aa246c6e6aa30484:includes/atom.vp +b57252077e6b596b:includes/platmacro.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +f742623d43c327ea:includes/socket.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/WebTest/temp/a2c1138ed2328b33.stub.ll.dep b/Test/WebTest/temp/a2c1138ed2328b33.stub.ll.dep index 02e24e7..82735c2 100644 --- a/Test/WebTest/temp/a2c1138ed2328b33.stub.ll.dep +++ b/Test/WebTest/temp/a2c1138ed2328b33.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6446627d4f07a1b5|6c658cc728d0bbf4|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f742623d43c327ea|f9d023d1df2bc9c5|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6446627d4f07a1b5|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|b57252077e6b596b|c9f4be41ca1cc2b4|f5522571bcce7bcb|f742623d43c327ea|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/WebTest/temp/b558d8d8f01f4825.pyi b/Test/WebTest/temp/b558d8d8f01f4825.pyi deleted file mode 100644 index a326df6..0000000 --- a/Test/WebTest/temp/b558d8d8f01f4825.pyi +++ /dev/null @@ -1,39 +0,0 @@ -""" -Auto-generated Python stub file from requests.py -Module: requests -""" - - -import t, c -from stdint import * -import string -import socket -import memhub -import stdio - -_mbuddy: t.CExtern | memhub.MemBuddy | t.CPtr -_socket_ready: t.CExtern | bool -HTTP_PORT: t.CDefine = 80 -HTTP_BUFSIZ: t.CDefine = 4096 - -class Response: - status_code: INT - text: str - body_len: INT - _raw_buf: str - -def _EnsureSocketInit() -> INT: pass - -def _AllocResponse() -> Response | t.CPtr: pass - -def _ParseUrl(url: str, host_buf: str, host_size: INT, path_buf: str, path_size: INT, port: INT | t.CPtr) -> INT: pass - -def _ParseStatusLine(resp_text: str, out_code: INT | t.CPtr) -> INT: pass - -def _FindBodyStart(resp_text: str, resp_len: INT) -> INT: pass - -def get(url: str) -> Response | t.CPtr: pass - -def post(url: str, data: str, content_type: str) -> Response | t.CPtr: pass - -def release(resp: Response | t.CPtr) -> t.CInt: pass diff --git a/Test/WebTest/temp/b558d8d8f01f4825.stub.ll.dep b/Test/WebTest/temp/b558d8d8f01f4825.stub.ll.dep deleted file mode 100644 index 719bff6..0000000 --- a/Test/WebTest/temp/b558d8d8f01f4825.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6446627d4f07a1b5|6f62fe05c5ea1ceb|7e529fe7a078cfef|93c1d18e35d188d6|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|d7e3386b828acb66|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/ba12ed409d78139e.pyi b/Test/WebTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/WebTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/WebTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/WebTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/WebTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/c9f4be41ca1cc2b4.pyi b/Test/WebTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/WebTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/WebTest/temp/d089e25a15c6f6e0.pyi b/Test/WebTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/WebTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/WebTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/WebTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/WebTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/d7e3386b828acb66.pyi b/Test/WebTest/temp/d7e3386b828acb66.pyi deleted file mode 100644 index aa17fc3..0000000 --- a/Test/WebTest/temp/d7e3386b828acb66.pyi +++ /dev/null @@ -1,115 +0,0 @@ -""" -Auto-generated Python stub file from socket.py -Module: socket -""" - - -import t, c -from stdint import * -import string -import platmacro -import stdio -import w32.winsock2 - -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 10 -SOCK_STREAM: t.CDefine = 1 -SOCK_DGRAM: t.CDefine = 2 -SOCK_RAW: t.CDefine = 3 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 1 -SO_RCVTIMEO: t.CDefine = 20 -SO_SNDTIMEO: t.CDefine = 21 -SO_REUSEADDR: t.CDefine = 2 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = -1 -SOCKET_DEFAULT_TIMEOUT: t.CDefine = 0 - -class SocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class HostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: INT - h_length: INT - h_addr_list: CHARPTR -class timeval: - tv_sec: INT - tv_usec: INT - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.CExtern | t.CExport: pass - -def connect(fd: u64, addr: SocketAddr | t.CPtr, addrlen: INT) -> INT | t.CExtern | t.CExport: pass - -def send(fd: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.CExtern | t.CExport: pass - -def recv(fd: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.CExtern | t.CExport: pass - -def bind(fd: u64, addr: SocketAddr | t.CPtr, addrlen: INT) -> INT | t.CExtern | t.CExport: pass - -def listen(fd: u64, backlog: INT) -> INT | t.CExtern | t.CExport: pass - -def accept(fd: u64, addr: SocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.CExtern | t.CExport: pass - -def setsockopt(fd: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.CExtern | t.CExport: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> HostEnt | t.CPtr | t.CExtern | t.CExport: pass - -def ntohs(netshort: u16) -> u16 | t.CExtern | t.CExport: pass - -def htons(hostshort: u16) -> u16 | t.CExtern | t.CExport: pass - -def close(fd: u64) -> INT | t.CExtern | t.CExport: pass - -def _CloseFd(fd: INT) -> INT: pass - -def _MakeAddr(host: str, port: INT) -> SocketAddr: pass - -def _ParseIPv4(ip_str: str, out_addr: u32 | t.CPtr) -> bool: pass - - -class Socket: - fd: INT - family: INT - type: INT - protocol: INT - def __init__(self: Socket, family: INT, type: INT, protocol: INT) -> t.CInt: pass - def connect(self: Socket, host: str, port: INT) -> INT: pass - def send(self: Socket, data: t.CVoid | t.CPtr, length: INT) -> INT: pass - def recv(self: Socket, buf: t.CVoid | t.CPtr, bufsize: INT) -> INT: pass - def sendall(self: Socket, data: t.CVoid | t.CPtr, length: INT) -> INT: pass - def close(self: Socket) -> INT: pass - def bind(self: Socket, host: str, port: INT) -> INT: pass - def listen(self: Socket, backlog: INT) -> INT: pass - def accept(self: Socket, out_client: 'Socket' | t.CPtr) -> INT: pass - def settimeout(self: Socket, timeout_ms: INT) -> INT: pass - def fileno(self: Socket) -> INT: pass - -def SocketInit() -> INT: pass - -def SocketCleanup() -> INT: pass - -def SocketCreate(family: INT, type: INT, protocol: INT, out_sock: Socket | t.CPtr) -> INT: pass - -def SocketConnect(sock: Socket | t.CPtr, host: str, port: INT) -> INT: pass - -def SocketSend(sock: Socket | t.CPtr, data: t.CVoid | t.CPtr, length: INT) -> INT: pass - -def SocketRecv(sock: Socket | t.CPtr, buf: t.CVoid | t.CPtr, bufsize: INT) -> INT: pass - -def SocketClose(sock: Socket | t.CPtr) -> INT: pass - -def SocketBind(sock: Socket | t.CPtr, host: str, port: INT) -> INT: pass - -def SocketListen(sock: Socket | t.CPtr, backlog: INT) -> INT: pass - -def SocketAccept(sock: Socket | t.CPtr, out_client: Socket | t.CPtr) -> INT: pass - -def SocketSetTimeout(sock: Socket | t.CPtr, timeout_ms: INT) -> INT: pass - -def SocketIsValid(sock: Socket | t.CPtr) -> bool: pass diff --git a/Test/WebTest/temp/d7e3386b828acb66.stub.ll.dep b/Test/WebTest/temp/d7e3386b828acb66.stub.ll.dep deleted file mode 100644 index e6b7fe3..0000000 --- a/Test/WebTest/temp/d7e3386b828acb66.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6446627d4f07a1b5|6f62fe05c5ea1ceb|7e529fe7a078cfef|93c1d18e35d188d6|ba12ed409d78139e|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/f5522571bcce7bcb.pyi b/Test/WebTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/WebTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/WebTest/temp/f742623d43c327ea.stub.ll.dep b/Test/WebTest/temp/f742623d43c327ea.stub.ll.dep index b762264..e066296 100644 --- a/Test/WebTest/temp/f742623d43c327ea.stub.ll.dep +++ b/Test/WebTest/temp/f742623d43c327ea.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6446627d4f07a1b5|b57252077e6b596b|f5522571bcce7bcb|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +285b6aa29a34754d|6446627d4f07a1b5|928c0ff6d8c69ec9|b57252077e6b596b|f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/WebTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/WebTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/WebTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/WebTest/temp/f9d023d1df2bc9c5.vpi b/Test/WebTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/WebTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/WebTest/temp/ffaf70367668b227.stub.ll.dep b/Test/WebTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/WebTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/WebTest/temp/ffaf70367668b227.vpi b/Test/WebTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/WebTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ZlibTest/output/03b24bc1d9327958.deps.json b/Test/ZlibTest/output/03b24bc1d9327958.deps.json index 76518e0..09a1aeb 100644 --- a/Test/ZlibTest/output/03b24bc1d9327958.deps.json +++ b/Test/ZlibTest/output/03b24bc1d9327958.deps.json @@ -1 +1 @@ -{"__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/0f8134f67bdaba8f.deps.json b/Test/ZlibTest/output/0f8134f67bdaba8f.deps.json index ec6b57c..557abb1 100644 --- a/Test/ZlibTest/output/0f8134f67bdaba8f.deps.json +++ b/Test/ZlibTest/output/0f8134f67bdaba8f.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/784dde8a8697b7ab.deps.json b/Test/ZlibTest/output/784dde8a8697b7ab.deps.json index eaadc07..7958eb3 100644 --- a/Test/ZlibTest/output/784dde8a8697b7ab.deps.json +++ b/Test/ZlibTest/output/784dde8a8697b7ab.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/9b7d2adaae94f021.deps.json b/Test/ZlibTest/output/9b7d2adaae94f021.deps.json index ea6f5f3..a619c2d 100644 --- a/Test/ZlibTest/output/9b7d2adaae94f021.deps.json +++ b/Test/ZlibTest/output/9b7d2adaae94f021.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/cb151b297f4ea56d.deps.json b/Test/ZlibTest/output/cb151b297f4ea56d.deps.json index 70d9f3a..7edc094 100644 --- a/Test/ZlibTest/output/cb151b297f4ea56d.deps.json +++ b/Test/ZlibTest/output/cb151b297f4ea56d.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/d855b3e66d1d6522.deps.json b/Test/ZlibTest/output/d855b3e66d1d6522.deps.json index 723d856..e840059 100644 --- a/Test/ZlibTest/output/d855b3e66d1d6522.deps.json +++ b/Test/ZlibTest/output/d855b3e66d1d6522.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/dd19090b337e9bea.deps.json b/Test/ZlibTest/output/dd19090b337e9bea.deps.json index fb957b2..74c33c4 100644 --- a/Test/ZlibTest/output/dd19090b337e9bea.deps.json +++ b/Test/ZlibTest/output/dd19090b337e9bea.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zinflate": "e445a2bb299d1b7d", "zinflate": "e445a2bb299d1b7d", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/output/e445a2bb299d1b7d.deps.json b/Test/ZlibTest/output/e445a2bb299d1b7d.deps.json index ff28824..f29302f 100644 --- a/Test/ZlibTest/output/e445a2bb299d1b7d.deps.json +++ b/Test/ZlibTest/output/e445a2bb299d1b7d.deps.json @@ -1 +1 @@ -{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"main": "03b24bc1d9327958", "__zlib.pyzlib": "0f8134f67bdaba8f", "pyzlib": "0f8134f67bdaba8f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "__zlib.zdeflate": "784dde8a8697b7ab", "zdeflate": "784dde8a8697b7ab", "string": "928c0ff6d8c69ec9", "__zlib.zdef": "9b7d2adaae94f021", "zdef": "9b7d2adaae94f021", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "__zlib.zchecksum": "cb151b297f4ea56d", "zchecksum": "cb151b297f4ea56d", "__zlib.test_pyzlib": "d855b3e66d1d6522", "test_pyzlib": "d855b3e66d1d6522", "__zlib.zhuff": "dd19090b337e9bea", "zhuff": "dd19090b337e9bea", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ZlibTest/temp/0035c95a18d4f8e8.pyi b/Test/ZlibTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/ZlibTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/ZlibTest/temp/03b24bc1d9327958.pyi b/Test/ZlibTest/temp/03b24bc1d9327958.pyi deleted file mode 100644 index 8757634..0000000 --- a/Test/ZlibTest/temp/03b24bc1d9327958.pyi +++ /dev/null @@ -1,21 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t -import stdio -import string -import __zlib.pyzlib as pyzlib -import __zlib.zdeflate as zdeflate -import __zlib.zinflate as zinflate -import __zlib.zchecksum as zchecksum -import __zlib.zdef as zdef -import __zlib.zhuff as zhuff -import __zlib.test_pyzlib as tpz -import w32.win32memory -import c -import testcheck - -def main() -> t.CInt: pass diff --git a/Test/ZlibTest/temp/067c78e9f121dce3.pyi b/Test/ZlibTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/ZlibTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/ZlibTest/temp/06f53cc594b4ac6c.pyi b/Test/ZlibTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/ZlibTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ZlibTest/temp/0f8134f67bdaba8f.pyi b/Test/ZlibTest/temp/0f8134f67bdaba8f.pyi deleted file mode 100644 index 3f2901b..0000000 --- a/Test/ZlibTest/temp/0f8134f67bdaba8f.pyi +++ /dev/null @@ -1,122 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.pyzlib.py -Module: __zlib.pyzlib -""" - - -from stdint import * -import zdeflate -import zinflate -import zchecksum -import zdef -import zhuff -import stdlib -import string -import t, c - -Z_NO_COMPRESSION: t.CDefine = 0 -Z_BEST_SPEED: t.CDefine = 1 -Z_BEST_COMPRESSION: t.CDefine = 9 -Z_DEFAULT_COMPRESSION: t.CDefine = (-1) -DEFLATED: t.CDefine = 8 -Z_NO_FLUSH: t.CDefine = 0 -Z_PARTIAL_FLUSH: t.CDefine = 1 -Z_SYNC_FLUSH: t.CDefine = 2 -Z_FULL_FLUSH: t.CDefine = 3 -Z_FINISH: t.CDefine = 4 -Z_BLOCK: t.CDefine = 5 -Z_TREES: t.CDefine = 6 -Z_DEFAULT_STRATEGY: t.CDefine = 0 -Z_FILTERED: t.CDefine = 1 -Z_HUFFMAN_ONLY: t.CDefine = 2 -Z_RLE: t.CDefine = 3 -Z_FIXED: t.CDefine = 4 -Z_OK: t.CDefine = 0 -Z_STREAM_END: t.CDefine = 1 -Z_NEED_DICT: t.CDefine = 2 -Z_ERRNO: t.CDefine = (-1) -Z_STREAM_ERROR: t.CDefine = (-2) -Z_DATA_ERROR: t.CDefine = (-3) -Z_MEM_ERROR: t.CDefine = (-4) -Z_BUF_ERROR: t.CDefine = (-5) -Z_VERSION_ERROR: t.CDefine = (-6) -MAX_WBITS: t.CDefine = 15 -DEF_BUF_SIZE: t.CDefine = 16384 -DEF_MEM_LEVEL: t.CDefine = 8 -ZLIB_VERSION: t.CDefine = "1.3.2" -pyzlib_error_msg: t.CExtern | t.CArray[t.CChar, 512] -pyzlib_error_code_val: t.CExtern | t.CInt - -@t.Object -class Compress: - stream: VOIDPTR - is_initialized: t.CInt - is_finished: t.CInt - level: t.CInt - method: t.CInt - wbits: t.CInt - memLevel: t.CInt - strategy: t.CInt - zdict: BYTEPTR - zdict_len: t.CSizeT - last_pos: t.CSizeT - input_buf: BYTEPTR - input_buf_len: t.CSizeT - input_buf_cap: t.CSizeT - header_written: t.CInt - def compress(self: Compress, data: BYTEPTR, data_len: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def flush(self: Compress, mode: t.CInt, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def copy(self: Compress) -> Compress | t.CPtr: pass - def delete(self: Compress) -> t.CInt: pass - def __del__(self: Compress) -> t.CInt: pass -@t.Object -class Decompress: - stream: VOIDPTR - is_initialized: t.CInt - eof: t.CInt - wbits: t.CInt - zdict: BYTEPTR - zdict_len: t.CSizeT - _unused_data: BYTEPTR - _unused_data_len: t.CSizeT - _unused_data_cap: t.CSizeT - _unconsumed_tail: BYTEPTR - _unconsumed_tail_len: t.CSizeT - _unconsumed_tail_cap: t.CSizeT - input_buf: BYTEPTR - input_buf_len: t.CSizeT - input_buf_cap: t.CSizeT - def decompress(self: Decompress, data: BYTEPTR, data_len: t.CSizeT, max_length: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def flush(self: Decompress, length: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def copy(self: Decompress) -> Decompress | t.CPtr: pass - def delete(self: Decompress) -> t.CInt: pass - def unused_data(self: Decompress, length: t.CSizeT | t.CPtr) -> BYTEPTR: pass - def unconsumed_tail(self: Decompress, length: t.CSizeT | t.CPtr) -> BYTEPTR: pass - -def set_error(code: int, msg: str) -> t.CInt: pass - -def clone_bytes(src: BYTEPTR, length: t.CSizeT) -> BYTEPTR: pass - -def append_bytes(buf: BYTE | t.CPtr[t.CPtr], length: t.CSizeT | t.CPtr, cap: t.CSizeT | t.CPtr, data: BYTEPTR, data_len: t.CSizeT) -> t.CInt: pass - -def shrink_to_fit(buf: BYTEPTR, length: t.CSizeT) -> BYTEPTR: pass - -def runtime_version() -> str: pass - -def get_error() -> str: pass - -def get_error_code() -> t.CInt: pass - -def clear_error() -> t.CInt: pass - -def compress(data: BYTEPTR, data_len: t.CSizeT, level: t.CInt, wbits: t.CInt, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - -def decompress(data: BYTEPTR, data_len: t.CSizeT, wbits: t.CInt, bufsize: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> BYTEPTR: pass - -def compressobj(level: t.CInt, method: t.CInt, wbits: t.CInt, memLevel: t.CInt, strategy: t.CInt, zdict: BYTEPTR, zdict_len: t.CSizeT) -> Compress | t.CPtr: pass - -def decompressobj(wbits: t.CInt, zdict: BYTEPTR, zdict_len: t.CSizeT) -> Decompress | t.CPtr: pass - -def zlib_adler32(data: BYTEPTR, length: t.CSizeT, value: t.CUnsignedLong) -> t.CUnsignedLong: pass - -def zlib_crc32(data: BYTEPTR, length: t.CSizeT, value: t.CUnsignedLong) -> t.CUnsignedLong: pass diff --git a/Test/ZlibTest/temp/14d33679f7fadf1f.pyi b/Test/ZlibTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/ZlibTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/ZlibTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/ZlibTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/ZlibTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ZlibTest/temp/6446627d4f07a1b5.pyi b/Test/ZlibTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/ZlibTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/ZlibTest/temp/6f62fe05c5ea1ceb.pyi b/Test/ZlibTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/ZlibTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/ZlibTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/ZlibTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ZlibTest/temp/72e2d5ccb7cedcf1.pyi b/Test/ZlibTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/ZlibTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/ZlibTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/ZlibTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ZlibTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/ZlibTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ZlibTest/temp/784dde8a8697b7ab.pyi b/Test/ZlibTest/temp/784dde8a8697b7ab.pyi deleted file mode 100644 index 193ea96..0000000 --- a/Test/ZlibTest/temp/784dde8a8697b7ab.pyi +++ /dev/null @@ -1,54 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.zdeflate.py -Module: __zlib.zdeflate -""" - - -from stdint import * -import zchecksum -import zhuff -import zdef -import string -import t, c - -@t.Object -class zdeflate_stream: - writer: zdef.zbit_writer - window: BYTE | t.CPtr - window_pos: t.CInt - window_size: t.CInt - hash_head: t.CInt | t.CPtr - hash_prev: t.CInt | t.CPtr - level: t.CInt - strategy: t.CInt - wbits: t.CInt - is_finished: t.CInt - adler: t.CUInt32T - def find_match(self: zdeflate_stream, data: BYTE | t.CPtr, data_len: t.CSizeT, pos: t.CSizeT, best_dist: t.CInt | t.CPtr) -> t.CInt: pass - def update_hash(self: zdeflate_stream, data: BYTE | t.CPtr, pos: t.CSizeT) -> t.CInt: pass - def write_fixed_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def encode_block_data(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, lit_tree: zhuff.zhuff_tree | t.CPtr, dist_tree: zhuff.zhuff_tree | t.CPtr) -> t.CInt: pass - def write_dynamic_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def compress_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def write_stored_block(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def compress(self: zdeflate_stream, data: UINT8PTR, length: t.CSizeT, out: t.CUInt8T | t.CPtr[t.CPtr], out_len: t.CSizeT | t.CPtr) -> t.CInt: pass - def flush(self: zdeflate_stream, mode: t.CInt, out: t.CUInt8T | t.CPtr[t.CPtr], out_len: t.CSizeT | t.CPtr) -> t.CInt: pass - def set_dictionary(self: zdeflate_stream, dict: UINT8PTR, length: t.CSizeT) -> t.CInt: pass - def copy(self: zdeflate_stream) -> zdeflate_stream | t.CPtr: pass - def destroy(self: zdeflate_stream) -> t.CInt: pass - -def zdeflate_count_freqs(lit_freqs: INTPTR, dist_freqs: INTPTR, s: zdeflate_stream | t.CPtr, data: UINT8PTR, length: t.CSizeT) -> t.CInt: pass - -def zdeflate_hash(p: BYTE | t.CPtr) -> t.CUnsignedInt: pass - -def zdeflate_len_to_symbol(length: t.CInt) -> t.CInt: pass - -def zdeflate_dist_to_symbol(dist: t.CInt) -> t.CInt: pass - -def zdeflate_count_cl_freqs(all_lengths: INTPTR, total: t.CInt, cl_freqs: INTPTR) -> t.CInt: pass - -def zdeflate_write_cl_encoded(all_lengths: INTPTR, total: t.CInt, w: zdef.zbit_writer | t.CPtr, cl_tree: zhuff.zhuff_tree | t.CPtr) -> t.CInt: pass - -def zdeflate_create(level: t.CInt, wbits: t.CInt, mem_level: t.CInt, strategy: t.CInt) -> zdeflate_stream | t.CPtr: pass - -def zdeflate_one_shot(data: UINT8PTR, length: t.CSizeT, level: t.CInt, wbits: t.CInt, out_len: t.CSizeT | t.CPtr) -> t.CUInt8T | t.CPtr: pass diff --git a/Test/ZlibTest/temp/7e529fe7a078cfef.pyi b/Test/ZlibTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/ZlibTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/ZlibTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/ZlibTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ZlibTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ZlibTest/temp/90c53dd6db8d41cf.pyi b/Test/ZlibTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/ZlibTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/ZlibTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/ZlibTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ZlibTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ZlibTest/temp/9b7d2adaae94f021.pyi b/Test/ZlibTest/temp/9b7d2adaae94f021.pyi deleted file mode 100644 index 3552322..0000000 --- a/Test/ZlibTest/temp/9b7d2adaae94f021.pyi +++ /dev/null @@ -1,65 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.zdef.py -Module: __zlib.zdef -""" - - -from stdint import * -import stddef -import string -import stdlib -import t, c - -ZDEFLATE_WINDOW_BITS: t.CDefine = 15 -ZDEFLATE_WINDOW_SIZE: t.CDefine = (1 << ZDEFLATE_WINDOW_BITS) -ZDEFLATE_WINDOW_MASK: t.CDefine = (ZDEFLATE_WINDOW_SIZE - 1) -ZDEFLATE_MIN_MATCH: t.CDefine = 3 -ZDEFLATE_MAX_MATCH: t.CDefine = 258 -ZDEFLATE_HASH_BITS: t.CDefine = 15 -ZDEFLATE_HASH_SIZE: t.CDefine = (1 << ZDEFLATE_HASH_BITS) -ZDEFLATE_HASH_MASK: t.CDefine = (ZDEFLATE_HASH_SIZE - 1) -ZDEFLATE_MAX_CODES: t.CDefine = 288 -ZDEFLATE_MAX_DIST_CODES: t.CDefine = 32 -ZDEFLATE_MAX_BITS: t.CDefine = 15 -ZDEFLATE_MAX_CODELEN_CODES: t.CDefine = 19 -ZDEFLATE_LIT_COUNT: t.CDefine = 286 -ZDEFLATE_DIST_COUNT: t.CDefine = 30 -ZDEFLATE_LEN_SYMBOLS_BASE: t.CDefine = 257 -ZDEFLATE_END_OF_BLOCK: t.CDefine = 256 -zdeflate_len_extra_bits: t.CExtern | t.CArray[t.CInt, 29] -zdeflate_len_base: t.CExtern | t.CArray[t.CInt, 29] -zdeflate_dist_extra_bits: t.CExtern | t.CArray[t.CInt, 30] -zdeflate_dist_base: t.CExtern | t.CArray[t.CInt, 30] -zdeflate_codelen_order: t.CExtern | t.CArray[int, 19] - -@t.Object -class zbit_writer: - buf: BYTE | t.CPtr - cap: t.CSizeT - byte_pos: t.CSizeT - bit_pos: t.CInt - def __init__(self: zbit_writer) -> t.CInt: pass - def ensure(self: zbit_writer, need: t.CSizeT) -> t.CInt: pass - def write_bits(self: zbit_writer, value: UINT, nbits: t.CInt) -> t.CInt: pass - def write_bits_rev(self: zbit_writer, code: UINT, nbits: t.CInt) -> t.CInt: pass - def stored_block(self: zbit_writer, data: UINT8PTR, length: t.CSizeT, final: t.CInt) -> t.CInt: pass - def write_zlib_header(self: zbit_writer, wbits: t.CInt, level: t.CInt) -> t.CInt: pass - def write_gzip_header(self: zbit_writer) -> t.CInt: pass - def align(self: zbit_writer) -> t.CInt: pass - def total(self: zbit_writer) -> t.CSizeT: pass - def free(self: zbit_writer) -> t.CInt: pass - def __del__(self: zbit_writer) -> t.CInt: pass -@t.Object -class zbit_reader: - buf: BYTE | t.CPtr - length: t.CSizeT - byte_pos: t.CSizeT - bit_pos: t.CInt - def init(self: zbit_reader, buf: BYTE | t.CPtr, length: t.CSizeT) -> t.CInt: pass - def read_bits(self: zbit_reader, nbits: t.CInt, out: UINTPTR) -> t.CInt: pass - def read_bits_rev(self: zbit_reader, nbits: t.CInt, out: UINTPTR) -> t.CInt: pass - def align(self: zbit_reader) -> t.CInt: pass - -def zdef_alloc(n: t.CSizeT) -> VOIDPTR: pass - -def zdef_free(p: VOIDPTR) -> t.CInt: pass diff --git a/Test/ZlibTest/temp/_phase1_manifest.json b/Test/ZlibTest/temp/_phase1_manifest.json index 339a78e..21fba93 100644 --- a/Test/ZlibTest/temp/_phase1_manifest.json +++ b/Test/ZlibTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\pyzlib.py": {"sha1": "0f8134f67bdaba8f", "mtime": 1782266233.8661451, "size": 20930}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\test_pyzlib.py": {"sha1": "d855b3e66d1d6522", "mtime": 1782407614.5315387, "size": 36204}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zchecksum.py": {"sha1": "cb151b297f4ea56d", "mtime": 1782266234.306909, "size": 4068}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdef.py": {"sha1": "9b7d2adaae94f021", "mtime": 1782393175.830038, "size": 8195}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdeflate.py": {"sha1": "784dde8a8697b7ab", "mtime": 1782396643.2488594, "size": 18977}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zhuff.py": {"sha1": "dd19090b337e9bea", "mtime": 1782388678.1362753, "size": 13596}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zinflate.py": {"sha1": "e445a2bb299d1b7d", "mtime": 1782266257.0389085, "size": 18067}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\main.py": {"sha1": "03b24bc1d9327958", "mtime": 1782110043.5860827, "size": 484}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\pyzlib.vp": {"sha1": "0f8134f67bdaba8f", "mtime": 1782266233.8661451, "size": 20930}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\test_pyzlib.vp": {"sha1": "d855b3e66d1d6522", "mtime": 1782407614.5315387, "size": 36204}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zchecksum.vp": {"sha1": "cb151b297f4ea56d", "mtime": 1782266234.306909, "size": 4068}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdef.vp": {"sha1": "9b7d2adaae94f021", "mtime": 1782393175.830038, "size": 8195}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zdeflate.vp": {"sha1": "784dde8a8697b7ab", "mtime": 1782396643.2488594, "size": 18977}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zhuff.vp": {"sha1": "dd19090b337e9bea", "mtime": 1782388678.1362753, "size": 13596}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\__zlib\\zinflate.vp": {"sha1": "e445a2bb299d1b7d", "mtime": 1782266257.0389085, "size": 18067}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ZlibTest\\App\\main.vp": {"sha1": "03b24bc1d9327958", "mtime": 1782110043.5860827, "size": 484}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/ZlibTest/temp/_sha1_map.txt b/Test/ZlibTest/temp/_sha1_map.txt index 2a8c2b3..ddf9247 100644 --- a/Test/ZlibTest/temp/_sha1_map.txt +++ b/Test/ZlibTest/temp/_sha1_map.txt @@ -1,16 +1,16 @@ -03b24bc1d9327958:main.py -0f8134f67bdaba8f:__zlib\pyzlib.py -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -784dde8a8697b7ab:__zlib\zdeflate.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -9b7d2adaae94f021:__zlib\zdef.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -cb151b297f4ea56d:__zlib\zchecksum.py -d855b3e66d1d6522:__zlib\test_pyzlib.py -dd19090b337e9bea:__zlib\zhuff.py -e445a2bb299d1b7d:__zlib\zinflate.py -f5522571bcce7bcb:includes/stdint.py +03b24bc1d9327958:main.vp +0f8134f67bdaba8f:__zlib/pyzlib.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +784dde8a8697b7ab:__zlib/zdeflate.vp +928c0ff6d8c69ec9:includes/string.vp +9b7d2adaae94f021:__zlib/zdef.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +cb151b297f4ea56d:__zlib/zchecksum.vp +d855b3e66d1d6522:__zlib/test_pyzlib.vp +dd19090b337e9bea:__zlib/zhuff.vp +e445a2bb299d1b7d:__zlib/zinflate.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/ZlibTest/temp/_shared_sym.json b/Test/ZlibTest/temp/_shared_sym.json index 985bdbe7586e463fc0c918a4c494aee462f239b4..1e5fdb74fa7a12e704fb90fee437b55e59bb58c6 100644 GIT binary patch literal 500100 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 WoO?hZh7;9$oA!Em#GlPX=l=uYZ$8=p literal 438243 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%0Dg#4~4PTy|eJS=iT!2w9@}fsEO5=SF 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 T&=O@MJ+{x*m1^&78be str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ZlibTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/ZlibTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ZlibTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/ZlibTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ZlibTest/temp/cb151b297f4ea56d.pyi b/Test/ZlibTest/temp/cb151b297f4ea56d.pyi deleted file mode 100644 index 125a3b3..0000000 --- a/Test/ZlibTest/temp/cb151b297f4ea56d.pyi +++ /dev/null @@ -1,15 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.zchecksum.py -Module: __zlib.zchecksum -""" - - -from stdint import * -import t, c - -def zchecksum_adler32(data: UINT8PTR, length: t.CSizeT, init: UINT32) -> t.CUInt32T: pass - - -crc32_table: t.CExtern | t.CArray[t.CUInt32T, 256] - -def zchecksum_crc32(data: UINT8PTR, length: t.CSizeT, init: t.CUInt32T) -> t.CUInt32T: pass diff --git a/Test/ZlibTest/temp/d855b3e66d1d6522.pyi b/Test/ZlibTest/temp/d855b3e66d1d6522.pyi deleted file mode 100644 index 09ce9d4..0000000 --- a/Test/ZlibTest/temp/d855b3e66d1d6522.pyi +++ /dev/null @@ -1,66 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.test_pyzlib.py -Module: __zlib.test_pyzlib -""" - - -from stdint import * -import pyzlib -import zhuff -import zdef -from stdio import printf -import stdlib -from string import strlen -import string -import t, c - -test_passed: t.CExtern | t.CInt -test_failed: t.CExtern | t.CInt - -def check(name: str, condition: t.CInt, detail: str) -> t.CInt: pass - -def print_hex_test(data: BYTEPTR, length: t.CSizeT, max_show: t.CSizeT) -> t.CInt: pass - -def print_separator() -> t.CInt: pass - -def section_header(title: str) -> t.CInt: pass - -def section_footer() -> t.CInt: pass - -def test_version() -> t.CInt: pass - -def test_compress_decompress() -> t.CInt: pass - -def test_compress_levels() -> t.CInt: pass - -def test_compressobj() -> t.CInt: pass - -def test_decompressobj() -> t.CInt: pass - -def test_decompressobj_max_length() -> t.CInt: pass - -def test_decompressobj_unused_data() -> t.CInt: pass - -def test_compress_copy() -> t.CInt: pass - -def test_decompress_copy() -> t.CInt: pass - -def test_adler32() -> t.CInt: pass - -def test_crc32() -> t.CInt: pass - -def test_empty_compress() -> t.CInt: pass - -def test_gzip_format() -> t.CInt: pass - -def test_raw_deflate() -> t.CInt: pass - -def test_zdict() -> t.CInt: pass - -def test_huffman_tree() -> t.CInt: pass - -def test_error_handling() -> t.CInt: pass - -def test_constants() -> t.CInt: pass - -def main123456() -> t.CInt: pass diff --git a/Test/ZlibTest/temp/dd19090b337e9bea.pyi b/Test/ZlibTest/temp/dd19090b337e9bea.pyi deleted file mode 100644 index 898995b..0000000 --- a/Test/ZlibTest/temp/dd19090b337e9bea.pyi +++ /dev/null @@ -1,41 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.zhuff.py -Module: __zlib.zhuff -""" - - -from stdint import * -import zdef -import t, c - -ZHUFF_MAX_CODES: t.CDefine = 288 -ZHUFF_MAX_BITS: t.CDefine = 15 - -class zhuff_code: - code: UINT - bits: t.CInt -@t.Object -class zhuff_tree: - codes: t.CArray[zhuff_code, ZHUFF_MAX_CODES] - count: t.CInt - max_bits: t.CInt - def __init__(self: zhuff_tree) -> t.CInt: pass - def build_codes(self: zhuff_tree, freqs: INTPTR, count: t.CInt, max_bits: t.CInt) -> t.CInt: pass - def build_fixed_lit_tree(self: zhuff_tree) -> t.CInt: pass - def build_fixed_dist_tree(self: zhuff_tree) -> t.CInt: pass - def encode_symbol(self: zhuff_tree, symbol: int, writer: zdef.zbit_writer | t.CPtr) -> t.CInt: pass - def build_code_lengths(self: zhuff_tree, lengths: t.CInt | t.CPtr, freqs: t.CInt | t.CPtr, count: t.CInt, max_bits: t.CInt) -> t.CInt: pass - def get_fixed_lit_lengths(self: zhuff_tree, lengths: INTPTR) -> t.CInt: pass - def get_fixed_dist_lengths(self: zhuff_tree, lengths: INTPTR) -> t.CInt: pass - def build_tree_from_lengths(self: zhuff_tree, lengths: INTPTR, count: t.CInt, max_bits: t.CInt) -> t.CInt: pass -class zhuff_decode_node: - children: t.CArray[t.CInt, 2] - symbol: t.CInt -@t.Object -class zhuff_decode_tree: - nodes: t.CArray[zhuff_decode_node, 2 * ZHUFF_MAX_CODES] - node_count: t.CInt - root: t.CInt - def __init__(self: zhuff_decode_tree) -> t.CInt: pass - def build_decode_tree(self: zhuff_decode_tree, ht: zhuff_tree | t.CPtr) -> t.CInt: pass - def decode_symbol(self: zhuff_decode_tree, reader: zdef.zbit_reader | t.CPtr) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ZlibTest/temp/e445a2bb299d1b7d.pyi b/Test/ZlibTest/temp/e445a2bb299d1b7d.pyi deleted file mode 100644 index 355f684..0000000 --- a/Test/ZlibTest/temp/e445a2bb299d1b7d.pyi +++ /dev/null @@ -1,51 +0,0 @@ -""" -Auto-generated Python stub file from __zlib.zinflate.py -Module: __zlib.zinflate -""" - - -from stdint import * -import zinflate -import zchecksum -import zdef -import zhuff -import string -import t, c - -@t.Object -class zinflate_stream: - reader: zdef.zbit_reader - window: BYTEPTR - window_pos: t.CInt - window_size: t.CInt - wbits: t.CInt - is_finished: t.CInt - is_initialized: t.CInt - header_parsed: t.CInt - is_gzip: t.CInt - adler: t.CUInt32T - crc: t.CUInt32T - output: BYTEPTR - output_len: t.CSizeT - output_cap: t.CSizeT - input_data: t.CConst | BYTEPTR - input_len: t.CSizeT - input_pos: t.CSizeT - max_length: t.CSizeT - def __init__(self: zinflate_stream) -> t.CInt: pass - def output_byte(self: zinflate_stream, byte: BYTE) -> t.CInt: pass - def parse_header(self: zinflate_stream) -> t.CInt: pass - def read_bits_from_input(self: zinflate_stream, nbits: t.CInt, out: UINTPTR) -> t.CInt: pass - def read_huffman(self: zinflate_stream, dt: zhuff.zhuff_decode_tree | t.CPtr) -> t.CInt: pass - def inflate_block_stored(self: zinflate_stream) -> t.CInt: pass - def inflate_block_fixed(self: zinflate_stream) -> t.CInt: pass - def inflate_block_dynamic(self: zinflate_stream) -> t.CInt: pass - def inflate_stream(self: zinflate_stream) -> t.CInt: pass - def decompress(self: zinflate_stream, data: UINT8PTR, length: t.CSizeT, max_length: t.CSizeT, out: t.CUInt8T | t.CPtr[t.CPtr], out_len: t.CSizeT | t.CPtr) -> t.CInt: pass - def set_dictionary(self: zinflate_stream, dict: UINT8PTR, length: t.CSizeT) -> t.CInt: pass - def copy(self: zinflate_stream) -> zinflate_stream | t.CPtr: pass - def destroy(self: zinflate_stream) -> t.CInt: pass - -def zinflate_one_shot(data: UINT8PTR, length: t.CSizeT, wbits: t.CInt, bufsize: t.CSizeT, out_len: t.CSizeT | t.CPtr) -> t.CUInt8T | t.CPtr: pass - -def zinflate_create(wbits: t.CInt) -> zinflate_stream | t.CPtr: pass diff --git a/Test/ZlibTest/temp/f5522571bcce7bcb.pyi b/Test/ZlibTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/ZlibTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/ZlibTest/temp/f6b51804a0ba8ff0.pyi b/Test/ZlibTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/ZlibTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/ZlibTest/temp/ffaf70367668b227.stub.ll.dep b/Test/ZlibTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ZlibTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ZlibTest/temp/ffaf70367668b227.vpi b/Test/ZlibTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/ZlibTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/TestProject/.gitignore b/TestProject/.gitignore new file mode 100644 index 0000000..6817232 --- /dev/null +++ b/TestProject/.gitignore @@ -0,0 +1,13 @@ +*.o +*.obj +*.exe +*.img +*.iso +**/__pycache__/ +.cache/ +*.pyc + +# 编译 +**/output/ +**/temp/ +**/.tpv_build/ \ No newline at end of file diff --git a/TestProject/App/main.vp b/TestProject/App/main.vp new file mode 100644 index 0000000..c853563 --- /dev/null +++ b/TestProject/App/main.vp @@ -0,0 +1,12 @@ +import w32.win32console as w32cmd +import t, c + + +pagecode: t.CDefine = 65001 + +@t.CExport +def main() -> int: + w32cmd.SetConsoleOutputCP(pagecode) + w32cmd.SetConsoleCP(pagecode) + print("你好,世界") + return 0 diff --git a/TestProject/LICENSE b/TestProject/LICENSE new file mode 100644 index 0000000..cee2f62 --- /dev/null +++ b/TestProject/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 TermiNexus + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/TestProject/README.md b/TestProject/README.md new file mode 100644 index 0000000..e1fe40f --- /dev/null +++ b/TestProject/README.md @@ -0,0 +1,289 @@ +# Viper Template Project + +[English](#english) | [中文](#中文) + +A minimal, ready-to-use template for bootstrapping a new [Viper](../wiki/01-overview.md) language project on **Windows (x86_64-pc-windows-gnu)**. + +Windows 平台(x86_64-pc-windows-gnu)下 [Viper](../wiki/01-overview.md) 语言新项目的最小可用模板。 + +--- + + + +## 中文 + +### 这是什么 + +`ViperTemplateProject` 是基于 `Viper` 语言的 **Windows 桌面应用模板**。克隆本仓库后,你可以立即得到一个能够: + +- 设置 Windows 控制台为 UTF-8 编码(避免中文乱码) +- 打印一行 `你好,世界` +- 通过 `llc + clang++`(mingw 工具链)编译为原生 `app.exe` + +的最小 Viper 项目。 + +模板对应的语言编译器是 [TransPyC](https://git.gvsds.com/GVSDS/TransPyC);关于 Viper 语言本身的概览,参见 [TransPyC 仓库 wiki](../wiki/01-overview.md)。 + +### 目录结构 + +``` +ViperTemplateProject/ +├── .gitignore # 忽略 build/、*.o、*.exe、缓存等 +├── README.md # 本文件 +├── project.vpj # 项目配置(编译器、链接器、目标三元组等) +└── App/ + └── main.py # 入口文件 +``` + +### 前提条件 + +| 工具 | 说明 | +|------|------| +| `python` ≥ 3.10 | 用于运行 TransPyC 编译器 | +| `llc` | LLVM 静态编译器,编译 `.ll` → `.o` | +| `clang++` | mingw 工具链下的链接驱动(`x86_64-w64-mingw32`) | +| `TransPyC` 仓库 | 本编译器,克隆在 `ViperTemplateProject/..` 同一目录下 | + +环境变量建议(PowerShell): + +```powershell +$env:PATH = "D:\msys64\mingw64\bin;D:\LLVM\bin;$env:PATH" +``` + +### 快速开始 + +```powershell +# 1. 确保目录布局正确 +# D:\Users\TermiNexus\Desktop\TransPyC\ +# ├── TransPyC\ # 编译器仓库 +# └── ViperTemplateProject\ # 本仓库 + +cd D:\Users\TermiNexus\Desktop\TransPyC\ViperTemplateProject + +# 2. 编译并运行 +python ..\TransPyC\Projectrans.py ` + --project .\project.vpj ` + --clean-cache=false + +# 3. 产物位于 output\app.exe +.\output\app.exe +``` + +预期输出: + +``` +你好,世界 +``` + +### 编写你的第一个程序 + +打开 `App/main.py`,替换 `print("你好,世界")` 为任意合法 Viper 表达式。例如: + +```python +import w32.win32console as w32cmd +import t, c + +pagecode: t.CDefine = 65001 + +@t.CExport +def main() -> int: + w32cmd.SetConsoleOutputCP(pagecode) + w32cmd.SetConsoleCP(pagecode) + + # 你的代码从这里开始 + a: t.CInt = 1 + b: t.CInt = 2 + print("a + b =", a + b) + + return 0 +``` + +### 修改项目配置 + +打开 `project.vpj`,按需调整: + +| 字段 | 含义 | 模板默认值 | +|------|------|-----------| +| `name` | 项目名(仅显示用) | `Standard Template Project` | +| `source_dir` | 源文件根目录 | `./App` | +| `temp_dir` | 中间产物目录(`.pyi` / `.stub.ll`) | `./temp` | +| `output_dir` | 最终产物目录 | `./output` | +| `compiler.cmd` | 汇编器 | `llc` | +| `compiler.flags` | 传给 `llc` 的参数 | `["-filetype=obj", "-relocation-model=pic"]` | +| `linker.cmd` | 链接器 | `clang++` | +| `linker.flags` | 链接器参数 | mingw 标准库 + `kernel32` | +| `linker.output` | 产物名 | `app.exe` | +| `includes` | 标准库搜索路径 | `["../includes"]` | +| `target.triple` | LLVM 目标三元组 | `x86_64-pc-windows-gnu` | +| `target.datalayout` | LLVM 数据布局 | mingw 默认 | +| `options.target` | 后端目标 | `llvm` | +| `options.strict_mode` | 严格类型检查 | `true` | +| `options.slice_level` | 切片级别 | `3` | + +### 跨平台使用 + +本模板默认针对 **Windows + mingw**。若需在其他平台使用,修改 `project.vpj` 的 `compiler.cmd` / `linker.cmd` / `target.triple`: + +- **Linux (x86_64)**:`triple = "x86_64-unknown-linux-gnu"`,`linker.cmd = "clang++"` +- **macOS (x86_64)**:`triple = "x86_64-apple-darwin*"`,`linker.cmd = "clang++"` +- **裸机 x86_64 (ViperOS)**:`triple = "x86_64-none-elf"`,`linker.cmd = "ld.lld"`,需要 `isr.s` 启动文件 + +### 常见问题 + +**Q: 报错 `cannot find includes/os` / `cannot find includes/atom` 之类?** +A: 检查 `project.vpj` 中的 `includes` 字段是否指向 `TransPyC/includes`。`../includes` 假设本仓库与 `TransPyC` 仓库同级。 + +**Q: 输出 `app.exe` 双击闪退?** +A: 在终端中运行 `.\output\app.exe` 而非双击,并确认 mingw 与 LLVM 在 `PATH` 中。 + +**Q: 想完全清理构建产物?** +A: 使用 `python ..\TransPyC\Projectrans.py --project .\project.vpj --clean-cache` 清理缓存;删除 `output/` 和 `temp/` 即可彻底重置。 + +**Q: `StandardTemplateProject` 和本仓库是什么关系?** +A: 本仓库 `ViperTemplateProject` 是 `StandardTemplateProject` 的独立仓库版本。如果你仍想保留 `StandardTemplateProject` 放在 `TransPyC` 仓库内,只需把它加入 `TransPyC/.gitignore` 的 `# 排除独立仓库的目录` 小节。 + +### 进一步阅读 + +- [Viper 语言概览](../wiki/01-overview.md) +- [类型系统](../wiki/02-type-system.md) +- [OOP 与对象模型](../wiki/06-oop.md) +- [自举路线图](../wiki/13-bootstrapping.md) + +--- + + + +## English + +### What is this + +`ViperTemplateProject` is a **Windows desktop application template** based on the [Viper](../wiki/01-overview.md) language. After cloning, you immediately have a minimal Viper project that: + +- Sets the Windows console to UTF-8 (avoids mojibake for non-ASCII output) +- Prints `你好,世界` +- Compiles to a native `app.exe` via `llc + clang++` (mingw toolchain) + +The corresponding compiler is [TransPyC](https://git.gvsds.com/GVSDS/TransPyC). For a Viper language overview, see the [TransPyC wiki](../wiki/01-overview.md). + +### Directory layout + +``` +ViperTemplateProject/ +├── .gitignore # ignores build/, *.o, *.exe, caches, etc. +├── README.md # this file +├── project.vpj # project config (compiler, linker, target triple, ...) +└── App/ + └── main.py # entry point +``` + +### Prerequisites + +| Tool | Notes | +|------|-------| +| `python` ≥ 3.10 | runs the TransPyC compiler | +| `llc` | LLVM static compiler, `.ll` → `.o` | +| `clang++` | mingw toolchain driver (`x86_64-w64-mingw32`) | +| `TransPyC` repo | the compiler, cloned as a sibling of `ViperTemplateProject` | + +Suggested `PATH` (PowerShell): + +```powershell +$env:PATH = "D:\msys64\mingw64\bin;D:\LLVM\bin;$env:PATH" +``` + +### Quick start + +```powershell +# 1. Make sure the layout is right +# D:\Users\TermiNexus\Desktop\TransPyC\ +# ├── TransPyC\ # compiler repo +# └── ViperTemplateProject\ # this repo + +cd D:\Users\TermiNexus\Desktop\TransPyC\ViperTemplateProject + +# 2. Build and run +python ..\TransPyC\Projectrans.py ` + --project .\project.vpj ` + --clean-cache=false + +# 3. Output is at output\app.exe +.\output\app.exe +``` + +Expected output: + +``` +你好,世界 +``` + +### Writing your first program + +Open `App/main.py` and replace `print("你好,世界")` with any valid Viper expression. Example: + +```python +import w32.win32console as w32cmd +import t, c + +pagecode: t.CDefine = 65001 + +@t.CExport +def main() -> int: + w32cmd.SetConsoleOutputCP(pagecode) + w32cmd.SetConsoleCP(pagecode) + + # your code goes here + a: t.CInt = 1 + b: t.CInt = 2 + print("a + b =", a + b) + + return 0 +``` + +### Editing project.vpj + +| Field | Meaning | Template default | +|-------|---------|------------------| +| `name` | display name | `Standard Template Project` | +| `source_dir` | source root | `./App` | +| `temp_dir` | intermediate artifacts (`.pyi` / `.stub.ll`) | `./temp` | +| `output_dir` | final artifacts | `./output` | +| `compiler.cmd` | assembler | `llc` | +| `compiler.flags` | flags passed to `llc` | `["-filetype=obj", "-relocation-model=pic"]` | +| `linker.cmd` | linker | `clang++` | +| `linker.flags` | linker flags | mingw stdlib + `kernel32` | +| `linker.output` | output name | `app.exe` | +| `includes` | standard library search paths | `["../includes"]` | +| `target.triple` | LLVM target triple | `x86_64-pc-windows-gnu` | +| `target.datalayout` | LLVM data layout | mingw default | +| `options.target` | backend target | `llvm` | +| `options.strict_mode` | strict type checking | `true` | +| `options.slice_level` | slice level | `3` | + +### Cross-platform use + +This template targets **Windows + mingw** by default. To use on another platform, adjust `compiler.cmd` / `linker.cmd` / `target.triple` in `project.vpj`: + +- **Linux (x86_64)**: `triple = "x86_64-unknown-linux-gnu"`, `linker.cmd = "clang++"` +- **macOS (x86_64)**: `triple = "x86_64-apple-darwin*"`, `linker.cmd = "clang++"` +- **Bare-metal x86_64 (ViperOS)**: `triple = "x86_64-none-elf"`, `linker.cmd = "ld.lld"`, requires `isr.s` startup + +### FAQ + +**Q: Error like `cannot find includes/os` or `cannot find includes/atom`?** +A: Check that the `includes` field in `project.vpj` points to the `TransPyC/includes` directory. `../includes` assumes this repo lives next to `TransPyC`. + +**Q: `app.exe` flashes and closes on double-click?** +A: Run `.\output\app.exe` from a terminal, not by double-clicking. Make sure mingw and LLVM are on `PATH`. + +**Q: How to fully clean build artifacts?** +A: `python ..\TransPyC\Projectrans.py --project .\project.vpj --clean-cache` clears the cache. To reset everything, also delete `output/` and `temp/`. + +**Q: What is the relationship with `StandardTemplateProject`?** +A: This repo `ViperTemplateProject` is the standalone-repo version of `StandardTemplateProject`. If you still want `StandardTemplateProject` to live inside the `TransPyC` repo, add it to the `# 排除独立仓库的目录` section in `TransPyC/.gitignore`. + +### Further reading + +- [Viper language overview](../wiki/01-overview.md) +- [Type system](../wiki/02-type-system.md) +- [OOP and object model](../wiki/06-oop.md) +- [Bootstrapping roadmap](../wiki/13-bootstrapping.md) diff --git a/TestProject/project.vpj b/TestProject/project.vpj new file mode 100644 index 0000000..5b088d2 --- /dev/null +++ b/TestProject/project.vpj @@ -0,0 +1,37 @@ +{ + "name": "Standard Template Project", + "version": "1.0.0", + "source_dir": "./App", + "build_dir": "./.tpv_build", + "compiler": { + "cmd": "llc", + "flags": [ + "-filetype=obj", + "-relocation-model=pic" + ] + }, + "linker": { + "cmd": "clang++", + "flags": [ + "-lmsvcrt", + "-lucrt", + "-lpthread", + "-lmingwex", + "-lkernel32", + "-Wl,--allow-multiple-definition" + ], + "output": "app.exe" + }, + "includes": [ + "../includes" + ], + "target": { + "triple": "x86_64-pc-windows-gnu", + "datalayout": "e-m:w-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128" + }, + "options": { + "slice_level": 3, + "target": "llvm", + "strict_mode": true + } +} \ No newline at end of file diff --git a/includes/argparse.vp b/includes/argparse.vp index f03bd0b..1e8bdd7 100644 --- a/includes/argparse.vp +++ b/includes/argparse.vp @@ -82,7 +82,8 @@ class ParsedArgs: """Fetch string value. Returns None if key not found.""" if self._ht.__contains__(name) == 0: return None - return self._ht[name] + r: str = self._ht[name] + return r def get_int(self, name: str) -> int: """Fetch integer value. Returns 0 if key not found.""" @@ -128,29 +129,22 @@ class ArgumentParser: def __new__(self, prog: str = "", description: str = "", pool: memhub.MemBuddy | t.CPtr = None) -> t.CPtr: - stdio.printf("[DBG-argparse] __new__ enter pool=%p\n", pool) mb: memhub.MemBuddy | t.CPtr = pool if mb is None: mb = _mbuddy - stdio.printf("[DBG-argparse] __new__ mb=%p\n", mb) ret: t.CPtr = mb.alloc(40) - stdio.printf("[DBG-argparse] __new__ ret=%p\n", ret) return ret def __init__(self, prog: str = "", description: str = "", pool: memhub.MemBuddy | t.CPtr = None): - stdio.printf("[DBG-argparse] __init__ enter self=%p pool=%p\n", self, pool) mb: memhub.MemBuddy | t.CPtr = pool if mb is None: mb = _mbuddy - stdio.printf("[DBG-argparse] __init__ mb=%p\n", mb) self.__mbuddy__ = mb self._prog = prog self._description = description self._arg_count = 0 - stdio.printf("[DBG-argparse] __init__ before alloc\n") self._args = mb.alloc(MAX_ARGS * Argument.__sizeof__()) - stdio.printf("[DBG-argparse] __init__ after alloc _args=%p\n", self._args) def add_argument(self, name: str = "", short: str = None, arg_type: int = 0, default: int = 0, @@ -168,15 +162,11 @@ class ArgumentParser: action: Action mode (STORE/STORE_TRUE/STORE_FALSE/COUNT) help: Help description text """ - stdio.printf("[DBG-argparse] enter add_argument name=%s args_ptr=%p\n", name, self._args) if self._arg_count >= MAX_ARGS: return idx: int = self._arg_count - stdio.printf("[DBG-argparse] idx=%d sizeof(Argument)=%d\n", idx, Argument.__sizeof__()) arg: Argument | t.CPtr = t.CPtr(t.CUInt64T(self._args) + idx * Argument.__sizeof__()) - stdio.printf("[DBG-argparse] arg ptr=%p\n", arg) arg.name = name - stdio.printf("[DBG-argparse] after arg.name=%s\n", arg.name) arg.short_name = short arg.help_text = help arg.arg_type = arg_type @@ -184,7 +174,6 @@ class ArgumentParser: arg.default_int = default arg.default_str = default_str arg.required = required - stdio.printf("[DBG-argparse] before dest logic\n") # Determine positional flag if name is not None and name[0] != '-': arg.is_positional = True @@ -195,9 +184,7 @@ class ArgumentParser: arg.dest = name + 2 else: arg.dest = name + 1 - stdio.printf("[DBG-argparse] after dest logic\n") self._arg_count = idx + 1 - stdio.printf("[DBG-argparse] exit add_argument\n") def _get_arg(self, idx: int) -> Argument | t.CPtr: return t.CPtr(t.CUInt64T(self._args) + idx * Argument.__sizeof__()) @@ -280,7 +267,6 @@ class ArgumentParser: args: ParsedArgs | t.CPtr = ParsedArgs(self.__mbuddy__) if args is None: return None - # Initialize default values i: int = 0 while i < self._arg_count: diff --git a/includes/hashtable.vp b/includes/hashtable.vp index 22086a5..99a190f 100644 --- a/includes/hashtable.vp +++ b/includes/hashtable.vp @@ -4,6 +4,7 @@ import t, c import string import memhub +import stdio from stdint import * # Empty slot marker (hash == 0) @@ -173,7 +174,8 @@ class HashTable: sh: t.CUInt64T = self._slot_hash(idx) if sh == _HT_EMPTY or sh == _HT_TOMBSTONE: return None - return self._slot_value(idx) + v: t.CPtr = self._slot_value(idx) + return v def __contains__(self, key: str) -> t.CInt: """Check whether key exists in table.""" diff --git a/includes/string.vp b/includes/string.vp index ef9ceed..6ad1adb 100644 --- a/includes/string.vp +++ b/includes/string.vp @@ -1,5 +1,6 @@ from stdint import * import t, c +import stdio # String copy function @@ -46,6 +47,24 @@ def strncpy(dest: str, src: str, n: t.CSizeT) -> str: return original_dest +# String concatenate function with limited length +def strncat(dest: str, src: str, n: t.CSizeT) -> str: + if dest == None or src == None or n == 0: return dest + original_dest: str = dest + # Find end of dest + while dest[0] != '\0': + dest += 1 + # Copy up to n chars from src + i: t.CSizeT = 0 + for s in src: + if i >= n: break + dest[0] = s + dest += 1 + i += 1 + dest[0] = 0 + return original_dest + + # String length function def strlen(src: str) -> t.CSizeT | t.CExport: length: t.CSizeT = 0 diff --git a/stest/BuddyTest/.tpv_buil/temp/_sha1_map.txt b/stest/BuddyTest/.tpv_buil/temp/_sha1_map.txt deleted file mode 100644 index e69de29..0000000 diff --git a/test.vp b/test.vp deleted file mode 100644 index 4889b2e..0000000 --- a/test.vp +++ /dev/null @@ -1 +0,0 @@ -import tkinter \ No newline at end of file diff --git a/thistest/.tpv_build/temp/03/03d3ece355d95d76.deps.txt b/thistest/.tpv_build/temp/03/03d3ece355d95d76.deps.txt deleted file mode 100644 index 8c2cb2a..0000000 --- a/thistest/.tpv_build/temp/03/03d3ece355d95d76.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c vipermath \ No newline at end of file diff --git a/thistest/.tpv_build/temp/06/067c78e9f121dce3.deps.txt b/thistest/.tpv_build/temp/06/067c78e9f121dce3.deps.txt deleted file mode 100644 index e28a09e..0000000 --- a/thistest/.tpv_build/temp/06/067c78e9f121dce3.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint w32.win32base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/06/06f53cc594b4ac6c.deps.txt b/thistest/.tpv_build/temp/06/06f53cc594b4ac6c.deps.txt deleted file mode 100644 index e28a09e..0000000 --- a/thistest/.tpv_build/temp/06/06f53cc594b4ac6c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint w32.win32base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/07/07536d26b435806c.deps.txt b/thistest/.tpv_build/temp/07/07536d26b435806c.deps.txt deleted file mode 100644 index dabfb75..0000000 --- a/thistest/.tpv_build/temp/07/07536d26b435806c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint vqt6._types \ No newline at end of file diff --git a/thistest/.tpv_build/temp/0c/0c67644125bea0fd.deps.txt b/thistest/.tpv_build/temp/0c/0c67644125bea0fd.deps.txt deleted file mode 100644 index eb6c96a..0000000 --- a/thistest/.tpv_build/temp/0c/0c67644125bea0fd.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint platmacro memhub string stdio w32.win32base w32 w32.win32process w32 posix \ No newline at end of file diff --git a/thistest/.tpv_build/temp/0c/0cb53ffd1825de7e.deps.txt b/thistest/.tpv_build/temp/0c/0cb53ffd1825de7e.deps.txt deleted file mode 100644 index 9546553..0000000 --- a/thistest/.tpv_build/temp/0c/0cb53ffd1825de7e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base w32.win32sync \ No newline at end of file diff --git a/thistest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt b/thistest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/thistest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/13/13110effbb0bb06c.deps.txt b/thistest/.tpv_build/temp/13/13110effbb0bb06c.deps.txt deleted file mode 100644 index 0774018..0000000 --- a/thistest/.tpv_build/temp/13/13110effbb0bb06c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string memhub platmacro \ No newline at end of file diff --git a/thistest/.tpv_build/temp/14/143d6f5584d3b646.deps.txt b/thistest/.tpv_build/temp/14/143d6f5584d3b646.deps.txt deleted file mode 100644 index 103beac..0000000 --- a/thistest/.tpv_build/temp/14/143d6f5584d3b646.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt b/thistest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/thistest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/1f/1f6617c02fc8899d.deps.txt b/thistest/.tpv_build/temp/1f/1f6617c02fc8899d.deps.txt deleted file mode 100644 index 29f4eea..0000000 --- a/thistest/.tpv_build/temp/1f/1f6617c02fc8899d.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint string stdlib memhub t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/20/20cd49775c100a38.deps.txt b/thistest/.tpv_build/temp/20/20cd49775c100a38.deps.txt deleted file mode 100644 index 5abd292..0000000 --- a/thistest/.tpv_build/temp/20/20cd49775c100a38.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string stdio json \ No newline at end of file diff --git a/thistest/.tpv_build/temp/20/20cd49775c100a38.vpi b/thistest/.tpv_build/temp/20/20cd49775c100a38.vpi deleted file mode 100644 index 35a55ed..0000000 --- a/thistest/.tpv_build/temp/20/20cd49775c100a38.vpi +++ /dev/null @@ -1,19 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import memhub -import string -from stdio import snprintf -from . import JsonValue, JSON_NULL, JSON_BOOL, JSON_INT, JSON_FLOAT, JSON_STRING, JSON_ARRAY, JSON_OBJECT -def _write_char(buf: t.CChar | t.CPtr, pos: t.CSizeT, ch: t.CChar) -> t.CSizeT: pass - -def _write_str(buf: t.CChar | t.CPtr, pos: t.CSizeT, s: t.CChar | t.CPtr) -> t.CSizeT: pass - -def _write_string_escaped(buf: t.CChar | t.CPtr, pos: t.CSizeT, s: t.CChar | t.CPtr) -> t.CSizeT: pass - -def _write_value(buf: t.CChar | t.CPtr, pos: t.CSizeT, val: JsonValue | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CSizeT: pass - -def write(pool: memhub.MemManager | t.CPtr, val: JsonValue | t.CPtr, pretty: bool) -> t.CChar | t.CPtr: pass - diff --git a/thistest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt b/thistest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt deleted file mode 100644 index c76c2b1..0000000 --- a/thistest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib ast.tokens \ No newline at end of file diff --git a/thistest/.tpv_build/temp/24/240a9a4157959a9f.deps.txt b/thistest/.tpv_build/temp/24/240a9a4157959a9f.deps.txt deleted file mode 100644 index 9b6fbbd..0000000 --- a/thistest/.tpv_build/temp/24/240a9a4157959a9f.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string json \ No newline at end of file diff --git a/thistest/.tpv_build/temp/24/240a9a4157959a9f.vpi b/thistest/.tpv_build/temp/24/240a9a4157959a9f.vpi deleted file mode 100644 index 8dd3a38..0000000 --- a/thistest/.tpv_build/temp/24/240a9a4157959a9f.vpi +++ /dev/null @@ -1,35 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import memhub -import string -from . import JsonValue, JSON_NULL, JSON_BOOL, JSON_INT, JSON_FLOAT, JSON_STRING, JSON_ARRAY, JSON_OBJECT, null, bool_val, int_val, float_val, string_val, array, object -class ParseState: - src: t.CChar | t.CPtr - pos: t.CSizeT - len: t.CSizeT - pool: memhub.MemManager | t.CPtr - def __init__(self, src: t.CChar | t.CPtr, pool: memhub.MemManager | t.CPtr): pass - -def _peek(s: ParseState | t.CPtr) -> t.CChar: pass - -def _advance(s: ParseState | t.CPtr) -> t.CChar: pass - -def _skip_whitespace(s: ParseState | t.CPtr): pass - -def _expect(s: ParseState | t.CPtr, ch: t.CChar) -> bool: pass - -def _parse_string(s: ParseState | t.CPtr) -> t.CChar | t.CPtr: pass - -def _parse_number(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_value(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_array(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_object(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def parse(pool: memhub.MemManager | t.CPtr, src: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass - diff --git a/thistest/.tpv_build/temp/28/285a822aa26bfbda.deps.txt b/thistest/.tpv_build/temp/28/285a822aa26bfbda.deps.txt deleted file mode 100644 index 2986427..0000000 --- a/thistest/.tpv_build/temp/28/285a822aa26bfbda.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub \ No newline at end of file diff --git a/thistest/.tpv_build/temp/28/285b6aa29a34754d.deps.txt b/thistest/.tpv_build/temp/28/285b6aa29a34754d.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/28/285b6aa29a34754d.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/28/285b6aa29a34754d.vpi b/thistest/.tpv_build/temp/28/285b6aa29a34754d.vpi deleted file mode 100644 index 4ca28e0..0000000 --- a/thistest/.tpv_build/temp/28/285b6aa29a34754d.vpi +++ /dev/null @@ -1,20 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -def printf(fmt: t.CConst | str, *args) -> int | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> int | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> int | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> int | t.State: pass - -def puts(s: t.CConst | str) -> int | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> int | t.State: pass - -def fgets(buf: bytes, size: int, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> int | t.State: pass - diff --git a/thistest/.tpv_build/temp/28/28de517e3820658a.deps.txt b/thistest/.tpv_build/temp/28/28de517e3820658a.deps.txt deleted file mode 100644 index 103beac..0000000 --- a/thistest/.tpv_build/temp/28/28de517e3820658a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt b/thistest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt deleted file mode 100644 index 789f582..0000000 --- a/thistest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/2f/2ff06fad52dc2c2c.deps.txt b/thistest/.tpv_build/temp/2f/2ff06fad52dc2c2c.deps.txt deleted file mode 100644 index 9546553..0000000 --- a/thistest/.tpv_build/temp/2f/2ff06fad52dc2c2c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base w32.win32sync \ No newline at end of file diff --git a/thistest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt b/thistest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt deleted file mode 100644 index c19302e..0000000 --- a/thistest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdio t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/32/32cfd766982bc6e7.vpi b/thistest/.tpv_build/temp/32/32cfd766982bc6e7.vpi deleted file mode 100644 index 57f847f..0000000 --- a/thistest/.tpv_build/temp/32/32cfd766982bc6e7.vpi +++ /dev/null @@ -1,7 +0,0 @@ -"""Auto-generated Python stub file""" - - -import stdio, t, c -s: str -def this(): pass - diff --git a/thistest/.tpv_build/temp/33/33d64eeb99369a85.deps.txt b/thistest/.tpv_build/temp/33/33d64eeb99369a85.deps.txt deleted file mode 100644 index 74cae9a..0000000 --- a/thistest/.tpv_build/temp/33/33d64eeb99369a85.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib llvmlite.__types llvmlite.__values llvmlite.__function llvmlite.__module llvmlite.__builder llvmlite.__verify \ No newline at end of file diff --git a/thistest/.tpv_build/temp/34/3487a256b250bb74.deps.txt b/thistest/.tpv_build/temp/34/3487a256b250bb74.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/34/3487a256b250bb74.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.deps.txt b/thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.deps.txt deleted file mode 100644 index ec186f1..0000000 --- a/thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string \ No newline at end of file diff --git a/thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.vpi b/thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.vpi deleted file mode 100644 index c451481..0000000 --- a/thistest/.tpv_build/temp/36/3624cfde3c5cb6cb.vpi +++ /dev/null @@ -1,5 +0,0 @@ -"""Auto-generated Python stub file""" - -import t, c - -from .string import * diff --git a/thistest/.tpv_build/temp/3b/3b96973f2c5c4418.deps.txt b/thistest/.tpv_build/temp/3b/3b96973f2c5c4418.deps.txt deleted file mode 100644 index 9546553..0000000 --- a/thistest/.tpv_build/temp/3b/3b96973f2c5c4418.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base w32.win32sync \ No newline at end of file diff --git a/thistest/.tpv_build/temp/3e/3e775aa83705b119.deps.txt b/thistest/.tpv_build/temp/3e/3e775aa83705b119.deps.txt deleted file mode 100644 index 88b63b8..0000000 --- a/thistest/.tpv_build/temp/3e/3e775aa83705b119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint zlib.zdeflate zdeflate zlib.zinflate zinflate zlib.zchecksum zchecksum zlib.zdef zdef zlib.zhuff zhuff stdlib string memhub t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/3f/3f7c5e78d8652535.deps.txt b/thistest/.tpv_build/temp/3f/3f7c5e78d8652535.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/3f/3f7c5e78d8652535.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/40/40c03bc03431ef81.deps.txt b/thistest/.tpv_build/temp/40/40c03bc03431ef81.deps.txt deleted file mode 100644 index 72c74ed..0000000 --- a/thistest/.tpv_build/temp/40/40c03bc03431ef81.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string stdio viperlib memhub linkedlist llvmlite.__types llvmlite.__function \ No newline at end of file diff --git a/thistest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt b/thistest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/thistest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/45/451745df21e598af.deps.txt b/thistest/.tpv_build/temp/45/451745df21e598af.deps.txt deleted file mode 100644 index aae827d..0000000 --- a/thistest/.tpv_build/temp/45/451745df21e598af.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint zlib.zchecksum zchecksum zlib.zdef zdef zlib.zhuff zhuff string memhub t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/48/4826f733b0735536.deps.txt b/thistest/.tpv_build/temp/48/4826f733b0735536.deps.txt deleted file mode 100644 index d4afd2c..0000000 --- a/thistest/.tpv_build/temp/48/4826f733b0735536.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint platmacro memhub os.path os os._win32 os os._posix os \ No newline at end of file diff --git a/thistest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt b/thistest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/thistest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/63/63d0e4548b4c4672.deps.txt b/thistest/.tpv_build/temp/63/63d0e4548b4c4672.deps.txt deleted file mode 100644 index 675a55f..0000000 --- a/thistest/.tpv_build/temp/63/63d0e4548b4c4672.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint viperlib string memhub stdio stdlib linkedlist \ No newline at end of file diff --git a/thistest/.tpv_build/temp/63/63f2c82fe8a3ef8e.deps.txt b/thistest/.tpv_build/temp/63/63f2c82fe8a3ef8e.deps.txt deleted file mode 100644 index 978194c..0000000 --- a/thistest/.tpv_build/temp/63/63f2c82fe8a3ef8e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c atom \ No newline at end of file diff --git a/thistest/.tpv_build/temp/64/6446627d4f07a1b5.deps.txt b/thistest/.tpv_build/temp/64/6446627d4f07a1b5.deps.txt deleted file mode 100644 index 0681b55..0000000 --- a/thistest/.tpv_build/temp/64/6446627d4f07a1b5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/65/657e182b27c2a022.deps.txt b/thistest/.tpv_build/temp/65/657e182b27c2a022.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/thistest/.tpv_build/temp/65/657e182b27c2a022.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/69/691880abe4506068.deps.txt b/thistest/.tpv_build/temp/69/691880abe4506068.deps.txt deleted file mode 100644 index b7516df..0000000 --- a/thistest/.tpv_build/temp/69/691880abe4506068.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdio \ No newline at end of file diff --git a/thistest/.tpv_build/temp/69/691880abe4506068.vpi b/thistest/.tpv_build/temp/69/691880abe4506068.vpi deleted file mode 100644 index 60de731..0000000 --- a/thistest/.tpv_build/temp/69/691880abe4506068.vpi +++ /dev/null @@ -1,7 +0,0 @@ -"""Auto-generated Python stub file""" - -import t, c - -import stdio -def helloworld(): pass - diff --git a/thistest/.tpv_build/temp/6b/6b3bc463fd044545.deps.txt b/thistest/.tpv_build/temp/6b/6b3bc463fd044545.deps.txt deleted file mode 100644 index 6289bed..0000000 --- a/thistest/.tpv_build/temp/6b/6b3bc463fd044545.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string viperlib memhub linkedlist llvmlite.__function llvmlite.__module \ No newline at end of file diff --git a/thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.deps.txt b/thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.deps.txt deleted file mode 100644 index 5f39e4d..0000000 --- a/thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t \ No newline at end of file diff --git a/thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.vpi b/thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.vpi deleted file mode 100644 index ba1cab0..0000000 --- a/thistest/.tpv_build/temp/6c/6c658cc728d0bbf4.vpi +++ /dev/null @@ -1,18 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -from stdint import * -import t -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass - -def exit(status: int) -> t.State: pass - diff --git a/thistest/.tpv_build/temp/6d/6d535de0b03e99b5.deps.txt b/thistest/.tpv_build/temp/6d/6d535de0b03e99b5.deps.txt deleted file mode 100644 index c6ad617..0000000 --- a/thistest/.tpv_build/temp/6d/6d535de0b03e99b5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/6d/6dde8fc09b24666c.deps.txt b/thistest/.tpv_build/temp/6d/6dde8fc09b24666c.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/6d/6dde8fc09b24666c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/6d/6ddf430432a0e373.deps.txt b/thistest/.tpv_build/temp/6d/6ddf430432a0e373.deps.txt deleted file mode 100644 index ac9e592..0000000 --- a/thistest/.tpv_build/temp/6d/6ddf430432a0e373.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperio json.__parser json.__writer \ No newline at end of file diff --git a/thistest/.tpv_build/temp/6d/6ddf430432a0e373.vpi b/thistest/.tpv_build/temp/6d/6ddf430432a0e373.vpi deleted file mode 100644 index 274a8af..0000000 --- a/thistest/.tpv_build/temp/6d/6ddf430432a0e373.vpi +++ /dev/null @@ -1,65 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import memhub -import string -import viperio -JSON_NULL: t.CDefine = 0 -JSON_BOOL: t.CDefine = 1 -JSON_INT: t.CDefine = 2 -JSON_FLOAT: t.CDefine = 3 -JSON_STRING: t.CDefine = 4 -JSON_ARRAY: t.CDefine = 5 -JSON_OBJECT: t.CDefine = 6 -class JsonValue: - vtype: t.CInt - bool_val: t.CInt - int_val: t.CInt64T - float_val: t.CDouble - str_val: t.CChar | t.CPtr - next: 'JsonValue' | t.CPtr - key: t.CChar | t.CPtr - child: 'JsonValue' | t.CPtr - child_count: t.CSizeT - def __new__(self, pool: memhub.MemManager | t.CPtr): pass - def type(self) -> t.CInt: pass - def is_null(self) -> bool: pass - def is_bool(self) -> bool: pass - def is_int(self) -> bool: pass - def is_float(self) -> bool: pass - def is_string(self) -> bool: pass - def is_array(self) -> bool: pass - def is_object(self) -> bool: pass - def as_bool(self) -> bool: pass - def as_int(self) -> t.CInt64T: pass - def as_float(self) -> t.CDouble: pass - def as_string(self) -> t.CChar | t.CPtr: pass - def __len__(self) -> t.CSizeT: pass - def __getitem__(self, key: t.CChar | t.CPtr) -> 'JsonValue' | t.CPtr: pass - def __setitem__(self, key: t.CChar | t.CPtr, val: 'JsonValue' | t.CPtr): pass - def get_item(self, index: t.CSizeT) -> 'JsonValue' | t.CPtr: pass - def _pool_alloc(self, size: t.CSizeT) -> t.CChar | t.CPtr: pass - def _append_child(self, child: 'JsonValue' | t.CPtr): pass - -def null(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def bool_val(pool: memhub.MemManager | t.CPtr, val: bool) -> JsonValue | t.CPtr: pass - -def int_val(pool: memhub.MemManager | t.CPtr, val: t.CInt64T) -> JsonValue | t.CPtr: pass - -def float_val(pool: memhub.MemManager | t.CPtr, val: t.CDouble) -> JsonValue | t.CPtr: pass - -def string_val(pool: memhub.MemManager | t.CPtr, val: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass - -def array(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def object(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def array_append(pool: memhub.MemManager | t.CPtr, arr: JsonValue | t.CPtr, item: JsonValue | t.CPtr): pass - -def object_set(pool: memhub.MemManager | t.CPtr, obj: JsonValue | t.CPtr, key: t.CChar | t.CPtr, val: JsonValue | t.CPtr): pass - -from .__parser import parse -from .__writer import write diff --git a/thistest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt b/thistest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/71/71e0a3ffcb3ebfad.deps.txt b/thistest/.tpv_build/temp/71/71e0a3ffcb3ebfad.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/thistest/.tpv_build/temp/71/71e0a3ffcb3ebfad.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/thistest/.tpv_build/temp/72/72e2d5ccb7cedcf1.deps.txt b/thistest/.tpv_build/temp/72/72e2d5ccb7cedcf1.deps.txt deleted file mode 100644 index e28a09e..0000000 --- a/thistest/.tpv_build/temp/72/72e2d5ccb7cedcf1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint w32.win32base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt b/thistest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt deleted file mode 100644 index acdf15c..0000000 --- a/thistest/.tpv_build/temp/74/748d0424e8976fa0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdio w32.win32console \ No newline at end of file diff --git a/thistest/.tpv_build/temp/74/74cd54a2cba56957.deps.txt b/thistest/.tpv_build/temp/74/74cd54a2cba56957.deps.txt deleted file mode 100644 index 1344ae8..0000000 --- a/thistest/.tpv_build/temp/74/74cd54a2cba56957.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32process stdlib stdio string \ No newline at end of file diff --git a/thistest/.tpv_build/temp/7c/7cadfe07e983fd90.deps.txt b/thistest/.tpv_build/temp/7c/7cadfe07e983fd90.deps.txt deleted file mode 100644 index 234ee18..0000000 --- a/thistest/.tpv_build/temp/7c/7cadfe07e983fd90.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c memhub string stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/7c/7cadfe07e983fd90.vpi b/thistest/.tpv_build/temp/7c/7cadfe07e983fd90.vpi deleted file mode 100644 index 1688341..0000000 --- a/thistest/.tpv_build/temp/7c/7cadfe07e983fd90.vpi +++ /dev/null @@ -1,27 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import memhub -import string -from stdint import * -class list[T]: - __data__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __pool__: memhub.MemManager | t.CPtr - __elem_size__: t.CSizeT - __iter_index__: t.CSizeT - def __new__(self, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT): pass - def __init__(self, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT): pass - def __len__(self) -> t.CSizeT: pass - def append(self, item: T): pass - def get(self, index: t.CSizeT) -> T: pass - def __getitem__(self, index: t.CSizeT) -> T: pass - def set(self, index: t.CSizeT, value: T): pass - def __setitem__(self, index: t.CSizeT, value: T): pass - def pop(self) -> T: pass - def clear(self): pass - def __iter__(self) -> list[T] | t.CPtr: pass - def __next__(self) -> T: pass - diff --git a/thistest/.tpv_build/temp/7d/7d8c26e41226955a.deps.txt b/thistest/.tpv_build/temp/7d/7d8c26e41226955a.deps.txt deleted file mode 100644 index 80a7f30..0000000 --- a/thistest/.tpv_build/temp/7d/7d8c26e41226955a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint platmacro memhub string w32.win32base w32 w32.win32file w32 posix \ No newline at end of file diff --git a/thistest/.tpv_build/temp/87/874bac141c97bae9.deps.txt b/thistest/.tpv_build/temp/87/874bac141c97bae9.deps.txt deleted file mode 100644 index fa3e631..0000000 --- a/thistest/.tpv_build/temp/87/874bac141c97bae9.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string viperlib memhub stdio linkedlist llvmlite.__types \ No newline at end of file diff --git a/thistest/.tpv_build/temp/8e/8ebed83a7817fa0c.deps.txt b/thistest/.tpv_build/temp/8e/8ebed83a7817fa0c.deps.txt deleted file mode 100644 index 0ec8cde..0000000 --- a/thistest/.tpv_build/temp/8e/8ebed83a7817fa0c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/90/90921d009fdd674c.deps.txt b/thistest/.tpv_build/temp/90/90921d009fdd674c.deps.txt deleted file mode 100644 index 313ad5b..0000000 --- a/thistest/.tpv_build/temp/90/90921d009fdd674c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint zlib.zchecksum zchecksum zlib.zhuff zhuff zlib.zdef zdef string memhub t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/96/96837bcc64032444.deps.txt b/thistest/.tpv_build/temp/96/96837bcc64032444.deps.txt deleted file mode 100644 index c45eb37..0000000 --- a/thistest/.tpv_build/temp/96/96837bcc64032444.deps.txt +++ /dev/null @@ -1 +0,0 @@ -hashlib.__md5 hashlib.__sha1 hashlib.__sha256 hashlib.__sha512 \ No newline at end of file diff --git a/thistest/.tpv_build/temp/99/995f884b86cf981e.deps.txt b/thistest/.tpv_build/temp/99/995f884b86cf981e.deps.txt deleted file mode 100644 index b43b46a..0000000 --- a/thistest/.tpv_build/temp/99/995f884b86cf981e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint vqt6._types vqt6._qtcore vqt6._qtwidgets vqt6._qtgui vqt6._qtnetwork \ No newline at end of file diff --git a/thistest/.tpv_build/temp/_sha1_map.txt b/thistest/.tpv_build/temp/_sha1_map.txt index 8652323..bd24749 100644 --- a/thistest/.tpv_build/temp/_sha1_map.txt +++ b/thistest/.tpv_build/temp/_sha1_map.txt @@ -1,18 +1 @@ -aa246c6e6aa30484:includes/atom.vp -691880abe4506068:includes/hello.vp -6ddf430432a0e373:includes/json/__init__.vp -240a9a4157959a9f:includes/json/__parser.vp -20cd49775c100a38:includes/json/__writer.vp -f9d023d1df2bc9c5:includes/memhub.vp -f5522571bcce7bcb:includes/stdint.vp -285b6aa29a34754d:includes/stdio.vp -6c658cc728d0bbf4:includes/stdlib.vp -ffaf70367668b227:includes/string.vp -32cfd766982bc6e7:includes/this.vp -c9f4be41ca1cc2b4:includes/viperio.vp -3624cfde3c5cb6cb:includes/viperstring.vp -fc980acec33d69a7:includes/w32/win32base.vp -bbdf3bbd4c3bc28c:includes/w32/win32console.vp -e0f0afe3caa1e486:includes/_dict.vp -7cadfe07e983fd90:includes/_list.vp -a7c3f904686e42ce:main.vp +7b4ae756e327a77e:main.vp diff --git a/thistest/.tpv_build/temp/a2/a2c1138ed2328b33.deps.txt b/thistest/.tpv_build/temp/a2/a2c1138ed2328b33.deps.txt deleted file mode 100644 index e60effd..0000000 --- a/thistest/.tpv_build/temp/a2/a2c1138ed2328b33.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string socket memhub stdio \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a3/a335eb99f2e34479.deps.txt b/thistest/.tpv_build/temp/a3/a335eb99f2e34479.deps.txt deleted file mode 100644 index 7b006d9..0000000 --- a/thistest/.tpv_build/temp/a3/a335eb99f2e34479.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint platmacro memhub string w32.win32base w32 w32.win32file w32 w32.win32process w32 w32.win32sync w32 posix \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a4/a44503977f4f5951.deps.txt b/thistest/.tpv_build/temp/a4/a44503977f4f5951.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/a4/a44503977f4f5951.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt b/thistest/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt deleted file mode 100644 index 103beac..0000000 --- a/thistest/.tpv_build/temp/a5/a5e9a83e9db303ad.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a6/a68b70f233541a7f.deps.txt b/thistest/.tpv_build/temp/a6/a68b70f233541a7f.deps.txt deleted file mode 100644 index 44b62b2..0000000 --- a/thistest/.tpv_build/temp/a6/a68b70f233541a7f.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base w32 w32.win32file w32 memhub stdlib \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a7/a7748ef067f79205.deps.txt b/thistest/.tpv_build/temp/a7/a7748ef067f79205.deps.txt deleted file mode 100644 index 49760f6..0000000 --- a/thistest/.tpv_build/temp/a7/a7748ef067f79205.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string viperlib memhub stdio linkedlist llvmlite.__types llvmlite.__values llvmlite.__function \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a7/a7c3f904686e42ce.deps.txt b/thistest/.tpv_build/temp/a7/a7c3f904686e42ce.deps.txt deleted file mode 100644 index d89206d..0000000 --- a/thistest/.tpv_build/temp/a7/a7c3f904686e42ce.deps.txt +++ /dev/null @@ -1 +0,0 @@ -w32.win32console w32cmd viperstring string memhub stdlib stdio hello this t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/a7/a7c3f904686e42ce.vpi b/thistest/.tpv_build/temp/a7/a7c3f904686e42ce.vpi deleted file mode 100644 index 5e99433..0000000 --- a/thistest/.tpv_build/temp/a7/a7c3f904686e42ce.vpi +++ /dev/null @@ -1,18 +0,0 @@ -"""Auto-generated Python stub file""" - - -import w32.win32console as w32cmd -import viperstring as string -import memhub -import stdlib -import stdio -import hello -import this -import t, c -pagecode: t.CDefine = 65001 -def add(x: int, y: int) -> int: pass - -def minus(x: int, y: int) -> int: pass - -def main(argc: int, argv: t.CArray[str]) -> int: pass - diff --git a/thistest/.tpv_build/temp/a7/a7cef7aa679215d9.deps.txt b/thistest/.tpv_build/temp/a7/a7cef7aa679215d9.deps.txt deleted file mode 100644 index 9546553..0000000 --- a/thistest/.tpv_build/temp/a7/a7cef7aa679215d9.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base w32.win32sync \ No newline at end of file diff --git a/thistest/.tpv_build/temp/aa/aa246c6e6aa30484.deps.txt b/thistest/.tpv_build/temp/aa/aa246c6e6aa30484.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/aa/aa246c6e6aa30484.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi b/thistest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi deleted file mode 100644 index 850204b..0000000 --- a/thistest/.tpv_build/temp/aa/aa246c6e6aa30484.vpi +++ /dev/null @@ -1,22 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - diff --git a/thistest/.tpv_build/temp/ab/ab0baf141ec5b021.deps.txt b/thistest/.tpv_build/temp/ab/ab0baf141ec5b021.deps.txt deleted file mode 100644 index 7f50989..0000000 --- a/thistest/.tpv_build/temp/ab/ab0baf141ec5b021.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint w32.win32base w32.win32process w32.win32sync lock event condition rwlock \ No newline at end of file diff --git a/thistest/.tpv_build/temp/af/af37c9ab38eea99e.deps.txt b/thistest/.tpv_build/temp/af/af37c9ab38eea99e.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/thistest/.tpv_build/temp/af/af37c9ab38eea99e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/thistest/.tpv_build/temp/b3/b311b47f33281389.deps.txt b/thistest/.tpv_build/temp/b3/b311b47f33281389.deps.txt deleted file mode 100644 index ffede5f..0000000 --- a/thistest/.tpv_build/temp/b3/b311b47f33281389.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t memhub string \ No newline at end of file diff --git a/thistest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt b/thistest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt deleted file mode 100644 index 60b345d..0000000 --- a/thistest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdio hashtable \ No newline at end of file diff --git a/thistest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt b/thistest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/thistest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt b/thistest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt deleted file mode 100644 index da1157e..0000000 --- a/thistest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string \ No newline at end of file diff --git a/thistest/.tpv_build/temp/b5/b57252077e6b596b.deps.txt b/thistest/.tpv_build/temp/b5/b57252077e6b596b.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/b5/b57252077e6b596b.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.deps.txt b/thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.deps.txt deleted file mode 100644 index e28a09e..0000000 --- a/thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint w32.win32base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.vpi b/thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.vpi deleted file mode 100644 index 4dace02..0000000 --- a/thistest/.tpv_build/temp/bb/bbdf3bbd4c3bc28c.vpi +++ /dev/null @@ -1,141 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -from stdint import * -from w32.win32base import * -ENABLE_PROCESSED_INPUT: t.CDefine = 1 -ENABLE_LINE_INPUT: t.CDefine = 2 -ENABLE_ECHO_INPUT: t.CDefine = 4 -ENABLE_WINDOW_INPUT: t.CDefine = 8 -ENABLE_MOUSE_INPUT: t.CDefine = 16 -ENABLE_INSERT_MODE: t.CDefine = 32 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 64 -ENABLE_EXTENDED_FLAGS: t.CDefine = 128 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 1 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 2 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 4 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 8 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 16 -FOREGROUND_BLUE: t.CDefine = 1 -FOREGROUND_GREEN: t.CDefine = 2 -FOREGROUND_RED: t.CDefine = 4 -FOREGROUND_INTENSITY: t.CDefine = 8 -BACKGROUND_BLUE: t.CDefine = 16 -BACKGROUND_GREEN: t.CDefine = 32 -BACKGROUND_RED: t.CDefine = 64 -BACKGROUND_INTENSITY: t.CDefine = 128 -KEY_EVENT: t.CDefine = 1 -MOUSE_EVENT: t.CDefine = 2 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 4 -MENU_EVENT: t.CDefine = 8 -FOCUS_EVENT: t.CDefine = 16 -class COORD: - X: SHORT - Y: SHORT - -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT - -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD - -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL - -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD - -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG - -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG - -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD - -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass - diff --git a/thistest/.tpv_build/temp/c1/c18c3a20f82d7525.deps.txt b/thistest/.tpv_build/temp/c1/c18c3a20f82d7525.deps.txt deleted file mode 100644 index dabfb75..0000000 --- a/thistest/.tpv_build/temp/c1/c18c3a20f82d7525.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint vqt6._types \ No newline at end of file diff --git a/thistest/.tpv_build/temp/c3/c3a6aed1f1fb8b1e.deps.txt b/thistest/.tpv_build/temp/c3/c3a6aed1f1fb8b1e.deps.txt deleted file mode 100644 index cfb58b6..0000000 --- a/thistest/.tpv_build/temp/c3/c3a6aed1f1fb8b1e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint stdlib string vipermath stdio t c memhub \ No newline at end of file diff --git a/thistest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt b/thistest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.deps.txt b/thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.deps.txt deleted file mode 100644 index 103beac..0000000 --- a/thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.vpi b/thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.vpi deleted file mode 100644 index 885e69d..0000000 --- a/thistest/.tpv_build/temp/c9/c9f4be41ca1cc2b4.vpi +++ /dev/null @@ -1,19 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool): pass - def clear(self): pass - def write(self, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self) -> t.CChar | t.CPtr: pass - def reset(self): pass - def __enter__(self) -> 'Buf' | t.CPtr: pass - def __exit__(self): pass - def free(self): pass - diff --git a/thistest/.tpv_build/temp/d1/d137b1f3311f3a7f.deps.txt b/thistest/.tpv_build/temp/d1/d137b1f3311f3a7f.deps.txt deleted file mode 100644 index ba7f753..0000000 --- a/thistest/.tpv_build/temp/d1/d137b1f3311f3a7f.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint stdio w32.win32base w32 w32.win32file w32 \ No newline at end of file diff --git a/thistest/.tpv_build/temp/d1/d152115b49e50218.deps.txt b/thistest/.tpv_build/temp/d1/d152115b49e50218.deps.txt deleted file mode 100644 index 640d691..0000000 --- a/thistest/.tpv_build/temp/d1/d152115b49e50218.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint posix memhub stdlib \ No newline at end of file diff --git a/thistest/.tpv_build/temp/d3/d3917d97537f703c.deps.txt b/thistest/.tpv_build/temp/d3/d3917d97537f703c.deps.txt deleted file mode 100644 index b092476..0000000 --- a/thistest/.tpv_build/temp/d3/d3917d97537f703c.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/d5/d541ade6afb689a5.deps.txt b/thistest/.tpv_build/temp/d5/d541ade6afb689a5.deps.txt deleted file mode 100644 index a7f920a..0000000 --- a/thistest/.tpv_build/temp/d5/d541ade6afb689a5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint zlib.zdef zdef memhub t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/d6/d63d2c2a2bd9bd2a.deps.txt b/thistest/.tpv_build/temp/d6/d63d2c2a2bd9bd2a.deps.txt deleted file mode 100644 index 1b0c811..0000000 --- a/thistest/.tpv_build/temp/d6/d63d2c2a2bd9bd2a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -zlib.pyzlib \ No newline at end of file diff --git a/thistest/.tpv_build/temp/d9/d989a211953ede05.deps.txt b/thistest/.tpv_build/temp/d9/d989a211953ede05.deps.txt deleted file mode 100644 index dabfb75..0000000 --- a/thistest/.tpv_build/temp/d9/d989a211953ede05.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint vqt6._types \ No newline at end of file diff --git a/thistest/.tpv_build/temp/de/de3357cb9182715e.deps.txt b/thistest/.tpv_build/temp/de/de3357cb9182715e.deps.txt deleted file mode 100644 index 3d26bad..0000000 --- a/thistest/.tpv_build/temp/de/de3357cb9182715e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.visitor ast.lexer ast.parser ast.parser \ No newline at end of file diff --git a/thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.deps.txt b/thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.deps.txt deleted file mode 100644 index 4bc7daa..0000000 --- a/thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c memhub string json stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.vpi b/thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.vpi deleted file mode 100644 index 7f9cd6c..0000000 --- a/thistest/.tpv_build/temp/e0/e0f0afe3caa1e486.vpi +++ /dev/null @@ -1,49 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -import memhub -import string -import json -from stdint import * -VARIANT_NONE: t.CDefine = 0 -VARIANT_INT: t.CDefine = 1 -VARIANT_FLOAT: t.CDefine = 2 -VARIANT_DOUBLE: t.CDefine = 3 -VARIANT_STR: t.CDefine = 4 -VARIANT_DICT: t.CDefine = 5 -VARIANT_LIST: t.CDefine = 6 -VARIANT_BOOL: t.CDefine = 7 -VARIANT_PTR: t.CDefine = 8 -_VARIANT_SIZE: t.CDefine = 16 -class dict: - __keys__: t.CPtr - __values__: t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT - def __new__(self, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self, mb: memhub.MemBuddy | t.CPtr): pass - def __len__(self) -> t.CSizeT: pass - def _find(self, key: str) -> t.CSizeT: pass - def __getitem__(self, key: str) -> t.CPtr: pass - def __setitem__(self, key: str, val: t.CNeedPtr): pass - def _set_variant_raw(self, key: str, vtype: t.CInt, ptr: t.CPtr): pass - def set_int(self, key: str, val: int): pass - def set_str(self, key: str, val: str): pass - def set_float(self, key: str, val: float): pass - def set_double(self, key: str, val: t.CDouble): pass - def set_dict(self, key: str, val: dict | t.CPtr): pass - def set_list(self, key: str, val: t.CPtr): pass - def set_bool(self, key: str, val: t.CInt): pass - def get_vtype(self, key: str) -> t.CInt: pass - def get(self, key: str, default: t.CPtr) -> t.CPtr: pass - def contains(self, key: str) -> t.CInt: pass - def __iter__(self) -> dict | t.CPtr: pass - def __next__(self) -> str: pass - def to_json(self, pool: memhub.MemManager | t.CPtr) -> json.JsonValue | t.CPtr: pass - def from_json(self, pool: memhub.MemManager | t.CPtr, root: json.JsonValue | t.CPtr): pass - def dumps(self, pool: memhub.MemManager | t.CPtr) -> str: pass - def loads(self, pool: memhub.MemManager | t.CPtr, json_str: str): pass - diff --git a/thistest/.tpv_build/temp/e1/e1f7ae4d330dcf9f.deps.txt b/thistest/.tpv_build/temp/e1/e1f7ae4d330dcf9f.deps.txt deleted file mode 100644 index dabfb75..0000000 --- a/thistest/.tpv_build/temp/e1/e1f7ae4d330dcf9f.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint vqt6._types \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt b/thistest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt deleted file mode 100644 index 32f64f4..0000000 --- a/thistest/.tpv_build/temp/f5/f5522571bcce7bcb.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi b/thistest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi deleted file mode 100644 index 7871c20..0000000 --- a/thistest/.tpv_build/temp/f5/f5522571bcce7bcb.vpi +++ /dev/null @@ -1,95 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool diff --git a/thistest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt b/thistest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt deleted file mode 100644 index 6ede9fe..0000000 --- a/thistest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f6/f6ab8989f3545e83.deps.txt b/thistest/.tpv_build/temp/f6/f6ab8989f3545e83.deps.txt deleted file mode 100644 index 97907fa..0000000 --- a/thistest/.tpv_build/temp/f6/f6ab8989f3545e83.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c viperio stdarg \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f6/f6b51804a0ba8ff0.deps.txt b/thistest/.tpv_build/temp/f6/f6b51804a0ba8ff0.deps.txt deleted file mode 100644 index e28a09e..0000000 --- a/thistest/.tpv_build/temp/f6/f6b51804a0ba8ff0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint w32.win32base \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f7/f742623d43c327ea.deps.txt b/thistest/.tpv_build/temp/f7/f742623d43c327ea.deps.txt deleted file mode 100644 index 3df3f17..0000000 --- a/thistest/.tpv_build/temp/f7/f742623d43c327ea.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string platmacro stdio w32.winsock2 w32 \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt b/thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt deleted file mode 100644 index 6803c16..0000000 --- a/thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string atom viperio stdio stdlib \ No newline at end of file diff --git a/thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi b/thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi deleted file mode 100644 index fb3ad3b..0000000 --- a/thistest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,97 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - -@t.CVTable -class MemManager: - __provides__: list[str] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def calloc(self, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self) -> 'MemManager' | t.CPtr: pass - def __exit__(self): pass - def alloc_buf(self, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass - -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemBuddy(MemManager): - __provides__: list[str] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def mark(self) -> t.CSizeT: pass - def reset_to(self, mark: t.CSizeT): pass - def reset_all(self): pass - def _fl_push(self, order: t.CInt, block: t.CVoid | t.CPtr): pass - def _fl_pop(self, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self, block: t.CVoid | t.CPtr, order: t.CInt): pass - def _is_valid_ptr(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self): pass - def _unlock(self): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self) -> t.CSizeT: pass - def stats(self) -> t.CSizeT: pass - def free_count(self) -> t.CSizeT: pass - def free_bytes(self) -> t.CSizeT: pass - def used_bytes(self) -> t.CSizeT: pass - def dump_stats(self, label: t.CChar | t.CPtr): pass - def self_check(self) -> t.CInt: pass - diff --git a/thistest/.tpv_build/temp/f9/f9e36e2cd6fa659f.deps.txt b/thistest/.tpv_build/temp/f9/f9e36e2cd6fa659f.deps.txt deleted file mode 100644 index 267186e..0000000 --- a/thistest/.tpv_build/temp/f9/f9e36e2cd6fa659f.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string viperlib memhub linkedlist llvmlite.__types \ No newline at end of file diff --git a/thistest/.tpv_build/temp/fc/fc980acec33d69a7.deps.txt b/thistest/.tpv_build/temp/fc/fc980acec33d69a7.deps.txt deleted file mode 100644 index c6ad617..0000000 --- a/thistest/.tpv_build/temp/fc/fc980acec33d69a7.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t stdint \ No newline at end of file diff --git a/thistest/.tpv_build/temp/fc/fc980acec33d69a7.vpi b/thistest/.tpv_build/temp/fc/fc980acec33d69a7.vpi deleted file mode 100644 index 32c489d..0000000 --- a/thistest/.tpv_build/temp/fc/fc980acec33d69a7.vpi +++ /dev/null @@ -1,101 +0,0 @@ -"""Auto-generated Python stub file""" - -import c - -import t -from stdint import * -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = 4294967295 -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 4294967295 -WAIT_FAILED: t.CDefine = 4294967295 -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 128 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL - -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE - -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD - -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD - -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR - -class LARGE_INTEGER: - QuadPart: LONGLONG - -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass - diff --git a/thistest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt b/thistest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt deleted file mode 100644 index 5dd68c7..0000000 --- a/thistest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.exprs ast.stmts ast.astaux ast.lexer \ No newline at end of file diff --git a/thistest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt b/thistest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt deleted file mode 100644 index 0ec8cde..0000000 --- a/thistest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t c \ No newline at end of file diff --git a/thistest/.tpv_build/temp/ff/ffaf70367668b227.vpi b/thistest/.tpv_build/temp/ff/ffaf70367668b227.vpi deleted file mode 100644 index 2e97004..0000000 --- a/thistest/.tpv_build/temp/ff/ffaf70367668b227.vpi +++ /dev/null @@ -1,54 +0,0 @@ -"""Auto-generated Python stub file""" - - -from stdint import * -import t, c -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - -ascii_lowercase: str -ascii_uppercase: str -ascii_letters: str -digits: str -hexdigits: str -octdigits: str -punctuation: str -whitespace: str -printable: str

    d=l{YfG+~R1o#%<+kl?| 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 literal 464149 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 z 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 diff --git a/Test/TestProject/output/cfc83b830141b00e.deps.json b/Test/TestProject/output/cfc83b830141b00e.deps.json index 836b80a..0b2b60e 100644 --- a/Test/TestProject/output/cfc83b830141b00e.deps.json +++ b/Test/TestProject/output/cfc83b830141b00e.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "8e0d8fdba991b3b4", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "config": "8e0d8fdba991b3b4", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject/output/e5fb16127bce8f68.deps.json b/Test/TestProject/output/e5fb16127bce8f68.deps.json index c25a0a9..c91720d 100644 --- a/Test/TestProject/output/e5fb16127bce8f68.deps.json +++ b/Test/TestProject/output/e5fb16127bce8f68.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "config": "cfc83b830141b00e", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "stdint": "f5522571bcce7bcb", "zc.logic_test": "faec3233d98371da", "logic_test": "faec3233d98371da", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject/output/faec3233d98371da.deps.json b/Test/TestProject/output/faec3233d98371da.deps.json index 9bd0adf..5b29178 100644 --- a/Test/TestProject/output/faec3233d98371da.deps.json +++ b/Test/TestProject/output/faec3233d98371da.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdio": "6f62fe05c5ea1ceb", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "config": "cfc83b830141b00e", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "test_numpy": "3cd87018ba1e76bc", "vipermath": "3f7c5e78d8652535", "main": "49cae05490a513cb", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "zc.test": "75583f20a922ab2e", "test": "75583f20a922ab2e", "config": "cfc83b830141b00e", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "numpy.__init__": "c3a6aed1f1fb8b1e", "__init__": "c3a6aed1f1fb8b1e", "numpy": "c3a6aed1f1fb8b1e", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "zc.class_test": "e5fb16127bce8f68", "class_test": "e5fb16127bce8f68", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject/temp/14d33679f7fadf1f.pyi b/Test/TestProject/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/TestProject/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/TestProject/temp/271ea3decb810db2.pyi b/Test/TestProject/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/TestProject/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/TestProject/temp/3cd87018ba1e76bc.pyi b/Test/TestProject/temp/3cd87018ba1e76bc.pyi deleted file mode 100644 index 669f365..0000000 --- a/Test/TestProject/temp/3cd87018ba1e76bc.pyi +++ /dev/null @@ -1,108 +0,0 @@ -""" -Auto-generated Python stub file from test_numpy.py -Module: test_numpy -""" - - -from stdint import * -import numpy -from stdio import printf -from stdlib import calloc, free -import string -import vipermath -import memhub -import t, c - -EPS: t.CExtern | t.CDouble -EPS_LOOSE: t.CExtern | t.CDouble -SIMD_BLOCK: t.CExtern | t.CSizeT -arena: t.CExtern | t.CUInt8T | t.CPtr -pool: t.CExtern | memhub.MemPool | t.CPtr -test_passed: t.CExtern | t.CInt -test_failed: t.CExtern | t.CInt - -def check(name: str, condition: t.CInt, detail: str) -> t.CInt: pass - -def approx_eq(a: t.CDouble, b: t.CDouble) -> t.CInt: pass - -def approx_loose(a: t.CDouble, b: t.CDouble) -> t.CInt: pass - -def section_header(title: str) -> t.CInt: pass - -def section_footer() -> t.CInt: pass - -def vec4(p: memhub.MemPool | t.CPtr, v0: t.CDouble, v1: t.CDouble, v2: t.CDouble, v3: t.CDouble) -> numpy.ndarray | t.CPtr: pass - -def vec3(p: memhub.MemPool | t.CPtr, v0: t.CDouble, v1: t.CDouble, v2: t.CDouble) -> numpy.ndarray | t.CPtr: pass - -def vec2(p: memhub.MemPool | t.CPtr, v0: t.CDouble, v1: t.CDouble) -> numpy.ndarray | t.CPtr: pass - -def test_zeros_ones() -> t.CInt: pass - -def test_arange_linspace() -> t.CInt: pass - -def test_eye_diag() -> t.CInt: pass - -def test_sum_mean_min_max() -> t.CInt: pass - -def test_fill_copy() -> t.CInt: pass - -def test_add_sub_mul_div() -> t.CInt: pass - -def test_neg() -> t.CInt: pass - -def test_len() -> t.CInt: pass - -def test_scalar_ops() -> t.CInt: pass - -def test_math_funcs() -> t.CInt: pass - -def test_matmul() -> t.CInt: pass - -def test_dot() -> t.CInt: pass - -def test_transpose() -> t.CInt: pass - -def test_var_std_norm() -> t.CInt: pass - -def test_clip_concatenate() -> t.CInt: pass - -def test_sort_reverse() -> t.CInt: pass - -def test_print_arr() -> t.CInt: pass - -def test_floordiv_mod() -> t.CInt: pass - -def test_additional_math() -> t.CInt: pass - -def test_trig_hyperbolic() -> t.CInt: pass - -def test_degrees_radians() -> t.CInt: pass - -def test_cumsum_diff() -> t.CInt: pass - -def test_max_min_where() -> t.CInt: pass - -def test_flatten_trace() -> t.CInt: pass - -def test_outer() -> t.CInt: pass - -def test_bool_comparison() -> t.CInt: pass - -def test_linalg() -> t.CInt: pass - -def test_additional_creation() -> t.CInt: pass - -def test_interp() -> t.CInt: pass - -def test_numpy_edge() -> t.CInt: pass - -def bench_numpy_perf() -> t.CInt: pass - -def test_numpy_correct() -> t.CInt: pass - -def test_numpy_edge_main() -> t.CInt: pass - -def bench_numpy_main() -> t.CInt: pass - -def test_numpy_main() -> t.CInt: pass diff --git a/Test/TestProject/temp/3f7c5e78d8652535.pyi b/Test/TestProject/temp/3f7c5e78d8652535.pyi deleted file mode 100644 index abe01c2..0000000 --- a/Test/TestProject/temp/3f7c5e78d8652535.pyi +++ /dev/null @@ -1,128 +0,0 @@ -""" -Auto-generated Python stub file from vipermath.py -Module: vipermath -""" - - -import t, c - -U_M_PI: t.CDefine = 3.14159265358979323846 -U_M_E: t.CDefine = 2.71828182845904523536 -U_M_PI_2: t.CDefine = 1.57079632679489661923 -U_M_PI_4: t.CDefine = 0.78539816339744830962 -U_M_1_PI: t.CDefine = 0.31830988618379067154 -U_M_2_PI: t.CDefine = 0.63661977236758134308 -U_M_LN2: t.CDefine = 0.69314718055994530942 -U_M_LN10: t.CDefine = 2.30258509299404568402 -U_M_2_SQRT_PI: t.CDefine = 1.77245385090551602730 - -def radians(degrees: t.CDouble) -> t.CDouble: pass - -def degrees(radians: t.CDouble) -> t.CDouble: pass - -def sin(x: t.CDouble) -> t.CDouble: pass - -def cos(x: t.CDouble) -> t.CDouble: pass - -def tan(x: t.CDouble) -> t.CDouble: pass - -def asin(x: t.CDouble) -> t.CDouble: pass - -def acos(x: t.CDouble) -> t.CDouble: pass - -def _atan_core(x: t.CDouble) -> t.CDouble: pass - -def atan(x: t.CDouble) -> t.CDouble: pass - -def atan2(y: t.CDouble, x: t.CDouble) -> t.CDouble: pass - -def sinh(x: t.CDouble) -> t.CDouble: pass - -def cosh(x: t.CDouble) -> t.CDouble: pass - -def tanh(x: t.CDouble) -> t.CDouble: pass - -def exp(x: t.CDouble) -> t.CDouble: pass - -def log(x: t.CDouble) -> t.CDouble: pass - -def sqrt(x: t.CDouble) -> t.CDouble: pass - -def abs(x: t.CInt) -> t.CInt: pass - -def fabs(x: t.CDouble) -> t.CDouble: pass - -def labs(x: t.CLong) -> t.CLong: pass - -def factorial(n: t.CInt) -> t.CDouble: pass - -def combination(n: t.CInt, k: t.CInt) -> t.CDouble: pass - -def permutation(n: t.CInt, k: t.CInt) -> t.CDouble: pass - -def pow(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def powf(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def cbrt(x: t.CDouble) -> t.CDouble: pass - -def hypot(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def floor(x: t.CDouble) -> t.CDouble: pass - -def ceil(x: t.CDouble) -> t.CDouble: pass - -def round(x: t.CDouble) -> t.CDouble: pass - -def trunc(x: t.CDouble) -> t.CDouble: pass - -def fmod(x: t.CDouble, y: t.CDouble) -> t.CDouble: pass - -def fmodf(x: float, y: float) -> float: pass - -def modf(x: t.CDouble, iptr: t.CDouble | t.CPtr) -> t.CDouble: pass - -def log10(x: t.CDouble) -> t.CDouble: pass - -def log2(x: t.CDouble) -> t.CDouble: pass - -def exp2(x: t.CDouble) -> t.CDouble: pass - -def expm1(x: t.CDouble) -> t.CDouble: pass - -def log1p(x: t.CDouble) -> t.CDouble: pass - -def asinh(x: t.CDouble) -> t.CDouble: pass - -def acosh(x: t.CDouble) -> t.CDouble: pass - -def atanh(x: t.CDouble) -> t.CDouble: pass - -def gamma(x: t.CDouble) -> t.CDouble: pass - -def erf(x: t.CDouble) -> t.CDouble: pass - -def erfc(x: t.CDouble) -> t.CDouble: pass - -def sqrtf(x: t.CFloat) -> t.CFloat: pass - -def sinf(x: t.CFloat) -> t.CFloat: pass - -def cosf(x: t.CFloat) -> t.CFloat: pass - -def tanf(x: t.CFloat) -> t.CFloat: pass - -def fabsf(x: t.CFloat) -> t.CFloat: pass - -def floorf(x: t.CFloat) -> t.CFloat: pass - -def ceilf(x: t.CFloat) -> t.CFloat: pass - - -class _U(t.CUnion): - d: t.CDouble - u: t.CUInt64T - -def isnan(x: t.CDouble) -> t.CStatic | t.CInt: pass - -def isinf(x: t.CDouble) -> t.CStatic | t.CInt: pass diff --git a/Test/TestProject/temp/49cae05490a513cb.pyi b/Test/TestProject/temp/49cae05490a513cb.pyi deleted file mode 100644 index e1af96b..0000000 --- a/Test/TestProject/temp/49cae05490a513cb.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import t -import c - - -import stdio -import stdint -import zc.config as config -import zc.test as test -import zc.logic_test as logic -import zc.class_test as class_test -import testcheck -import test_numpy - -def main() -> stdint.INT: pass diff --git a/Test/TestProject/temp/6f62fe05c5ea1ceb.pyi b/Test/TestProject/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/TestProject/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/TestProject/temp/75583f20a922ab2e.pyi b/Test/TestProject/temp/75583f20a922ab2e.pyi deleted file mode 100644 index 10da71f..0000000 --- a/Test/TestProject/temp/75583f20a922ab2e.pyi +++ /dev/null @@ -1,38 +0,0 @@ -""" -Auto-generated Python stub file from zc.test.py -Module: zc.test -""" - - -import config -import t, c - -def AboutSizeTWhileTest(length: t.CSizeT) -> t.CInt: pass - -def MathBasicTest(x: t.CInt, y: t.CInt) -> t.CInt: pass - -def MathAdvancedTest(value: t.CInt) -> t.CInt: pass - -def WhileWithElifElseTest(start: t.CInt, end: t.CInt) -> t.CInt: pass - -def NestedWhileWithMacrosTest(outer_limit: t.CInt, inner_limit: t.CInt) -> t.CInt: pass - -def ComplexConditionTest(a: t.CInt, b: t.CInt, c_val: t.CInt) -> t.CInt: pass - -def RetryLoopTest(retry_count: t.CInt) -> t.CInt: pass - -def BitwiseOperationsTest(value: t.CInt) -> t.CInt: pass - -def CompoundAssignmentMathTest(a: t.CInt, b: t.CInt) -> t.CInt: pass - -def PowerAndModuloTest(base: t.CInt, exponent: t.CInt) -> t.CInt: pass - -def MixedArithmeticTest(x: t.CInt, y: t.CInt, z: t.CInt) -> t.CInt: pass - -def MathWithWhileLoopTest(start: t.CInt, count: t.CInt) -> t.CInt: pass - -def ComplexNestedMathTest(a: t.CInt, b: t.CInt) -> t.CInt: pass - -def ConditionalMathChainTest(value: t.CInt) -> t.CInt: pass - -def BitManipulationMathTest(value: t.CInt) -> t.CInt: pass diff --git a/Test/TestProject/temp/7e529fe7a078cfef.pyi b/Test/TestProject/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/TestProject/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/TestProject/temp/8e0d8fdba991b3b4.pyi b/Test/TestProject/temp/8e0d8fdba991b3b4.pyi deleted file mode 100644 index 1aebea2..0000000 --- a/Test/TestProject/temp/8e0d8fdba991b3b4.pyi +++ /dev/null @@ -1,25 +0,0 @@ -""" -Auto-generated Python stub file from config.py -Module: config -""" - - -import stdint -import t, c - -A: t.CExtern | t.CChar | t.CPtr - -class BIT_TEST(t.Object): - a: t.CInt | t.Bit(1) - b: t.CInt | t.Bit(1) - c: t.CInt | t.Bit(1) - d: t.CInt | t.Bit(5) -class OOP_TEST(t.Object): - a: t.CInt - def __init__(self: OOP_TEST) -> t.CInt: pass - def __call__(self: OOP_TEST) -> stdint.UINT: pass -class ENUM_TEST(t.CEnum): - A: t.State = 0 - B: t.State - C: t.State - Len: t.State \ No newline at end of file diff --git a/Test/TestProject/temp/90c53dd6db8d41cf.pyi b/Test/TestProject/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/TestProject/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/TestProject/temp/_phase1_manifest.json b/Test/TestProject/temp/_phase1_manifest.json index fe057fe..cd39d9f 100644 --- a/Test/TestProject/temp/_phase1_manifest.json +++ b/Test/TestProject/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\config.py": {"sha1": "8e0d8fdba991b3b4", "mtime": 1781111175.0269876, "size": 445}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\main.py": {"sha1": "49cae05490a513cb", "mtime": 1782949786.0815294, "size": 8223}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\test_numpy.py": {"sha1": "3cd87018ba1e76bc", "mtime": 1782828269.700148, "size": 40140}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\class_test.py": {"sha1": "e5fb16127bce8f68", "mtime": 1782266207.4312654, "size": 6472}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\config.py": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\logic_test.py": {"sha1": "faec3233d98371da", "mtime": 1778402365.7843194, "size": 8848}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\test.py": {"sha1": "75583f20a922ab2e", "mtime": 1778401973.4865518, "size": 8976}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.py": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.py": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\config.vp": {"sha1": "8e0d8fdba991b3b4", "mtime": 1781111175.0269876, "size": 445}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\main.vp": {"sha1": "49cae05490a513cb", "mtime": 1782949786.0815294, "size": 8223}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\test_numpy.vp": {"sha1": "3cd87018ba1e76bc", "mtime": 1782828269.700148, "size": 40140}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\class_test.vp": {"sha1": "e5fb16127bce8f68", "mtime": 1782266207.4312654, "size": 6472}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\config.vp": {"sha1": "cfc83b830141b00e", "mtime": 1778402243.1661563, "size": 531}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\logic_test.vp": {"sha1": "faec3233d98371da", "mtime": 1778402365.7843194, "size": 8848}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\TestProject\\App\\zc\\test.vp": {"sha1": "75583f20a922ab2e", "mtime": 1778401973.4865518, "size": 8976}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\numpy\\__init__.vp": {"sha1": "c3a6aed1f1fb8b1e", "mtime": 1784446436.2910569, "size": 39111}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\vipermath.vp": {"sha1": "3f7c5e78d8652535", "mtime": 1781532528.2518907, "size": 15412}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/TestProject/temp/_sha1_map.txt b/Test/TestProject/temp/_sha1_map.txt index 986949b..1dd02a0 100644 --- a/Test/TestProject/temp/_sha1_map.txt +++ b/Test/TestProject/temp/_sha1_map.txt @@ -1,19 +1,19 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -3cd87018ba1e76bc:test_numpy.py -3f7c5e78d8652535:includes/vipermath.py -49cae05490a513cb:main.py -6f62fe05c5ea1ceb:includes/stdio.py -75583f20a922ab2e:zc\test.py -7e529fe7a078cfef:includes/w32\win32base.py -8e0d8fdba991b3b4:config.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c3a6aed1f1fb8b1e:includes/numpy\__init__.py -c9f4be41ca1cc2b4:includes/viperio.py -cfc83b830141b00e:zc\config.py -d089e25a15c6f6e0:includes/memhub.py -e5fb16127bce8f68:zc\class_test.py -f5522571bcce7bcb:includes/stdint.py -faec3233d98371da:zc\logic_test.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +3cd87018ba1e76bc:test_numpy.vp +3f7c5e78d8652535:includes/vipermath.vp +49cae05490a513cb:main.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +75583f20a922ab2e:zc/test.vp +8e0d8fdba991b3b4:config.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c3a6aed1f1fb8b1e:includes/numpy\__init__.vp +c9f4be41ca1cc2b4:includes/viperio.vp +cfc83b830141b00e:zc/config.vp +e5fb16127bce8f68:zc/class_test.vp +f5522571bcce7bcb:includes/stdint.vp +faec3233d98371da:zc/logic_test.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/TestProject/temp/_shared_sym.json b/Test/TestProject/temp/_shared_sym.json index 1fa2ccc0c6f235e40fd2f8ac65284808ca19afe3..0b82583ddcb2bedd43d4fc582a36c0e107d5af80 100644 GIT binary patch literal 618362 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 WfJ+Y;#Kv4}b;nvyPUY2}>-k@4r=xNJ literal 555570 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 BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/TestProject/temp/c3a6aed1f1fb8b1e.pyi b/Test/TestProject/temp/c3a6aed1f1fb8b1e.pyi deleted file mode 100644 index 68a99b1..0000000 --- a/Test/TestProject/temp/c3a6aed1f1fb8b1e.pyi +++ /dev/null @@ -1,240 +0,0 @@ -""" -Auto-generated Python stub file from numpy.__init__.py -Module: numpy.__init__ -""" - - -from stdint import * -import stdlib -import string -import vipermath -import stdio -import t, c -import memhub - -MAX_NDIM: t.CDefine = 4 -float64: t.CTypedef = t.CDouble -float32: t.CTypedef = t.CFloat -int64: t.CTypedef = t.CLong -int32: t.CTypedef = t.CInt -uint8: t.CTypedef = t.CUnsignedChar -pi: t.CDefine = 3.14159265358979323846 -e: t.CDefine = 2.71828182845904523536 - -@t.Object -class ndarray[T]: - data: T | t.CPtr - shape: t.CArray[t.CSizeT, MAX_NDIM] - strides: t.CArray[t.CSizeT, MAX_NDIM] - ndim: t.CInt - size: t.CSizeT - owns_data: t.CInt - pool: memhub.MemManager | t.CPtr - def __new__(self: ndarray, pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> t.CInt: pass - def __add__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __sub__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __mul__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __truediv__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __floordiv__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __mod__(self: ndarray, other: ndarray[T] | t.CPtr) -> ndarray[T] | t.CPtr: pass - def __neg__(self: ndarray) -> ndarray[T] | t.CPtr: pass - def __len__(self: ndarray) -> t.CInt: pass - def at2d(self: ndarray, row: t.CSizeT, col: t.CSizeT) -> T: pass - def set2d(self: ndarray, row: t.CSizeT, col: t.CSizeT, val: T) -> t.CInt: pass - def delete(self: ndarray) -> t.CInt: pass - def fill(self: ndarray, val: T) -> t.CInt: pass - def copy(self: ndarray) -> ndarray[T] | t.CPtr: pass - def reshape(self: ndarray, new_shape: INTPTR, new_ndim: t.CInt) -> ndarray[T] | t.CPtr: pass - def sum(self: ndarray) -> T: pass - def mean(self: ndarray) -> T: pass - def min(self: ndarray) -> T: pass - def max(self: ndarray) -> T: pass - def argmax(self: ndarray) -> t.CInt: pass - def argmin(self: ndarray) -> t.CInt: pass - def dot(self: ndarray, other: ndarray[T] | t.CPtr) -> T: pass - def T(self: ndarray) -> ndarray[T] | t.CPtr: pass - def print_arr(self: ndarray) -> t.CInt: pass - -Float64Array: t.CTypedef = ndarray[t.CDouble] -Float32Array: t.CTypedef = ndarray[t.CFloat] -Int64Array: t.CTypedef = ndarray[t.CLong] -Int32Array: t.CTypedef = ndarray[t.CInt] -Uint8Array: t.CTypedef = ndarray[t.CUnsignedChar] - -def _alloc_ndarray(pool: memhub.MemManager | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def _compute_strides(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def _empty_like(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def array(pool: memhub.MemManager | t.CPtr, data: t.CDouble | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def zeros(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def ones(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def full(pool: memhub.MemManager | t.CPtr, n: t.CSizeT, val: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def arange(pool: memhub.MemManager | t.CPtr, start: t.CDouble, stop: t.CDouble, step: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def linspace(pool: memhub.MemManager | t.CPtr, start: t.CDouble, stop: t.CDouble, num: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def empty2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def zeros2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def ones2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def eye(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def diag(pool: memhub.MemManager | t.CPtr, vals: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_abs(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sqrt(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_exp(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_log(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sin(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_cos(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_tan(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_pow(a: ndarray[t.CDouble] | t.CPtr, p: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def add_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def mul_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def sub_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def div_scalar(a: ndarray[t.CDouble] | t.CPtr, s: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def matmul(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def dot_product(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_sum(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_mean(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_min(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_max(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def np_argmax(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_argmin(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def var(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def std(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def norm(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def clip(a: ndarray[t.CDouble] | t.CPtr, lo: t.CDouble, hi: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def concatenate(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def sort_arr(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def reverse(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_log10(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_log2(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_floor(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_ceil(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_round(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sign(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_tanh(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_sinh(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_cosh(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arcsin(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arccos(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arctan(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_arctan2(y: ndarray[t.CDouble] | t.CPtr, x: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_degrees(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_radians(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_isnan(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_isinf(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_maximum(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_minimum(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def cumsum(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def diff(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def flatten(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def trace(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def outer(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_where(condition: ndarray[t.CDouble] | t.CPtr, x: ndarray[t.CDouble] | t.CPtr, y: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_count_nonzero(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_all(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_any(a: ndarray[t.CDouble] | t.CPtr) -> t.CInt: pass - -def np_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_not_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_less(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_greater(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_less_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_greater_equal(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def empty(pool: memhub.MemManager | t.CPtr, n: t.CSizeT) -> ndarray[t.CDouble] | t.CPtr: pass - -def full2d(pool: memhub.MemManager | t.CPtr, rows: t.CSizeT, cols: t.CSizeT, val: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def zeros_like(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def ones_like(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def arange1(pool: memhub.MemManager | t.CPtr, stop: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def linspace2(pool: memhub.MemManager | t.CPtr, start: t.CDouble, stop: t.CDouble) -> ndarray[t.CDouble] | t.CPtr: pass - -def meshgrid(x: ndarray[t.CDouble] | t.CPtr, y: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def det2x2(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def inv2x2(a: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def cross3(a: ndarray[t.CDouble] | t.CPtr, b: ndarray[t.CDouble] | t.CPtr) -> ndarray[t.CDouble] | t.CPtr: pass - -def np_interp(x: t.CDouble, xp: ndarray[t.CDouble] | t.CPtr, fp: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def prod(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def median(a: ndarray[t.CDouble] | t.CPtr) -> t.CDouble: pass - -def percentile(a: ndarray[t.CDouble] | t.CPtr, q: t.CDouble) -> t.CDouble: pass diff --git a/Test/TestProject/temp/c9f4be41ca1cc2b4.pyi b/Test/TestProject/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/TestProject/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject/temp/cfc83b830141b00e.pyi b/Test/TestProject/temp/cfc83b830141b00e.pyi deleted file mode 100644 index 5af877f..0000000 --- a/Test/TestProject/temp/cfc83b830141b00e.pyi +++ /dev/null @@ -1,27 +0,0 @@ -""" -Auto-generated Python stub file from zc.config.py -Module: zc.config -""" - - -import t, c - -POSMAX: t.CDefine = 100 -MAX_RETRY: t.CDefine = 5 -BUFFER_SIZE: t.CDefine = 256 -PI: t.CDefine = 3.14159 -EULER: t.CDefine = 2.71828 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -NULL: t.CDefine = 0 -MATH_OFFSET: t.CDefine = 10 -MATH_SCALE: t.CDefine = 2 -THRESHOLD: t.CDefine = 50 -LOOP_LIMIT: t.CDefine = 20 -SHIFT_AMOUNT: t.CDefine = 2 -MASK_VALUE: t.CDefine = 0xFF -BIT_RANGE: t.CDefine = 4 -EXPONENT_BASE: t.CDefine = 3 -MODULO_DIVISOR: t.CDefine = 7 -SCALE_SHIFT: t.CDefine = 4 -HALF_SCALE: t.CDefine = 0.5 \ No newline at end of file diff --git a/Test/TestProject/temp/e5fb16127bce8f68.pyi b/Test/TestProject/temp/e5fb16127bce8f68.pyi deleted file mode 100644 index 5677a22..0000000 --- a/Test/TestProject/temp/e5fb16127bce8f68.pyi +++ /dev/null @@ -1,66 +0,0 @@ -""" -Auto-generated Python stub file from zc.class_test.py -Module: zc.class_test -""" - - -import stdio -import stdint -import t, c - -class SimpleData(t.Object): - x: t.CInt - y: t.CInt -class Point3D(t.Object): - x: t.CFloat - y: t.CFloat - z: t.CFloat -class Student(t.Object): - name: t.CChar | t.CPtr - age: t.CInt - score: t.CInt - def __init__(self: Student, n: t.CChar | t.CPtr, a: t.CInt, s: t.CInt) -> t.CInt: pass - def get_age(self: Student) -> t.CInt: pass - def get_score(self: Student) -> t.CInt: pass -class Counter(t.Object): - value: t.CInt - def __init__(self: Counter, initial: t.CInt) -> t.CInt: pass - def increment(self: Counter) -> t.CInt: pass - def get_value(self: Counter) -> t.CInt: pass -class StackObj(t.Object): - data: t.CInt - next_ptr: t.CVoid | t.CPtr - -def TestBasicDataClass() -> t.CInt: pass - -def TestPoint3DClass() -> t.CInt: pass - -def TestStudentClass() -> t.CInt: pass - -def TestCounterClass() -> t.CInt: pass - -def TestStackAllocation() -> t.CInt: pass - -def TestHeapAllocation() -> t.CInt: pass - -def TestHeapObjectWithInit() -> t.CInt: pass - -def TestMultipleStackObjects() -> t.CInt: pass - -def TestImplicitInitCall() -> t.CInt: pass - -def TestClassWithBitFields() -> t.CInt: pass - -def TestIntArray() -> t.CInt: pass - -def TestFloatArray() -> t.CInt: pass - -def TestCharArray() -> t.CInt: pass - -def TestNestedArray() -> t.CInt: pass - -def TestArrayWithStruct() -> t.CInt: pass - -def TestArrayPointer() -> t.CInt: pass - -def TestDynamicString() -> t.CInt: pass diff --git a/Test/TestProject/temp/f5522571bcce7bcb.pyi b/Test/TestProject/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/TestProject/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/TestProject/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/TestProject/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/TestProject/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/TestProject/temp/f9d023d1df2bc9c5.vpi b/Test/TestProject/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/TestProject/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/TestProject/temp/faec3233d98371da.pyi b/Test/TestProject/temp/faec3233d98371da.pyi deleted file mode 100644 index 308f5cb..0000000 --- a/Test/TestProject/temp/faec3233d98371da.pyi +++ /dev/null @@ -1,54 +0,0 @@ -""" -Auto-generated Python stub file from zc.logic_test.py -Module: zc.logic_test -""" - - -import config -import t, c - -def ForRangeBasicTest(stop: t.CInt) -> t.CInt: pass - -def ForRangeWithStartStop(start: t.CInt, stop: t.CInt, step: t.CInt) -> t.CInt: pass - -def NestedForRangeTest(rows: t.CInt, cols: t.CInt) -> t.CInt: pass - -def ForWithIfBreakTest(data_size: t.CInt) -> t.CInt: pass - -def ForWithIfContinueTest(n: t.CInt) -> t.CInt: pass - -def ForWithElifBranchTest(value: t.CInt) -> t.CInt: pass - -def WhileWithIfElifElseTest(iterations: t.CInt) -> t.CInt: pass - -def WhileWithNestedIfTest(limit: t.CInt) -> t.CInt: pass - -def WhileWithMatchCaseTest(value: t.CInt) -> t.CInt: pass - -def WhileWithMatchCaseNoBreakTest(value: t.CInt) -> t.CInt: pass - -def ComplexForWhileMatchTest(outer_limit: t.CInt, inner_limit: t.CInt) -> t.CInt: pass - -def ForWithCaseAndNoBreakTest(n: t.CInt) -> t.CInt: pass - -def WhileWithBreakConditionTest(limit: t.CInt) -> t.CInt: pass - -def NestedWhileWithMultipleBreakPoints(depth: t.CInt, width: t.CInt) -> t.CInt: pass - -def ForWithMatchCaseInLoopTest(iterations: t.CInt) -> t.CInt: pass - -def ComplexLogicWithElifChains(a: t.CInt, b: t.CInt, c_val: t.CInt) -> t.CInt: pass - -def ForRangeWithStepAndCondition(n: t.CInt, step: t.CInt) -> t.CInt: pass - -def MatchCaseWithGuardConditions(value: t.CInt) -> t.CInt: pass - -def WhileWithMultipleMatchCases(iterations: t.CInt) -> t.CInt: pass - -def ForWhileMixWithBreakAndContinue(n: t.CInt) -> t.CInt: pass - -def ComplexCaseMatchingWithRanges(start: t.CInt, end: t.CInt) -> t.CInt: pass - -def WhileWithElifInElifChain(limit: t.CInt) -> t.CInt: pass - -def ForWithCaseNoBreakNested(inner_limit: t.CInt) -> t.CInt: pass diff --git a/Test/TestProject/temp/ffaf70367668b227.stub.ll.dep b/Test/TestProject/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/TestProject/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/TestProject/temp/ffaf70367668b227.vpi b/Test/TestProject/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/TestProject/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/TestProject2/output/0df65b8ed15664b0.deps.json b/Test/TestProject2/output/0df65b8ed15664b0.deps.json index eeb5cc4..c832d07 100644 --- a/Test/TestProject2/output/0df65b8ed15664b0.deps.json +++ b/Test/TestProject2/output/0df65b8ed15664b0.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/19f8024d10c828e8.deps.json b/Test/TestProject2/output/19f8024d10c828e8.deps.json index eeb5cc4..c832d07 100644 --- a/Test/TestProject2/output/19f8024d10c828e8.deps.json +++ b/Test/TestProject2/output/19f8024d10c828e8.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json b/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json deleted file mode 100644 index eeb5cc4..0000000 --- a/Test/TestProject2/output/1c46d554b3a3f9f3.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/1f6617c02fc8899d.deps.json b/Test/TestProject2/output/1f6617c02fc8899d.deps.json index 5ed0ec3..c832d07 100644 --- a/Test/TestProject2/output/1f6617c02fc8899d.deps.json +++ b/Test/TestProject2/output/1f6617c02fc8899d.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/213348433fb01cc6.deps.json b/Test/TestProject2/output/213348433fb01cc6.deps.json deleted file mode 100644 index eeb5cc4..0000000 --- a/Test/TestProject2/output/213348433fb01cc6.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/257e074b935c33b4.deps.json b/Test/TestProject2/output/257e074b935c33b4.deps.json deleted file mode 100644 index eeb5cc4..0000000 --- a/Test/TestProject2/output/257e074b935c33b4.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/3e775aa83705b119.deps.json b/Test/TestProject2/output/3e775aa83705b119.deps.json index 5ed0ec3..c832d07 100644 --- a/Test/TestProject2/output/3e775aa83705b119.deps.json +++ b/Test/TestProject2/output/3e775aa83705b119.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/451745df21e598af.deps.json b/Test/TestProject2/output/451745df21e598af.deps.json index eeb5cc4..c832d07 100644 --- a/Test/TestProject2/output/451745df21e598af.deps.json +++ b/Test/TestProject2/output/451745df21e598af.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/541a1ed9b8be53c8.deps.json b/Test/TestProject2/output/541a1ed9b8be53c8.deps.json index da4e910..9f309f8 100644 --- a/Test/TestProject2/output/541a1ed9b8be53c8.deps.json +++ b/Test/TestProject2/output/541a1ed9b8be53c8.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "96837bcc64032444", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/TestProject2/output/6ff26590374ae6fc.deps.json b/Test/TestProject2/output/6ff26590374ae6fc.deps.json index eeb5cc4..c832d07 100644 --- a/Test/TestProject2/output/6ff26590374ae6fc.deps.json +++ b/Test/TestProject2/output/6ff26590374ae6fc.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/8ebed83a7817fa0c.deps.json b/Test/TestProject2/output/8ebed83a7817fa0c.deps.json index eeb5cc4..c832d07 100644 --- a/Test/TestProject2/output/8ebed83a7817fa0c.deps.json +++ b/Test/TestProject2/output/8ebed83a7817fa0c.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/90921d009fdd674c.deps.json b/Test/TestProject2/output/90921d009fdd674c.deps.json index eeb5cc4..c832d07 100644 --- a/Test/TestProject2/output/90921d009fdd674c.deps.json +++ b/Test/TestProject2/output/90921d009fdd674c.deps.json @@ -1 +1 @@ -{"hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "testcheck": "14d33679f7fadf1f", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.pyzlib": "1c46d554b3a3f9f3", "pyzlib": "1c46d554b3a3f9f3", "zlib.zdef": "213348433fb01cc6", "zdef": "213348433fb01cc6", "binascii": "257e074b935c33b4", "atom": "271ea3decb810db2", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdio": "6f62fe05c5ea1ceb", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "stdlib": "90c53dd6db8d41cf", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "memhub": "d089e25a15c6f6e0", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "hashlib.__sha1": "0df65b8ed15664b0", "__sha1": "0df65b8ed15664b0", "hashlib.__md5": "19f8024d10c828e8", "__md5": "19f8024d10c828e8", "zlib.zdef": "1f6617c02fc8899d", "zdef": "1f6617c02fc8899d", "stdio": "285b6aa29a34754d", "zlib.pyzlib": "3e775aa83705b119", "pyzlib": "3e775aa83705b119", "zlib.zinflate": "451745df21e598af", "zinflate": "451745df21e598af", "main": "541a1ed9b8be53c8", "stdlib": "6c658cc728d0bbf4", "hashlib.__sha512": "6ff26590374ae6fc", "__sha512": "6ff26590374ae6fc", "testcheck": "748d0424e8976fa0", "zlib.zchecksum": "8ebed83a7817fa0c", "zchecksum": "8ebed83a7817fa0c", "zlib.zdeflate": "90921d009fdd674c", "zdeflate": "90921d009fdd674c", "string": "928c0ff6d8c69ec9", "hashlib.__init__": "96837bcc64032444", "__init__": "d63d2c2a2bd9bd2a", "hashlib": "96837bcc64032444", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "hashlib.__sha256": "c9d54a4158f7f5a8", "__sha256": "c9d54a4158f7f5a8", "viperio": "c9f4be41ca1cc2b4", "zc.config": "cfc83b830141b00e", "config": "cfc83b830141b00e", "binascii": "d3917d97537f703c", "zlib.zhuff": "d541ade6afb689a5", "zhuff": "d541ade6afb689a5", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5", "zlib.__init__": "d63d2c2a2bd9bd2a", "zlib": "d63d2c2a2bd9bd2a"} \ No newline at end of file diff --git a/Test/TestProject2/output/_shared_sym_includes.pickle b/Test/TestProject2/output/_shared_sym_includes.pickle index 179cd02dba3b0c5ee94ef65fc843dd44005ccab8..ab8437d9748a383c5d3a02b6a3264a719f054384 100644 GIT binary patch literal 787706 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

  • b^C+(XZ+*z*@#DLn*K&#R`6(LMZMwFwlOp; zXdvFzqh`6qPvWm~{IouVrN|;VOQ+iQisdYkk9|uia^6}gnyvER?28&6&8SboAS4Qm z(@}Gp3mS;uk`Jd%mct7nY;%s+_UCFi3qt94K+5sU%F8CBZf)Yf?Xv)nJ_}M4&xtQ+ z02V0Ea!aG2!8z09nQi`Ml@Uwe1?bOuKo*2Nb3j}%;u><^wyGv_9^p;Cn!uy4CQ{~6 zehL~;O=K-(PA%Ey)EKruS7TTZj@AWXB4~VT#wFI+zBRG=jz4ld`XkS|O$800)isPa z#C?8Euao!kEi!x>>oHnfXQ)Wn&S74lHS9|=zE5GJXA|4G97a2Yl zzl>jSdu>f_zRND@IpWcDDW0RzxT)Mw-4rx9+t6rVa;_~ly!7U}anzH`4cfUmQ^m{9 zjjS?5V=gu?XmGw&QK_G9At_`I!M>1fZYpHc^3%UZZqtI|(QsSxE?GZaF6UK0z2SuB zm}R@5NwZyG3JRE2&>*tR!VX0BOm~FJ2s7?&2tqMZZxQ8Cod24ZRTp@5=46 zR0iSMM}*sio!_Xxk1uh}yo3QJfjjDW|Noo6obYJ4{i{Y)i(ke^*OM#xbB@Pk&NDs@ zS6D%V);u|jgkoTOr6*_KQVyNB)|2y8imS-dkmLIt7()&`nt`d-w=d}eI4`Z+1i7+g zP+d4cO|!3`$6+l$(Ovdu8;^z@$(7D5(QOf)sA|U|JP8PAmFTv3xtc6qvAjkg{waxN zC=dk=l+pHOhDv$a-dNA(yeEt59Dl&)S;A89J40Be!LOh}l3}+#`-PS~99 zY?IGS+ik))7+q#v)#a;TKHTI(51B^?2akq%@N{i_sGV&X-GqXEcGle_UbINhR*A7l zzpU}1eVgeLZSGBU+`##B@rXTUNfxEt^YxOOj+c{A~&%M5B!fca3mm~A9< zt4}B%4WaOEpLY|H;Xdu-Lwzgny zvW`)eBZUU>@%Tm3v}@TL9RWO=-r%l?va)YkwcrfSVm4I^@rgpyN%&*DI`8T&xS!rD z5%LQao)Bd`qe6u^mz3H?>dAaO8tP|WreG0LVOoS@?`Gw_S-i9f7H^^=a^71(16Awx zWrj+5i5;-;cV-=QSQ@$!m*{qp%2P&1;L7yta6Yd0o&z zd2L^2sLb-(f|1v@)9LVf&RTeCnfjZ1eP-j)FgtNtTUNUkA%|fR&YIa4FPUxe7Bjn` zfil~^%utzSwgn@zZKu;=_Ppy*t{7nWZlB?JGz=HVWoB`pMaZF8gtKP2#Y=`;yu}PJ zXrK(YFEdnT8E(PIaNFs07=G*x*z=T2$K04~kI!v98g9>@F}E#3j>96HHMcEZa@*o9 z=5|2?<+gp9p)$*D3r23+PN%``I8D6L&;6m#X*~Lhq&45fV&ecTHequ(r&`beNm$QP zSul>+;+0(Or&0J&B~uuK;n6Uqap6PDD%bYHLI~T7Y!lAPm#}!xS5MdCmDFq4(=BN5 zRpaT}ml-PYGKobj2+K8WhX6TBiQH%0Dvk1}mS#XtM?GR0B}+S68R)Y+AM@u&{BJ{_ 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 literal 304089 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 J@0-P){}26KRJQ;C diff --git a/Test/DocTest/temp/b51eec200527c77a.doc.json b/Test/DocTest/temp/b51eec200527c77a.doc.json deleted file mode 100644 index 97ecb08..0000000 --- a/Test/DocTest/temp/b51eec200527c77a.doc.json +++ /dev/null @@ -1 +0,0 @@ -{"local_func": "Local function docstring.", "LocalClass": "Local class docstring.", "LocalClass.local_method": "Local method docstring.", "_check_doc_adaptive": "自适应检查 docstring:非空时验证匹配,空时视为优化剥离", "_check_doc_null": "检查 docstring 为 null(无 docstring 的符号)"} \ No newline at end of file diff --git a/Test/DocTest/temp/b51eec200527c77a.vpi b/Test/DocTest/temp/b51eec200527c77a.vpi deleted file mode 100644 index 5e035f8..0000000 --- a/Test/DocTest/temp/b51eec200527c77a.vpi +++ /dev/null @@ -1,32 +0,0 @@ -""" -Auto-generated Python stub file from main.vp -Module: main -""" - - -import t -import stdio -import string -import c -import testcheck -import remote - -def local_func() -> int: pass - -def no_doc_func() -> int: pass - - -@t.Object -class LocalClass: - value: t.CInt - def local_method(self: LocalClass) -> int: pass - -def _check_doc_adaptive(name: str, doc: str, expected: str) -> t.CInt: pass - -def _check_doc_null(name: str, doc: str) -> t.CInt: pass - -def test_local_doc() -> t.CInt: pass - -def test_cross_module_doc() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/DocTest/temp/ba12ed409d78139e.pyi b/Test/DocTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/DocTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/DocTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/DocTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DocTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DocTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/DocTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/DocTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/DocTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/DocTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/DocTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/DocTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/DocTest/temp/f26d7266c4f8762b.pyi b/Test/DocTest/temp/f26d7266c4f8762b.pyi deleted file mode 100644 index 845daee..0000000 --- a/Test/DocTest/temp/f26d7266c4f8762b.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from remote.py -Module: remote -""" - -import c - - -import t - -def remote_func() -> t.CInt: pass - - -@t.Object -class RemoteClass: - value: t.CInt - def remote_method(self: RemoteClass) -> t.CInt: pass - -def no_doc_func() -> t.CInt: pass diff --git a/Test/DocTest/temp/f5522571bcce7bcb.pyi b/Test/DocTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/DocTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/DocTest/temp/ffaf70367668b227.stub.ll.dep b/Test/DocTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DocTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DocTest/temp/ffaf70367668b227.vpi b/Test/DocTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/DocTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/EdgeCaseTest/output/ac0d686cb2cc783b.deps.json b/Test/EdgeCaseTest/output/ac0d686cb2cc783b.deps.json index 2a27f59..f9587e9 100644 --- a/Test/EdgeCaseTest/output/ac0d686cb2cc783b.deps.json +++ b/Test/EdgeCaseTest/output/ac0d686cb2cc783b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/EdgeCaseTest/temp/14d33679f7fadf1f.pyi b/Test/EdgeCaseTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/EdgeCaseTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/EdgeCaseTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/EdgeCaseTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/EdgeCaseTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.pyi b/Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/EdgeCaseTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/EdgeCaseTest/temp/7e529fe7a078cfef.pyi b/Test/EdgeCaseTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/EdgeCaseTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/EdgeCaseTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/EdgeCaseTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/EdgeCaseTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EdgeCaseTest/temp/_phase1_manifest.json b/Test/EdgeCaseTest/temp/_phase1_manifest.json index 1710cb8..52aac8d 100644 --- a/Test/EdgeCaseTest/temp/_phase1_manifest.json +++ b/Test/EdgeCaseTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\EdgeCaseTest\\App\\main.py": {"sha1": "ac0d686cb2cc783b", "mtime": 1782110086.5178304, "size": 7487}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\EdgeCaseTest\\App\\main.vp": {"sha1": "ac0d686cb2cc783b", "mtime": 1782110086.5178304, "size": 7487}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/EdgeCaseTest/temp/_sha1_map.txt b/Test/EdgeCaseTest/temp/_sha1_map.txt index 57a4084..af93a28 100644 --- a/Test/EdgeCaseTest/temp/_sha1_map.txt +++ b/Test/EdgeCaseTest/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -ac0d686cb2cc783b:main.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +ac0d686cb2cc783b:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/EdgeCaseTest/temp/ac0d686cb2cc783b.pyi b/Test/EdgeCaseTest/temp/ac0d686cb2cc783b.pyi deleted file mode 100644 index 7b2670f..0000000 --- a/Test/EdgeCaseTest/temp/ac0d686cb2cc783b.pyi +++ /dev/null @@ -1,73 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import t as tt -import stdio -import testcheck -from t import CEnum as en -from t import CUnion as un -from t import REnum as ren -from t import CStruct as cs -from t import CInt as myint -from t import CChar, CPtr - -class Color(en): - Red = 0 - Green = 1 - Blue = 2 -class Status(tt.CEnum): - Ok = 0 - Error = 1 -class Data(un): - i_val: t.CInt - f_val: t.CFloat -class Opt(ren): - class Some: - val: myint - None_ = 0 -class Parent: - a: t.CInt - def get_a(self: Parent) -> t.CInt: pass -class Child(Parent): - b: t.CInt - def get_sum(self: Child) -> t.CInt: pass -class Base: - x: t.CInt - def base_val(self: Base) -> t.CInt: pass -class Mid(Base): - y: t.CInt - def mid_val(self: Mid) -> t.CInt: pass -class Leaf(Mid): - z: t.CInt - def leaf_val(self: Leaf) -> t.CInt: pass - -val: t.CExtern | myint - -class NetHeader: - magic: t.CInt | t.BigEndian - length: t.CShort | t.BigEndian - normal: t.CInt -class TtPoint(tt.CStruct): - x: t.CInt - y: t.CInt -@tt.Object -class TtObject: - val: t.CInt - def get_val(self: TtObject) -> t.CInt: pass -class CsPoint(cs): - x: t.CInt - y: t.CInt -class TtUnion(tt.CUnion): - a: t.CInt - b: t.CFloat -@tt.Object -class TtEmptyObject: - val: t.CInt - -def main() -> t.CInt: pass diff --git a/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/EdgeCaseTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/EdgeCaseTest/temp/f5522571bcce7bcb.pyi b/Test/EdgeCaseTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/EdgeCaseTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/EqTest/output/78943d0dbc89a29a.deps.json b/Test/EqTest/output/78943d0dbc89a29a.deps.json index 9afbc2a..ff257cb 100644 --- a/Test/EqTest/output/78943d0dbc89a29a.deps.json +++ b/Test/EqTest/output/78943d0dbc89a29a.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/EqTest/temp/0035c95a18d4f8e8.pyi b/Test/EqTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/EqTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/EqTest/temp/067c78e9f121dce3.pyi b/Test/EqTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/EqTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/EqTest/temp/06f53cc594b4ac6c.pyi b/Test/EqTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/EqTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/EqTest/temp/14d33679f7fadf1f.pyi b/Test/EqTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/EqTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/EqTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/EqTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/EqTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EqTest/temp/6446627d4f07a1b5.pyi b/Test/EqTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/EqTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/EqTest/temp/6f62fe05c5ea1ceb.pyi b/Test/EqTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/EqTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/EqTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/EqTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/EqTest/temp/72e2d5ccb7cedcf1.pyi b/Test/EqTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/EqTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/EqTest/temp/78943d0dbc89a29a.pyi b/Test/EqTest/temp/78943d0dbc89a29a.pyi deleted file mode 100644 index ce1d065..0000000 --- a/Test/EqTest/temp/78943d0dbc89a29a.pyi +++ /dev/null @@ -1,16 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import stdio -import stdlib -import string -import testcheck - -def main() -> CInt | CExport: pass diff --git a/Test/EqTest/temp/7e529fe7a078cfef.pyi b/Test/EqTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/EqTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/EqTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/EqTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/EqTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EqTest/temp/90c53dd6db8d41cf.pyi b/Test/EqTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/EqTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/EqTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/EqTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/EqTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EqTest/temp/_phase1_manifest.json b/Test/EqTest/temp/_phase1_manifest.json index 4b602cd..86fa4d1 100644 --- a/Test/EqTest/temp/_phase1_manifest.json +++ b/Test/EqTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\EqTest\\App\\main.py": {"sha1": "78943d0dbc89a29a", "mtime": 1782354684.7481763, "size": 2169}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\EqTest\\App\\main.vp": {"sha1": "78943d0dbc89a29a", "mtime": 1782354684.7481763, "size": 2169}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/EqTest/temp/_sha1_map.txt b/Test/EqTest/temp/_sha1_map.txt index 9b84bef..75e9aca 100644 --- a/Test/EqTest/temp/_sha1_map.txt +++ b/Test/EqTest/temp/_sha1_map.txt @@ -1,8 +1,8 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -78943d0dbc89a29a:main.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +78943d0dbc89a29a:main.vp +928c0ff6d8c69ec9:includes/string.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/EqTest/temp/ba12ed409d78139e.pyi b/Test/EqTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/EqTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/EqTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/EqTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/EqTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EqTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/EqTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/EqTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/EqTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/EqTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/EqTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/EqTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/EqTest/temp/f5522571bcce7bcb.pyi b/Test/EqTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/EqTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/EqTest/temp/f6b51804a0ba8ff0.pyi b/Test/EqTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/EqTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/EqTest/temp/ffaf70367668b227.stub.ll.dep b/Test/EqTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/EqTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/EqTest/temp/ffaf70367668b227.vpi b/Test/EqTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/EqTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/Extern2Test/output/c7355810f354ba5c.deps.json b/Test/Extern2Test/output/c7355810f354ba5c.deps.json index 2a27f59..f9587e9 100644 --- a/Test/Extern2Test/output/c7355810f354ba5c.deps.json +++ b/Test/Extern2Test/output/c7355810f354ba5c.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/Extern2Test/temp/14d33679f7fadf1f.pyi b/Test/Extern2Test/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/Extern2Test/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/Extern2Test/temp/14d33679f7fadf1f.stub.ll.dep b/Test/Extern2Test/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/Extern2Test/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/Extern2Test/temp/6f62fe05c5ea1ceb.pyi b/Test/Extern2Test/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/Extern2Test/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/Extern2Test/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/Extern2Test/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/Extern2Test/temp/7e529fe7a078cfef.pyi b/Test/Extern2Test/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/Extern2Test/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/Extern2Test/temp/7e529fe7a078cfef.stub.ll.dep b/Test/Extern2Test/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/Extern2Test/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/Extern2Test/temp/_phase1_manifest.json b/Test/Extern2Test/temp/_phase1_manifest.json index 0f849f1..72f28f1 100644 --- a/Test/Extern2Test/temp/_phase1_manifest.json +++ b/Test/Extern2Test/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\Extern2Test\\App\\main.py": {"sha1": "c7355810f354ba5c", "mtime": 1784695815.0212865, "size": 1579}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\Extern2Test\\App\\main.vp": {"sha1": "c7355810f354ba5c", "mtime": 1784741370.3472095, "size": 1579}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/Extern2Test/temp/_sha1_map.txt b/Test/Extern2Test/temp/_sha1_map.txt index 8a046a8..d8c8fc7 100644 --- a/Test/Extern2Test/temp/_sha1_map.txt +++ b/Test/Extern2Test/temp/_sha1_map.txt @@ -1,6 +1,6 @@ -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c7355810f354ba5c:main.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c7355810f354ba5c:main.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.pyi b/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/Extern2Test/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/Extern2Test/temp/c7355810f354ba5c.pyi b/Test/Extern2Test/temp/c7355810f354ba5c.pyi deleted file mode 100644 index a66b9bd..0000000 --- a/Test/Extern2Test/temp/c7355810f354ba5c.pyi +++ /dev/null @@ -1,21 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -def ExternalDecl(x: t.CInt) -> t.CInt | t.CExtern | t.CExport: pass - -def StateDecl(x: t.CInt) -> t.CInt | t.State: pass - -def StateVoidDecl() -> t.State: pass - -def test_extern_decl() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/Extern2Test/temp/f5522571bcce7bcb.pyi b/Test/Extern2Test/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/Extern2Test/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/FakeDuckTest/output/48352329f97d0858.deps.json b/Test/FakeDuckTest/output/48352329f97d0858.deps.json index e13c74e..ce88263 100644 --- a/Test/FakeDuckTest/output/48352329f97d0858.deps.json +++ b/Test/FakeDuckTest/output/48352329f97d0858.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_withcontent": "5b2e220c5bae60c9", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "_fakeduck": "79b337e5ea8951e2", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_withcontent": "74cd54a2cba56957", "_list": "7cadfe07e983fd90", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "_fakeduck": "b311b47f33281389", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json b/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json deleted file mode 100644 index 716e1bd..0000000 --- a/Test/FakeDuckTest/output/5b2e220c5bae60c9.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "_fakeduck": "79b337e5ea8951e2", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/74cd54a2cba56957.deps.json b/Test/FakeDuckTest/output/74cd54a2cba56957.deps.json index d6f6304..bf4bdad 100644 --- a/Test/FakeDuckTest/output/74cd54a2cba56957.deps.json +++ b/Test/FakeDuckTest/output/74cd54a2cba56957.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "stdio": "285b6aa29a34754d", "main": "48352329f97d0858", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_withcontent": "74cd54a2cba56957", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "_fakeduck": "b311b47f33281389", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "stdio": "285b6aa29a34754d", "main": "48352329f97d0858", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_withcontent": "74cd54a2cba56957", "_list": "7cadfe07e983fd90", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "_fakeduck": "b311b47f33281389", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/79b337e5ea8951e2.deps.json b/Test/FakeDuckTest/output/79b337e5ea8951e2.deps.json deleted file mode 100644 index 716e1bd..0000000 --- a/Test/FakeDuckTest/output/79b337e5ea8951e2.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "main": "48352329f97d0858", "_withcontent": "5b2e220c5bae60c9", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "_fakeduck": "79b337e5ea8951e2", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/7cadfe07e983fd90.deps.json b/Test/FakeDuckTest/output/7cadfe07e983fd90.deps.json index d6f6304..bf4bdad 100644 --- a/Test/FakeDuckTest/output/7cadfe07e983fd90.deps.json +++ b/Test/FakeDuckTest/output/7cadfe07e983fd90.deps.json @@ -1 +1 @@ -{"w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "stdio": "285b6aa29a34754d", "main": "48352329f97d0858", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_withcontent": "74cd54a2cba56957", "_list": "7cadfe07e983fd90", "atom": "aa246c6e6aa30484", "_fakeduck": "b311b47f33281389", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "stdio": "285b6aa29a34754d", "main": "48352329f97d0858", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_withcontent": "74cd54a2cba56957", "_list": "7cadfe07e983fd90", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "_fakeduck": "b311b47f33281389", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/FakeDuckTest/output/_shared_sym_includes.pickle b/Test/FakeDuckTest/output/_shared_sym_includes.pickle index 191eaa7f446304849ab33aafc0102b0d9aa7d72f..8ac455e76217e56fd353f9858a62350b0a585997 100644 GIT binary patch literal 689382 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�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 t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/FakeDuckTest/temp/067c78e9f121dce3.pyi b/Test/FakeDuckTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/FakeDuckTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/FakeDuckTest/temp/067c78e9f121dce3.stub.ll.dep b/Test/FakeDuckTest/temp/067c78e9f121dce3.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/FakeDuckTest/temp/067c78e9f121dce3.stub.ll.dep +++ b/Test/FakeDuckTest/temp/067c78e9f121dce3.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/06f53cc594b4ac6c.pyi b/Test/FakeDuckTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/FakeDuckTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/FakeDuckTest/temp/14d33679f7fadf1f.pyi b/Test/FakeDuckTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/FakeDuckTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/FakeDuckTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/FakeDuckTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/FakeDuckTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/271ea3decb810db2.pyi b/Test/FakeDuckTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/FakeDuckTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/FakeDuckTest/temp/271ea3decb810db2.stub.ll.dep b/Test/FakeDuckTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/FakeDuckTest/temp/48352329f97d0858.pyi b/Test/FakeDuckTest/temp/48352329f97d0858.pyi deleted file mode 100644 index 06f88af..0000000 --- a/Test/FakeDuckTest/temp/48352329f97d0858.pyi +++ /dev/null @@ -1,19 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import _fakeduck -import stdio -import stdlib -import string -import memhub -import testcheck -import _withcontent - -def main() -> CInt | CExport: pass diff --git a/Test/FakeDuckTest/temp/5b2e220c5bae60c9.pyi b/Test/FakeDuckTest/temp/5b2e220c5bae60c9.pyi deleted file mode 100644 index 364be1a..0000000 --- a/Test/FakeDuckTest/temp/5b2e220c5bae60c9.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -Auto-generated Python stub file from _withcontent.py -Module: _withcontent -""" - - -import t, c -from stdint import * -from w32.win32process import TlsAlloc, TlsGetValue, TlsSetValue -import stdlib -import stdio -import string - -_MAX_PROVIDER_DEPTH: t.CDefine = 32 - -@t.Object -class _ProviderStack: - names: t.CArray[VOIDPTR, 32] - ptrs: t.CArray[VOIDPTR, 32] - top: UINT64 - -_tls_index: t.CExtern | ULONG - -@t.TLS -def _init_tls() -> t.CInt: pass - -def _get_stack() -> _ProviderStack | t.CPtr: pass - -def _push_provider(field_name: str, ptr: t.CPtr) -> t.CInt: pass - -def _pop_provider() -> t.CInt: pass - -def _find_provider(field_name: str) -> t.CPtr: pass diff --git a/Test/FakeDuckTest/temp/5b2e220c5bae60c9.stub.ll.dep b/Test/FakeDuckTest/temp/5b2e220c5bae60c9.stub.ll.dep deleted file mode 100644 index 245f193..0000000 --- a/Test/FakeDuckTest/temp/5b2e220c5bae60c9.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -067c78e9f121dce3|6f62fe05c5ea1ceb|7e529fe7a078cfef|90c53dd6db8d41cf|ba12ed409d78139e|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/6446627d4f07a1b5.pyi b/Test/FakeDuckTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/FakeDuckTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/FakeDuckTest/temp/668790e6c9efdbae.pyi b/Test/FakeDuckTest/temp/668790e6c9efdbae.pyi deleted file mode 100644 index fdcae1d..0000000 --- a/Test/FakeDuckTest/temp/668790e6c9efdbae.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from _list.py -Module: _list -""" - - -import t, c -import memhub -import string -from stdint import * - -class list[T]: - __data__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __pool__: memhub.MemManager | t.CPtr - __elem_size__: t.CSizeT - __iter_index__: t.CSizeT - def __new__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __init__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __len__(self: list) -> t.CSizeT: pass - def append(self: list, item: T) -> t.CInt: pass - def get(self: list, index: t.CSizeT) -> T: pass - def __getitem__(self: list, index: t.CSizeT) -> T: pass - def set(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def __setitem__(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def pop(self: list) -> T: pass - def clear(self: list) -> t.CInt: pass - def __iter__(self: list) -> list[T] | t.CPtr: pass - def __next__(self: list) -> T: pass \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/668790e6c9efdbae.stub.ll.dep b/Test/FakeDuckTest/temp/668790e6c9efdbae.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/FakeDuckTest/temp/668790e6c9efdbae.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.pyi b/Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/FakeDuckTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/FakeDuckTest/temp/72e2d5ccb7cedcf1.pyi b/Test/FakeDuckTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/FakeDuckTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/FakeDuckTest/temp/74cd54a2cba56957.stub.ll.dep b/Test/FakeDuckTest/temp/74cd54a2cba56957.stub.ll.dep index be256c2..e900fe3 100644 --- a/Test/FakeDuckTest/temp/74cd54a2cba56957.stub.ll.dep +++ b/Test/FakeDuckTest/temp/74cd54a2cba56957.stub.ll.dep @@ -1 +1 @@ -067c78e9f121dce3|285b6aa29a34754d|6c658cc728d0bbf4|f5522571bcce7bcb|fc980acec33d69a7|ffaf70367668b227 \ No newline at end of file +067c78e9f121dce3|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/79b337e5ea8951e2.pyi b/Test/FakeDuckTest/temp/79b337e5ea8951e2.pyi deleted file mode 100644 index aa71e73..0000000 --- a/Test/FakeDuckTest/temp/79b337e5ea8951e2.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -Auto-generated Python stub file from _fakeduck.py -Module: _fakeduck -""" - -import c - - -import t -import memhub -import string - -class _Type: - def type_id(self: _Type) -> int: pass -class _str: - __requires__: list[str] = ['__mbuddy__'] - __data__: str - __mbuddy__: memhub.MemBuddy | t.CPtr - def upper(self: _str) -> str: pass - def lower(self: _str) -> str: pass - def capitalize(self: _str) -> str: pass - def swapcase(self: _str) -> str: pass - def title(self: _str) -> str: pass - def casefold(self: _str) -> str: pass - def isupper(self: _str) -> bool: pass - def islower(self: _str) -> bool: pass - def isalpha(self: _str) -> bool: pass - def isdigit(self: _str) -> bool: pass - def isalnum(self: _str) -> bool: pass - def isspace(self: _str) -> bool: pass - def isascii(self: _str) -> bool: pass - def istitle(self: _str) -> bool: pass - def split(self: _str, delimiter: str) -> list[str]: pass \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/79b337e5ea8951e2.stub.ll.dep b/Test/FakeDuckTest/temp/79b337e5ea8951e2.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/FakeDuckTest/temp/79b337e5ea8951e2.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/7cadfe07e983fd90.stub.ll.dep b/Test/FakeDuckTest/temp/7cadfe07e983fd90.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/FakeDuckTest/temp/7cadfe07e983fd90.stub.ll.dep +++ b/Test/FakeDuckTest/temp/7cadfe07e983fd90.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/7e529fe7a078cfef.pyi b/Test/FakeDuckTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/FakeDuckTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/FakeDuckTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/FakeDuckTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/FakeDuckTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/90c53dd6db8d41cf.pyi b/Test/FakeDuckTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/FakeDuckTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/FakeDuckTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/FakeDuckTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/FakeDuckTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/_phase1_manifest.json b/Test/FakeDuckTest/temp/_phase1_manifest.json index cd7e4fb..6e31dd0 100644 --- a/Test/FakeDuckTest/temp/_phase1_manifest.json +++ b/Test/FakeDuckTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FakeDuckTest\\App\\main.py": {"sha1": "48352329f97d0858", "mtime": 1784566611.8459883, "size": 12227}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.py": {"sha1": "79b337e5ea8951e2", "mtime": 1784566611.8311827, "size": 9717}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_withcontent.py": {"sha1": "5b2e220c5bae60c9", "mtime": 1782475015.06193, "size": 2039}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.py": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FakeDuckTest\\App\\main.vp": {"sha1": "48352329f97d0858", "mtime": 1784566611.8459883, "size": 12227}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.vp": {"sha1": "b311b47f33281389", "mtime": 1785338645.5702267, "size": 9784}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_withcontent.vp": {"sha1": "74cd54a2cba56957", "mtime": 1785338441.9971497, "size": 2089}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32process.vp": {"sha1": "067c78e9f121dce3", "mtime": 1781200703.5409546, "size": 4802}} \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/_sha1_map.txt b/Test/FakeDuckTest/temp/_sha1_map.txt index 2b083a7..50cecd2 100644 --- a/Test/FakeDuckTest/temp/_sha1_map.txt +++ b/Test/FakeDuckTest/temp/_sha1_map.txt @@ -1,15 +1,15 @@ -067c78e9f121dce3:includes/w32\win32process.py -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -48352329f97d0858:main.py -5b2e220c5bae60c9:includes/_withcontent.py -668790e6c9efdbae:includes/_list.py -6f62fe05c5ea1ceb:includes/stdio.py -79b337e5ea8951e2:includes/_fakeduck.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +067c78e9f121dce3:includes/w32\win32process.vp +285b6aa29a34754d:includes/stdio.vp +48352329f97d0858:main.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +74cd54a2cba56957:includes/_withcontent.vp +7cadfe07e983fd90:includes/_list.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +b311b47f33281389:includes/_fakeduck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/FakeDuckTest/temp/b311b47f33281389.stub.ll.dep b/Test/FakeDuckTest/temp/b311b47f33281389.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/FakeDuckTest/temp/b311b47f33281389.stub.ll.dep +++ b/Test/FakeDuckTest/temp/b311b47f33281389.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/ba12ed409d78139e.pyi b/Test/FakeDuckTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/FakeDuckTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/FakeDuckTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/FakeDuckTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/FakeDuckTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/c9f4be41ca1cc2b4.pyi b/Test/FakeDuckTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/FakeDuckTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/d089e25a15c6f6e0.pyi b/Test/FakeDuckTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/FakeDuckTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/FakeDuckTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/FakeDuckTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/f5522571bcce7bcb.pyi b/Test/FakeDuckTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/FakeDuckTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/f6b51804a0ba8ff0.pyi b/Test/FakeDuckTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/FakeDuckTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/FakeDuckTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/FakeDuckTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/f9d023d1df2bc9c5.vpi b/Test/FakeDuckTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/FakeDuckTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/ffaf70367668b227.stub.ll.dep b/Test/FakeDuckTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/FakeDuckTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FakeDuckTest/temp/ffaf70367668b227.vpi b/Test/FakeDuckTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/FakeDuckTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json b/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json index 935ff0e..c99e875 100644 --- a/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json +++ b/Test/ForAndLoopTest/output/6deb1a24b47f47fc.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "_list": "668790e6c9efdbae", "stdio": "6f62fe05c5ea1ceb", "_fakeduck": "79b337e5ea8951e2", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "_list": "7cadfe07e983fd90", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "_fakeduck": "b311b47f33281389", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/14d33679f7fadf1f.pyi b/Test/ForAndLoopTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/ForAndLoopTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/ForAndLoopTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/ForAndLoopTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/ForAndLoopTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/271ea3decb810db2.pyi b/Test/ForAndLoopTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/ForAndLoopTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/ForAndLoopTest/temp/271ea3decb810db2.stub.ll.dep b/Test/ForAndLoopTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ForAndLoopTest/temp/668790e6c9efdbae.pyi b/Test/ForAndLoopTest/temp/668790e6c9efdbae.pyi deleted file mode 100644 index fdcae1d..0000000 --- a/Test/ForAndLoopTest/temp/668790e6c9efdbae.pyi +++ /dev/null @@ -1,30 +0,0 @@ -""" -Auto-generated Python stub file from _list.py -Module: _list -""" - - -import t, c -import memhub -import string -from stdint import * - -class list[T]: - __data__: t.CVoid | t.CPtr - __count__: t.CSizeT - __capacity__: t.CSizeT - __pool__: memhub.MemManager | t.CPtr - __elem_size__: t.CSizeT - __iter_index__: t.CSizeT - def __new__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __init__(self: list, pool: memhub.MemManager | t.CPtr, elem_size: t.CSizeT) -> t.CInt: pass - def __len__(self: list) -> t.CSizeT: pass - def append(self: list, item: T) -> t.CInt: pass - def get(self: list, index: t.CSizeT) -> T: pass - def __getitem__(self: list, index: t.CSizeT) -> T: pass - def set(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def __setitem__(self: list, index: t.CSizeT, value: T) -> t.CInt: pass - def pop(self: list) -> T: pass - def clear(self: list) -> t.CInt: pass - def __iter__(self: list) -> list[T] | t.CPtr: pass - def __next__(self: list) -> T: pass \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/668790e6c9efdbae.stub.ll.dep b/Test/ForAndLoopTest/temp/668790e6c9efdbae.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/ForAndLoopTest/temp/668790e6c9efdbae.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/6deb1a24b47f47fc.pyi b/Test/ForAndLoopTest/temp/6deb1a24b47f47fc.pyi deleted file mode 100644 index 1c16d75..0000000 --- a/Test/ForAndLoopTest/temp/6deb1a24b47f47fc.pyi +++ /dev/null @@ -1,36 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -import t -import c -import stdio -import stdlib -import string -import memhub -import testcheck -import _fakeduck - -def test_for_in_range() -> t.CInt: pass - -def test_for_in_str() -> t.CInt: pass - -def test_for_in_list() -> t.CInt: pass - -def test_zip_list_list() -> t.CInt: pass - -def test_zip_range_list() -> t.CInt: pass - -def test_zip_str_str() -> t.CInt: pass - -def test_zip_range_len_list() -> t.CInt: pass - -def test_enumerate_list() -> t.CInt: pass - -def test_enumerate_str() -> t.CInt: pass - -def test_enumerate_range() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.pyi b/Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/ForAndLoopTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/ForAndLoopTest/temp/79b337e5ea8951e2.pyi b/Test/ForAndLoopTest/temp/79b337e5ea8951e2.pyi deleted file mode 100644 index aa71e73..0000000 --- a/Test/ForAndLoopTest/temp/79b337e5ea8951e2.pyi +++ /dev/null @@ -1,33 +0,0 @@ -""" -Auto-generated Python stub file from _fakeduck.py -Module: _fakeduck -""" - -import c - - -import t -import memhub -import string - -class _Type: - def type_id(self: _Type) -> int: pass -class _str: - __requires__: list[str] = ['__mbuddy__'] - __data__: str - __mbuddy__: memhub.MemBuddy | t.CPtr - def upper(self: _str) -> str: pass - def lower(self: _str) -> str: pass - def capitalize(self: _str) -> str: pass - def swapcase(self: _str) -> str: pass - def title(self: _str) -> str: pass - def casefold(self: _str) -> str: pass - def isupper(self: _str) -> bool: pass - def islower(self: _str) -> bool: pass - def isalpha(self: _str) -> bool: pass - def isdigit(self: _str) -> bool: pass - def isalnum(self: _str) -> bool: pass - def isspace(self: _str) -> bool: pass - def isascii(self: _str) -> bool: pass - def istitle(self: _str) -> bool: pass - def split(self: _str, delimiter: str) -> list[str]: pass \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/79b337e5ea8951e2.stub.ll.dep b/Test/ForAndLoopTest/temp/79b337e5ea8951e2.stub.ll.dep deleted file mode 100644 index 14899d3..0000000 --- a/Test/ForAndLoopTest/temp/79b337e5ea8951e2.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/7cadfe07e983fd90.stub.ll.dep b/Test/ForAndLoopTest/temp/7cadfe07e983fd90.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/ForAndLoopTest/temp/7cadfe07e983fd90.stub.ll.dep +++ b/Test/ForAndLoopTest/temp/7cadfe07e983fd90.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/7e529fe7a078cfef.pyi b/Test/ForAndLoopTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/ForAndLoopTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/ForAndLoopTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/ForAndLoopTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ForAndLoopTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/90c53dd6db8d41cf.pyi b/Test/ForAndLoopTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/ForAndLoopTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/ForAndLoopTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/ForAndLoopTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ForAndLoopTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/_phase1_manifest.json b/Test/ForAndLoopTest/temp/_phase1_manifest.json index afdba8b..8327acb 100644 --- a/Test/ForAndLoopTest/temp/_phase1_manifest.json +++ b/Test/ForAndLoopTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ForAndLoopTest\\App\\main.py": {"sha1": "6deb1a24b47f47fc", "mtime": 1782827984.6760156, "size": 4951}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.py": {"sha1": "79b337e5ea8951e2", "mtime": 1784566611.8311827, "size": 9717}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.py": {"sha1": "668790e6c9efdbae", "mtime": 1784566611.8525434, "size": 3219}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\ForAndLoopTest\\App\\main.vp": {"sha1": "6deb1a24b47f47fc", "mtime": 1782827984.6760156, "size": 4951}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_fakeduck.vp": {"sha1": "b311b47f33281389", "mtime": 1785338645.5702267, "size": 9784}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_list.vp": {"sha1": "7cadfe07e983fd90", "mtime": 1785338614.5410473, "size": 3238}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/_sha1_map.txt b/Test/ForAndLoopTest/temp/_sha1_map.txt index 4c8b00b..3bdbe84 100644 --- a/Test/ForAndLoopTest/temp/_sha1_map.txt +++ b/Test/ForAndLoopTest/temp/_sha1_map.txt @@ -1,13 +1,13 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -668790e6c9efdbae:includes/_list.py -6deb1a24b47f47fc:main.py -6f62fe05c5ea1ceb:includes/stdio.py -79b337e5ea8951e2:includes/_fakeduck.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +6deb1a24b47f47fc:main.vp +748d0424e8976fa0:includes/testcheck.vp +7cadfe07e983fd90:includes/_list.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +b311b47f33281389:includes/_fakeduck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/ForAndLoopTest/temp/b311b47f33281389.stub.ll.dep b/Test/ForAndLoopTest/temp/b311b47f33281389.stub.ll.dep index b2d63e3..7df8e8d 100644 --- a/Test/ForAndLoopTest/temp/b311b47f33281389.stub.ll.dep +++ b/Test/ForAndLoopTest/temp/b311b47f33281389.stub.ll.dep @@ -1 +1 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/ba12ed409d78139e.pyi b/Test/ForAndLoopTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/ForAndLoopTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/ForAndLoopTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ForAndLoopTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/ForAndLoopTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/c9f4be41ca1cc2b4.pyi b/Test/ForAndLoopTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/ForAndLoopTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/d089e25a15c6f6e0.pyi b/Test/ForAndLoopTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/ForAndLoopTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/ForAndLoopTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/ForAndLoopTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/f5522571bcce7bcb.pyi b/Test/ForAndLoopTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/ForAndLoopTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.vpi b/Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/ForAndLoopTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/ffaf70367668b227.stub.ll.dep b/Test/ForAndLoopTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/ForAndLoopTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/ForAndLoopTest/temp/ffaf70367668b227.vpi b/Test/ForAndLoopTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/ForAndLoopTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/FormatStringTest/output/cdff0d7b58fc935b.deps.json b/Test/FormatStringTest/output/cdff0d7b58fc935b.deps.json index 4ad59df..da7eb97 100644 --- a/Test/FormatStringTest/output/cdff0d7b58fc935b.deps.json +++ b/Test/FormatStringTest/output/cdff0d7b58fc935b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "ctraits": "42ced27d9e76aef5", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "ctraits": "592b4454182cebe5", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/FormatStringTest/temp/14d33679f7fadf1f.pyi b/Test/FormatStringTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/FormatStringTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/FormatStringTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/FormatStringTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/FormatStringTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FormatStringTest/temp/42ced27d9e76aef5.pyi b/Test/FormatStringTest/temp/42ced27d9e76aef5.pyi deleted file mode 100644 index f1d44b9..0000000 --- a/Test/FormatStringTest/temp/42ced27d9e76aef5.pyi +++ /dev/null @@ -1,11 +0,0 @@ -""" -Auto-generated Python stub file from ctraits.py -Module: ctraits -""" - -import c - - -import t - -def isptr(x: t.CType) -> bool: pass diff --git a/Test/FormatStringTest/temp/42ced27d9e76aef5.stub.ll.dep b/Test/FormatStringTest/temp/42ced27d9e76aef5.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/FormatStringTest/temp/6f62fe05c5ea1ceb.pyi b/Test/FormatStringTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/FormatStringTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/FormatStringTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/FormatStringTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/FormatStringTest/temp/7e529fe7a078cfef.pyi b/Test/FormatStringTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/FormatStringTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/FormatStringTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/FormatStringTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/FormatStringTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FormatStringTest/temp/_phase1_manifest.json b/Test/FormatStringTest/temp/_phase1_manifest.json index e6ce78d..f5bc8dc 100644 --- a/Test/FormatStringTest/temp/_phase1_manifest.json +++ b/Test/FormatStringTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FormatStringTest\\App\\main.py": {"sha1": "cdff0d7b58fc935b", "mtime": 1782266179.3674748, "size": 1498}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ctraits.pyi": {"sha1": "42ced27d9e76aef5", "mtime": 1782216490.489452, "size": 572}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FormatStringTest\\App\\main.vp": {"sha1": "cdff0d7b58fc935b", "mtime": 1782266179.3674748, "size": 1498}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\ctraits.vpi": {"sha1": "592b4454182cebe5", "mtime": 1785337568.582894, "size": 683}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/FormatStringTest/temp/_sha1_map.txt b/Test/FormatStringTest/temp/_sha1_map.txt index e2df7c4..30f62be 100644 --- a/Test/FormatStringTest/temp/_sha1_map.txt +++ b/Test/FormatStringTest/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -14d33679f7fadf1f:includes/testcheck.py -42ced27d9e76aef5:includes/ctraits.pyi -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -cdff0d7b58fc935b:main.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +592b4454182cebe5:includes/ctraits.vpi +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +cdff0d7b58fc935b:main.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/FormatStringTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/FormatStringTest/temp/cdff0d7b58fc935b.pyi b/Test/FormatStringTest/temp/cdff0d7b58fc935b.pyi deleted file mode 100644 index 0fb8976..0000000 --- a/Test/FormatStringTest/temp/cdff0d7b58fc935b.pyi +++ /dev/null @@ -1,14 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import t, c -import ctraits -import stdio -import testcheck - -@t.CExport -def main() -> int: pass diff --git a/Test/FormatStringTest/temp/f5522571bcce7bcb.pyi b/Test/FormatStringTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/FormatStringTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/FuncTest/output/067f811511854c88.deps.json b/Test/FuncTest/output/067f811511854c88.deps.json index a37be66..d28f8f4 100644 --- a/Test/FuncTest/output/067f811511854c88.deps.json +++ b/Test/FuncTest/output/067f811511854c88.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "testcheck": "748d0424e8976fa0", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/FuncTest/temp/0035c95a18d4f8e8.pyi b/Test/FuncTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/FuncTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/FuncTest/temp/067c78e9f121dce3.pyi b/Test/FuncTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/FuncTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/FuncTest/temp/067f811511854c88.pyi b/Test/FuncTest/temp/067f811511854c88.pyi deleted file mode 100644 index cef2575..0000000 --- a/Test/FuncTest/temp/067f811511854c88.pyi +++ /dev/null @@ -1,48 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck - -def add(a: t.CInt, b: t.CInt) -> t.CInt: pass - -def sub(a: t.CInt, b: t.CInt) -> t.CInt: pass - -def multi_args(a: t.CInt, b: t.CInt, c: t.CInt, d: t.CInt) -> t.CInt: pass - -def factorial(n: t.CInt) -> t.CInt: pass - -def fib(n: t.CInt) -> t.CInt: pass - -def add_via_ptr(p: t.CInt | t.CPtr, val: t.CInt) -> t.CInt: pass - -def make_u64() -> t.CUInt64T: pass - -def is_even(n: t.CInt) -> t.CBool: pass - -def test_basic_call() -> t.CInt: pass - -def test_multi_args() -> t.CInt: pass - -def test_recursion() -> t.CInt: pass - -def test_fibonacci() -> t.CInt: pass - -def test_ptr_param() -> t.CInt: pass - -def test_u64_return() -> t.CInt: pass - -def test_bool_return() -> t.CInt: pass - -def test_nested_call() -> t.CInt: pass - - -import w32.win32memory - -def main() -> t.CInt: pass diff --git a/Test/FuncTest/temp/06f53cc594b4ac6c.pyi b/Test/FuncTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/FuncTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/FuncTest/temp/14d33679f7fadf1f.pyi b/Test/FuncTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/FuncTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/FuncTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/FuncTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/FuncTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FuncTest/temp/6446627d4f07a1b5.pyi b/Test/FuncTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/FuncTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/FuncTest/temp/6f62fe05c5ea1ceb.pyi b/Test/FuncTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/FuncTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/FuncTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/FuncTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/FuncTest/temp/72e2d5ccb7cedcf1.pyi b/Test/FuncTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/FuncTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/FuncTest/temp/72e2d5ccb7cedcf1.stub.ll.dep b/Test/FuncTest/temp/72e2d5ccb7cedcf1.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/FuncTest/temp/72e2d5ccb7cedcf1.stub.ll.dep +++ b/Test/FuncTest/temp/72e2d5ccb7cedcf1.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/FuncTest/temp/7e529fe7a078cfef.pyi b/Test/FuncTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/FuncTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/FuncTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/FuncTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/FuncTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/FuncTest/temp/_phase1_manifest.json b/Test/FuncTest/temp/_phase1_manifest.json index 2a8c406..112a092 100644 --- a/Test/FuncTest/temp/_phase1_manifest.json +++ b/Test/FuncTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FuncTest\\App\\main.py": {"sha1": "067f811511854c88", "mtime": 1784566611.842932, "size": 3098}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.py": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\FuncTest\\App\\main.vp": {"sha1": "067f811511854c88", "mtime": 1784566611.842932, "size": 3098}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32memory.vp": {"sha1": "72e2d5ccb7cedcf1", "mtime": 1781200703.5389092, "size": 3142}} \ No newline at end of file diff --git a/Test/FuncTest/temp/_sha1_map.txt b/Test/FuncTest/temp/_sha1_map.txt index 92bd903..1f6899f 100644 --- a/Test/FuncTest/temp/_sha1_map.txt +++ b/Test/FuncTest/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -067f811511854c88:main.py -14d33679f7fadf1f:includes/testcheck.py -6f62fe05c5ea1ceb:includes/stdio.py -72e2d5ccb7cedcf1:includes/w32\win32memory.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +067f811511854c88:main.vp +285b6aa29a34754d:includes/stdio.vp +72e2d5ccb7cedcf1:includes/w32\win32memory.vp +748d0424e8976fa0:includes/testcheck.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/FuncTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/FuncTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/FuncTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/FuncTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/FuncTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/FuncTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/FuncTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/FuncTest/temp/f5522571bcce7bcb.pyi b/Test/FuncTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/FuncTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/FuncTest/temp/f6b51804a0ba8ff0.pyi b/Test/FuncTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/FuncTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/G3/output/750067fc4b20699b.deps.json b/Test/G3/output/750067fc4b20699b.deps.json index f7ae12d..9163f15 100644 --- a/Test/G3/output/750067fc4b20699b.deps.json +++ b/Test/G3/output/750067fc4b20699b.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "linkedlist": "a5e9a83e9db303ad", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G3/temp/14d33679f7fadf1f.pyi b/Test/G3/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/G3/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/G3/temp/14d33679f7fadf1f.stub.ll.dep b/Test/G3/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/G3/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G3/temp/2d39c6c7d3557b3e.pyi b/Test/G3/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/Test/G3/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/G3/temp/2d39c6c7d3557b3e.stub.ll.dep b/Test/G3/temp/2d39c6c7d3557b3e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G3/temp/2d39c6c7d3557b3e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G3/temp/6f62fe05c5ea1ceb.pyi b/Test/G3/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/G3/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/G3/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/G3/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G3/temp/750067fc4b20699b.pyi b/Test/G3/temp/750067fc4b20699b.pyi deleted file mode 100644 index b2823f7..0000000 --- a/Test/G3/temp/750067fc4b20699b.pyi +++ /dev/null @@ -1,25 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck -from linkedlist import GSListNode - -@t.NoVTable -class Node(GSListNode[Node]): - value: t.CInt - def __init__(self: Node) -> t.CInt: pass - -def test_node_create() -> t.CInt: pass - -def test_node_next_field() -> t.CInt: pass - -def test_node_chain() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/G3/temp/7e529fe7a078cfef.pyi b/Test/G3/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/G3/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/G3/temp/7e529fe7a078cfef.stub.ll.dep b/Test/G3/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G3/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G3/temp/_phase1_manifest.json b/Test/G3/temp/_phase1_manifest.json index c88f211..235f72b 100644 --- a/Test/G3/temp/_phase1_manifest.json +++ b/Test/G3/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G3\\App\\main.py": {"sha1": "750067fc4b20699b", "mtime": 1784652963.6634154, "size": 1634}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G3\\App\\main.vp": {"sha1": "750067fc4b20699b", "mtime": 1784741370.3716145, "size": 1634}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/G3/temp/_sha1_map.txt b/Test/G3/temp/_sha1_map.txt index 7124f0d..2dc544e 100644 --- a/Test/G3/temp/_sha1_map.txt +++ b/Test/G3/temp/_sha1_map.txt @@ -1,7 +1,7 @@ -14d33679f7fadf1f:includes/testcheck.py -2d39c6c7d3557b3e:includes/linkedlist.py -6f62fe05c5ea1ceb:includes/stdio.py -750067fc4b20699b:main.py -7e529fe7a078cfef:includes/w32\win32base.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -f5522571bcce7bcb:includes/stdint.py +285b6aa29a34754d:includes/stdio.vp +748d0424e8976fa0:includes/testcheck.vp +750067fc4b20699b:main.vp +a5e9a83e9db303ad:includes/linkedlist.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/G3/temp/bbdf3bbd4c3bc28c.pyi b/Test/G3/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/G3/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/G3/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/G3/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/G3/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/G3/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/G3/temp/f5522571bcce7bcb.pyi b/Test/G3/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/G3/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/G4/output/8569e2ead0d06bb4.deps.json b/Test/G4/output/8569e2ead0d06bb4.deps.json index 96879a8..61598b6 100644 --- a/Test/G4/output/8569e2ead0d06bb4.deps.json +++ b/Test/G4/output/8569e2ead0d06bb4.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "caller2": "88875f3ba3ace594", "stdlib": "90c53dd6db8d41cf", "caller1": "a45655b992cc8767", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "caller2": "88875f3ba3ace594", "string": "928c0ff6d8c69ec9", "caller1": "a45655b992cc8767", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G4/output/88875f3ba3ace594.deps.json b/Test/G4/output/88875f3ba3ace594.deps.json index 35d815b..1cee888 100644 --- a/Test/G4/output/88875f3ba3ace594.deps.json +++ b/Test/G4/output/88875f3ba3ace594.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8569e2ead0d06bb4", "stdlib": "90c53dd6db8d41cf", "caller1": "a45655b992cc8767", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "main": "8569e2ead0d06bb4", "string": "928c0ff6d8c69ec9", "caller1": "a45655b992cc8767", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G4/output/a45655b992cc8767.deps.json b/Test/G4/output/a45655b992cc8767.deps.json index 9c94a21..fda2c9d 100644 --- a/Test/G4/output/a45655b992cc8767.deps.json +++ b/Test/G4/output/a45655b992cc8767.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8569e2ead0d06bb4", "caller2": "88875f3ba3ace594", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "main": "8569e2ead0d06bb4", "caller2": "88875f3ba3ace594", "string": "928c0ff6d8c69ec9", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "caller3": "ca0f8dd74e6cb63c", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G4/output/ca0f8dd74e6cb63c.deps.json b/Test/G4/output/ca0f8dd74e6cb63c.deps.json index 626783d..899b44b 100644 --- a/Test/G4/output/ca0f8dd74e6cb63c.deps.json +++ b/Test/G4/output/ca0f8dd74e6cb63c.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "atom": "271ea3decb810db2", "linkedlist": "2d39c6c7d3557b3e", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "main": "8569e2ead0d06bb4", "caller2": "88875f3ba3ace594", "stdlib": "90c53dd6db8d41cf", "caller1": "a45655b992cc8767", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "testcheck": "748d0424e8976fa0", "main": "8569e2ead0d06bb4", "caller2": "88875f3ba3ace594", "string": "928c0ff6d8c69ec9", "caller1": "a45655b992cc8767", "linkedlist": "a5e9a83e9db303ad", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "g4node": "dbd53aaa91309ba1", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/G4/temp/14d33679f7fadf1f.pyi b/Test/G4/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/G4/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/G4/temp/14d33679f7fadf1f.stub.ll.dep b/Test/G4/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/G4/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/271ea3decb810db2.pyi b/Test/G4/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/G4/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/G4/temp/271ea3decb810db2.stub.ll.dep b/Test/G4/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G4/temp/2d39c6c7d3557b3e.pyi b/Test/G4/temp/2d39c6c7d3557b3e.pyi deleted file mode 100644 index fc259bd..0000000 --- a/Test/G4/temp/2d39c6c7d3557b3e.pyi +++ /dev/null @@ -1,63 +0,0 @@ -""" -Auto-generated Python stub file from linkedlist.py -Module: linkedlist -""" - - -import t, c -from stdint import * - -@t.NoVTable -class LinkedNode: - next: 'LinkedNode' | t.CPtr - prev: 'LinkedNode' | t.CPtr - child: 'LinkedNode' | t.CPtr - last_child: 'LinkedNode' | t.CPtr - parent: 'LinkedNode' | t.CPtr - child_count: t.CSizeT - def append(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def prepend(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_before(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def insert_after(self: LinkedNode, node: 'LinkedNode' | t.CPtr, new_node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def remove_child(self: LinkedNode, node: 'LinkedNode' | t.CPtr) -> t.CInt: pass - def detach(self: LinkedNode) -> t.CInt: pass - def unlink(self: LinkedNode) -> t.CInt: pass - def has_children(self: LinkedNode) -> t.CInt: pass - def child_at(self: LinkedNode, index: t.CSizeT) -> 'LinkedNode' | t.CPtr: pass - def count_children(self: LinkedNode) -> t.CSizeT: pass - def first_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass - def last_sibling(self: LinkedNode) -> 'LinkedNode' | t.CPtr: pass -@t.NoVTable -class SListNode: - Next: 'SListNode' | t.CPtr - def append(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def append_after(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass - def count(self: SListNode) -> t.CSizeT: pass - def at(self: SListNode, index: t.CSizeT) -> 'SListNode' | t.CPtr: pass - def remove(self: SListNode, node: 'SListNode' | t.CPtr) -> 'SListNode' | t.CPtr: pass -@t.NoVTable -class GSListNode[T]: - Next: T | t.CPtr -@t.NoVTable -class GSList[T]: - Head: T | t.CPtr - Tail: T | t.CPtr - Count: t.CSizeT - def __init__(self: GSList) -> t.CInt: pass - def append(self: GSList, node: T) -> t.CInt: pass - def count(self: GSList) -> t.CSizeT: pass - def at(self: GSList, index: t.CSizeT) -> T | t.CPtr: pass -@t.NoVTable -class GTreeNode[T]: - Next: T | t.CPtr - Prev: T | t.CPtr - Child: T | t.CPtr - LastChild: T | t.CPtr - Parent: T | t.CPtr - Count: t.CSizeT - def append(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def prepend(self: GTreeNode, node: T | t.CPtr) -> t.CInt: pass - def detach(self: GTreeNode) -> t.CInt: pass - def has_children(self: GTreeNode) -> t.CInt: pass - def child_at(self: GTreeNode, index: t.CSizeT) -> T | t.CPtr: pass - def count_children(self: GTreeNode) -> t.CSizeT: pass \ No newline at end of file diff --git a/Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep b/Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G4/temp/2d39c6c7d3557b3e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/6f62fe05c5ea1ceb.pyi b/Test/G4/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/G4/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/G4/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/G4/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/G4/temp/7e529fe7a078cfef.pyi b/Test/G4/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/G4/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/G4/temp/7e529fe7a078cfef.stub.ll.dep b/Test/G4/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G4/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/8569e2ead0d06bb4.pyi b/Test/G4/temp/8569e2ead0d06bb4.pyi deleted file mode 100644 index dd57b2f..0000000 --- a/Test/G4/temp/8569e2ead0d06bb4.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - -import c - - -import t -import stdio -import testcheck -import stdlib -from g4node import G4Node, new_g4node, g4node_get_next, g4node_set_next -import memhub -import caller1 -import caller2 -import caller3 - -def test_g4node_create() -> t.CInt: pass - -def test_g4node_next_field() -> t.CInt: pass - -def test_g4node_chain() -> t.CInt: pass - -def test_caller1_direct_access() -> t.CInt: pass - -def test_caller2_reverse() -> t.CInt: pass - -def test_caller3_append() -> t.CInt: pass - -def main() -> t.CInt: pass diff --git a/Test/G4/temp/88875f3ba3ace594.pyi b/Test/G4/temp/88875f3ba3ace594.pyi deleted file mode 100644 index 121796b..0000000 --- a/Test/G4/temp/88875f3ba3ace594.pyi +++ /dev/null @@ -1,17 +0,0 @@ -""" -Auto-generated Python stub file from caller2.py -Module: caller2 -""" - -import c - - -import t -import stdio -import stdlib -import memhub -from g4node import G4Node, new_g4node - -def caller2_reverse_chain(head: G4Node | t.CPtr) -> G4Node | t.CPtr: pass - -def caller2_count_nodes(head: G4Node | t.CPtr) -> t.CInt: pass diff --git a/Test/G4/temp/90c53dd6db8d41cf.pyi b/Test/G4/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/G4/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/G4/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/G4/temp/_phase1_manifest.json b/Test/G4/temp/_phase1_manifest.json index 448738e..09c7ef1 100644 --- a/Test/G4/temp/_phase1_manifest.json +++ b/Test/G4/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller1.py": {"sha1": "a45655b992cc8767", "mtime": 1784693010.6757178, "size": 1316}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller2.py": {"sha1": "88875f3ba3ace594", "mtime": 1784693014.0848165, "size": 943}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller3.py": {"sha1": "ca0f8dd74e6cb63c", "mtime": 1784693017.2667432, "size": 862}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\main.py": {"sha1": "8569e2ead0d06bb4", "mtime": 1784693040.9163246, "size": 5581}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\includes\\g4node.py": {"sha1": "dbd53aaa91309ba1", "mtime": 1784693000.4732063, "size": 1577}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.py": {"sha1": "2d39c6c7d3557b3e", "mtime": 1782895405.2191627, "size": 16032}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller1.vp": {"sha1": "a45655b992cc8767", "mtime": 1784741370.3700821, "size": 1316}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller2.vp": {"sha1": "88875f3ba3ace594", "mtime": 1784741370.3625746, "size": 943}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\caller3.vp": {"sha1": "ca0f8dd74e6cb63c", "mtime": 1784741370.3784814, "size": 862}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\App\\main.vp": {"sha1": "8569e2ead0d06bb4", "mtime": 1784741370.3731737, "size": 5581}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\G4\\includes\\g4node.vp": {"sha1": "dbd53aaa91309ba1", "mtime": 1784741370.3356705, "size": 1577}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\linkedlist.vp": {"sha1": "a5e9a83e9db303ad", "mtime": 1785337078.812168, "size": 17137}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/G4/temp/_sha1_map.txt b/Test/G4/temp/_sha1_map.txt index 4347745..aa96df3 100644 --- a/Test/G4/temp/_sha1_map.txt +++ b/Test/G4/temp/_sha1_map.txt @@ -1,16 +1,16 @@ -14d33679f7fadf1f:includes/testcheck.py -271ea3decb810db2:includes/atom.py -2d39c6c7d3557b3e:includes/linkedlist.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -8569e2ead0d06bb4:main.py -88875f3ba3ace594:caller2.py -90c53dd6db8d41cf:includes/stdlib.py -a45655b992cc8767:caller1.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -ca0f8dd74e6cb63c:caller3.py -d089e25a15c6f6e0:includes/memhub.py -dbd53aaa91309ba1:includes/g4node.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +748d0424e8976fa0:includes/testcheck.vp +8569e2ead0d06bb4:main.vp +88875f3ba3ace594:caller2.vp +928c0ff6d8c69ec9:includes/string.vp +a45655b992cc8767:caller1.vp +a5e9a83e9db303ad:includes/linkedlist.vp +aa246c6e6aa30484:includes/atom.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +ca0f8dd74e6cb63c:caller3.vp +dbd53aaa91309ba1:includes/g4node.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/G4/temp/_shared_sym.json b/Test/G4/temp/_shared_sym.json index c142489e188ad4ebf22d447f0cda084559ac977c..f3aed4a4c3bb3c211140136f8f67997f6ee0d3ae 100644 GIT binary patch literal 411787 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

    T4QKiHOKk6th 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 EKU5`KX8-^I diff --git a/Test/DictTest/output/b3c2b99b6f3be4c7.deps.json b/Test/DictTest/output/b3c2b99b6f3be4c7.deps.json index d9083ec..9ff7454 100644 --- a/Test/DictTest/output/b3c2b99b6f3be4c7.deps.json +++ b/Test/DictTest/output/b3c2b99b6f3be4c7.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/DictTest/output/e0f0afe3caa1e486.deps.json b/Test/DictTest/output/e0f0afe3caa1e486.deps.json index 78c2003..74a5ecd 100644 --- a/Test/DictTest/output/e0f0afe3caa1e486.deps.json +++ b/Test/DictTest/output/e0f0afe3caa1e486.deps.json @@ -1 +1 @@ -{"json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "memhub": "f9d023d1df2bc9c5", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file +{"memhub": "04e5fe47ff2af528", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "stdio": "285b6aa29a34754d", "stdlib": "6c658cc728d0bbf4", "json.__init__": "6ddf430432a0e373", "__init__": "6ddf430432a0e373", "json": "6ddf430432a0e373", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "atom": "aa246c6e6aa30484", "main": "b3c2b99b6f3be4c7", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "_dict": "e0f0afe3caa1e486", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "d137b1f3311f3a7f", "fileio": "d137b1f3311f3a7f", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/output/e3e7b6de8d7d8b03.deps.json b/Test/DictTest/output/e3e7b6de8d7d8b03.deps.json deleted file mode 100644 index f5d02ff..0000000 --- a/Test/DictTest/output/e3e7b6de8d7d8b03.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"testcheck": "14d33679f7fadf1f", "json.__writer": "20cd49775c100a38", "__writer": "20cd49775c100a38", "json.__parser": "240a9a4157959a9f", "__parser": "240a9a4157959a9f", "atom": "271ea3decb810db2", "json.__init__": "57288496f7c2d1ad", "__init__": "57288496f7c2d1ad", "json": "57288496f7c2d1ad", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "stdlib": "90c53dd6db8d41cf", "main": "b3c2b99b6f3be4c7", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "viperio": "c9f4be41ca1cc2b4", "memhub": "d089e25a15c6f6e0", "_dict": "e3e7b6de8d7d8b03", "stdint": "f5522571bcce7bcb", "w32.win32file": "f6b51804a0ba8ff0", "win32file": "f6b51804a0ba8ff0", "w32.fileio": "0035c95a18d4f8e8", "fileio": "0035c95a18d4f8e8", "w32.win32memory": "72e2d5ccb7cedcf1", "win32memory": "72e2d5ccb7cedcf1", "w32.win32process": "067c78e9f121dce3", "win32process": "067c78e9f121dce3", "w32.win32sync": "06f53cc594b4ac6c", "win32sync": "06f53cc594b4ac6c", "w32.winsock2": "6446627d4f07a1b5", "winsock2": "6446627d4f07a1b5"} \ No newline at end of file diff --git a/Test/DictTest/temp/0035c95a18d4f8e8.pyi b/Test/DictTest/temp/0035c95a18d4f8e8.pyi deleted file mode 100644 index 3b3771f..0000000 --- a/Test/DictTest/temp/0035c95a18d4f8e8.pyi +++ /dev/null @@ -1,81 +0,0 @@ -""" -Auto-generated Python stub file from w32.fileio.py -Module: w32.fileio -""" - - -import t, c -from stdint import * -import stdio -import w32.win32base -import w32.win32file - -class MODE(t.CEnum): - R = 0 - W = 1 - A = 2 - RP = 3 - WP = 4 - AP = 5 - X = 6 - XP = 7 -class FRESULT(t.CEnum): - OK = 0 - ERR = -1 - ERR_CLOSED = -2 - ERR_PERM = -3 - ERR_IO = -4 - ERR_NOTFOUND = -5 - -SEEK_SET: t.CDefine = 0 -SEEK_CUR: t.CDefine = 1 -SEEK_END: t.CDefine = 2 -INVALID_SET_FILE_POINTER: t.CDefine = -1 -SHARE_READ: t.CDefine = 0x00000001 -SHARE_WRITE: t.CDefine = 0x00000002 -SHARE_DELETE: t.CDefine = 0x00000004 - -class File: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: File, filename: str, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: File) -> 'File' | t.CPtr: pass - def __exit__(self: File) -> t.CInt: pass - def read(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write(self: File, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: File, s: str) -> LONG: pass - def seek(self: File, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: File) -> LONG: pass - def close(self: File) -> LONG: pass - def flush(self: File) -> LONG: pass - def size(self: File) -> LONGLONG: pass - def readline(self: File, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: File, buf: bytes, max_count: ULONG) -> LONG: pass -class FileW: - handle: w32.win32base.HANDLE - closed: bool - can_read: bool - can_write: bool - is_append: bool - _share_mode: ULONG - def __init__(self: FileW, filename: w32.win32base.LPCWSTR, mode: ULONG, share: ULONG) -> t.CInt: pass - def __enter__(self: FileW) -> 'FileW' | t.CPtr: pass - def __exit__(self: FileW) -> t.CInt: pass - def read(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write(self: FileW, buf: bytes, count: ULONG) -> LONG: pass - def write_str(self: FileW, s: str) -> LONG: pass - def seek(self: FileW, offset: LONG, origin: ULONG) -> LONG: pass - def tell(self: FileW) -> LONG: pass - def close(self: FileW) -> LONG: pass - def flush(self: FileW) -> LONG: pass - def size(self: FileW) -> LONGLONG: pass - def readline(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - def read_all(self: FileW, buf: bytes, max_count: ULONG) -> LONG: pass - -def open(filename: str, mode: ULONG, share: ULONG) -> File | t.CPtr: pass - -def openw(filename: LPCWSTR, mode: ULONG, share: ULONG) -> FileW | t.CPtr: pass diff --git a/Test/DictTest/temp/067c78e9f121dce3.pyi b/Test/DictTest/temp/067c78e9f121dce3.pyi deleted file mode 100644 index f4f767c..0000000 --- a/Test/DictTest/temp/067c78e9f121dce3.pyi +++ /dev/null @@ -1,136 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32process.py -Module: w32.win32process -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -PROCESS_TERMINATE: t.CDefine = 0x0001 -PROCESS_CREATE_THREAD: t.CDefine = 0x0002 -PROCESS_VM_OPERATION: t.CDefine = 0x0008 -PROCESS_VM_READ: t.CDefine = 0x0010 -PROCESS_VM_WRITE: t.CDefine = 0x0020 -PROCESS_QUERY_INFORMATION: t.CDefine = 0x0400 -PROCESS_ALL_ACCESS: t.CDefine = 0x001FFFFF -THREAD_TERMINATE: t.CDefine = 0x0001 -THREAD_SUSPEND_RESUME: t.CDefine = 0x0002 -THREAD_GET_CONTEXT: t.CDefine = 0x0008 -THREAD_SET_CONTEXT: t.CDefine = 0x0010 -THREAD_QUERY_INFORMATION: t.CDefine = 0x0040 -THREAD_ALL_ACCESS: t.CDefine = 0x001FFFFF -CREATE_SUSPENDED: t.CDefine = 0x00000004 -CREATE_NEW_CONSOLE: t.CDefine = 0x00000010 -CREATE_NEW_PROCESS_GROUP: t.CDefine = 0x00000200 -CREATE_NO_WINDOW: t.CDefine = 0x08000000 -DETACHED_PROCESS: t.CDefine = 0x00000008 -STARTF_USESHOWWINDOW: t.CDefine = 0x00000001 -STARTF_USESTDHANDLES: t.CDefine = 0x00000100 -SW_HIDE: t.CDefine = 0 -SW_SHOW: t.CDefine = 5 -SW_MINIMIZE: t.CDefine = 6 -NORMAL_PRIORITY_CLASS: t.CDefine = 0x00000020 -IDLE_PRIORITY_CLASS: t.CDefine = 0x00000040 -HIGH_PRIORITY_CLASS: t.CDefine = 0x00000080 -REALTIME_PRIORITY_CLASS: t.CDefine = 0x00000100 -BELOW_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00004000 -ABOVE_NORMAL_PRIORITY_CLASS: t.CDefine = 0x00008000 -STILL_ACTIVE: t.CDefine = 259 - -class STARTUPINFOA: - cb: ULONG - lpReserved: CHARPTR - lpDesktop: CHARPTR - lpTitle: CHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class STARTUPINFOW: - cb: ULONG - lpReserved: WCHARPTR - lpDesktop: WCHARPTR - lpTitle: WCHARPTR - dwX: ULONG - dwY: ULONG - dwXSize: ULONG - dwYSize: ULONG - dwXCountChars: ULONG - dwYCountChars: ULONG - dwFillAttribute: ULONG - dwFlags: ULONG - wShowWindow: WORD - cbReserved2: WORD - lpReserved2: VOIDPTR - hStdInput: HANDLE - hStdOutput: HANDLE - hStdError: HANDLE -class PROCESS_INFORMATION: - hProcess: HANDLE - hThread: HANDLE - dwProcessId: ULONG - dwThreadId: ULONG - -def CreateProcessA(lpApplicationName: LPCSTR, lpCommandLine: CHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCSTR, lpStartupInfo: STARTUPINFOA | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def CreateProcessW(lpApplicationName: LPCWSTR, lpCommandLine: WCHARPTR, lpProcessAttributes: SECURITY_ATTRIBUTES | t.CPtr, lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInheritHandles: BOOL, dwCreationFlags: ULONG, lpEnvironment: VOIDPTR, lpCurrentDirectory: LPCWSTR, lpStartupInfo: STARTUPINFOW | t.CPtr, lpProcessInformation: PROCESS_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def TerminateProcess(hProcess: HANDLE, uExitCode: UINT) -> BOOL | t.State: pass - -def GetExitCodeProcess(hProcess: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetExitCodeThread(hThread: HANDLE, lpExitCode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def OpenProcess(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwProcessId: ULONG) -> HANDLE | t.State: pass - -def GetCurrentProcess() -> HANDLE | t.State: pass - -def GetCurrentProcessId() -> ULONG | t.State: pass - -def CreateThread(lpThreadAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwStackSize: t.CSizeT, lpStartAddress: VOIDPTR, lpParameter: VOIDPTR, dwCreationFlags: ULONG, lpThreadId: ULONG | t.CPtr) -> HANDLE | t.State: pass - -def OpenThread(dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwThreadId: ULONG) -> HANDLE | t.State: pass - -def SuspendThread(hThread: HANDLE) -> ULONG | t.State: pass - -def ResumeThread(hThread: HANDLE) -> ULONG | t.State: pass - -def TerminateThread(hThread: HANDLE, dwExitCode: ULONG) -> BOOL | t.State: pass - -def GetCurrentThread() -> HANDLE | t.State: pass - -def GetCurrentThreadId() -> ULONG | t.State: pass - -def GetThreadId(hThread: HANDLE) -> ULONG | t.State: pass - -def GetProcessId(hProcess: HANDLE) -> ULONG | t.State: pass - -def SetThreadPriority(hThread: HANDLE, nPriority: INT) -> BOOL | t.State: pass - -def GetThreadPriority(hThread: HANDLE) -> INT | t.State: pass - -def ExitProcess(uExitCode: UINT) -> VOID | t.State: pass - -def ExitThread(dwExitCode: ULONG) -> VOID | t.State: pass - -def TlsAlloc() -> ULONG | t.State: pass - -def TlsFree(dwTlsIndex: ULONG) -> BOOL | t.State: pass - -def TlsGetValue(dwTlsIndex: ULONG) -> VOIDPTR | t.State: pass - -def TlsSetValue(dwTlsIndex: ULONG, lpTlsValue: VOIDPTR) -> BOOL | t.State: pass diff --git a/Test/DictTest/temp/06f53cc594b4ac6c.pyi b/Test/DictTest/temp/06f53cc594b4ac6c.pyi deleted file mode 100644 index 8b5a8cf..0000000 --- a/Test/DictTest/temp/06f53cc594b4ac6c.pyi +++ /dev/null @@ -1,109 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32sync.py -Module: w32.win32sync -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -class CRITICAL_SECTION: - DebugInfo: VOIDPTR - LockCount: LONG - RecursionCount: LONG - OwningThread: HANDLE - LockSemaphore: HANDLE - SpinCount: QWORD - -def InitializeCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def EnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def LeaveCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def DeleteCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> VOID | t.State: pass - -def TryEnterCriticalSection(lpCriticalSection: CRITICAL_SECTION | t.CPtr) -> BOOL | t.State: pass - -def SetCriticalSectionSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> ULONG | t.State: pass - -def InitializeCriticalSectionAndSpinCount(lpCriticalSection: CRITICAL_SECTION | t.CPtr, dwSpinCount: ULONG) -> BOOL | t.State: pass - -def CreateMutexA(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateMutexW(lpMutexAttributes: SECURITY_ATTRIBUTES | t.CPtr, bInitialOwner: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenMutexA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenMutexW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseMutex(hMutex: HANDLE) -> BOOL | t.State: pass - -def CreateEventA(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateEventW(lpEventAttributes: SECURITY_ATTRIBUTES | t.CPtr, bManualReset: BOOL, bInitialState: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenEventA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenEventW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def SetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def ResetEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def PulseEvent(hEvent: HANDLE) -> BOOL | t.State: pass - -def CreateSemaphoreA(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCSTR) -> HANDLE | t.State: pass - -def CreateSemaphoreW(lpSemaphoreAttributes: SECURITY_ATTRIBUTES | t.CPtr, lInitialCount: LONG, lMaximumCount: LONG, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreA(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCSTR) -> HANDLE | t.State: pass - -def OpenSemaphoreW(dwDesiredAccess: ULONG, bInheritHandle: BOOL, lpName: LPCWSTR) -> HANDLE | t.State: pass - -def ReleaseSemaphore(hSemaphore: HANDLE, lReleaseCount: LONG, lpPreviousCount: LONG | t.CPtr) -> BOOL | t.State: pass - -def WaitForSingleObject(hHandle: HANDLE, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForSingleObjectEx(hHandle: HANDLE, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def WaitForMultipleObjects(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG) -> ULONG | t.State: pass - -def WaitForMultipleObjectsEx(nCount: ULONG, lpHandles: VOIDPTR, bWaitAll: BOOL, dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def InitializeSRWLock(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def AcquireSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockExclusive(SRWLock: VOIDPTR) -> VOID | t.State: pass - -def ReleaseSRWLockShared(SRWLock: VOIDPTR) -> VOID | t.State: pass - - -CONDITION_VARIABLE_LOCKMODE_SHARED: t.CDefine = 0x1 - -def InitializeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def SleepConditionVariableCS(ConditionVariable: VOIDPTR, CriticalSection: CRITICAL_SECTION | t.CPtr, dwMilliseconds: ULONG) -> BOOL | t.State: pass - -def SleepConditionVariableSRW(ConditionVariable: VOIDPTR, SRWLock: VOIDPTR, dwMilliseconds: ULONG, Flags: ULONG) -> BOOL | t.State: pass - -def WakeConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - -def WakeAllConditionVariable(ConditionVariable: VOIDPTR) -> VOID | t.State: pass - - -INIT_ONCE_STATIC_INIT: t.CDefine = 0x00000001 -INIT_ONCE_CHECK_ONLY: t.CDefine = 0x00000002 -INIT_ONCE_ASYNC: t.CDefine = 0x00000004 -INIT_ONCE_INIT_FAILED: t.CDefine = 0x00000008 - -class INIT_ONCE: - Ptr: t.CPtr - -def InitOnceExecuteOnce(InitOnce: INIT_ONCE | t.CPtr, InitFn: VOIDPTR, Parameter: VOIDPTR, Context: VOIDPTR | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/DictTest/temp/14d33679f7fadf1f.pyi b/Test/DictTest/temp/14d33679f7fadf1f.pyi deleted file mode 100644 index da1aabc..0000000 --- a/Test/DictTest/temp/14d33679f7fadf1f.pyi +++ /dev/null @@ -1,31 +0,0 @@ -""" -Auto-generated Python stub file from testcheck.py -Module: testcheck -""" - - -import t, c -import stdio -from w32.win32console import SetConsoleOutputCP, SetConsoleCP - -CP_UTF8: t.CDefine = 65001 -_pass_count: t.CExtern | t.CInt -_fail_count: t.CExtern | t.CInt -_total_pass: t.CExtern | t.CInt -_total_fail: t.CExtern | t.CInt - -def begin(name: str) -> t.CInt: pass - -def section(name: str) -> t.CInt: pass - -def ok(msg: str) -> t.CInt: pass - -def fail(msg: str) -> t.CInt: pass - -def check(cond: t.CInt, ok_msg: str, fail_msg: str) -> t.CInt: pass - -def info(msg: str) -> t.CInt: pass - -def end() -> t.CInt: pass - -def summary() -> t.CInt: pass diff --git a/Test/DictTest/temp/14d33679f7fadf1f.stub.ll.dep b/Test/DictTest/temp/14d33679f7fadf1f.stub.ll.dep deleted file mode 100644 index 280b9d0..0000000 --- a/Test/DictTest/temp/14d33679f7fadf1f.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -6f62fe05c5ea1ceb|7e529fe7a078cfef|bbdf3bbd4c3bc28c|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/20cd49775c100a38.pyi b/Test/DictTest/temp/20cd49775c100a38.pyi deleted file mode 100644 index df04de7..0000000 --- a/Test/DictTest/temp/20cd49775c100a38.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from json.__writer.py -Module: json.__writer -""" - - -import t, c -from stdint import * -import memhub -import string -from stdio import snprintf -from . import JsonValue, JSON_NULL, JSON_BOOL, JSON_INT, JSON_FLOAT, JSON_STRING, JSON_ARRAY, JSON_OBJECT - -def _write_char(buf: t.CChar | t.CPtr, pos: t.CSizeT, ch: t.CChar) -> t.CSizeT: pass - -def _write_str(buf: t.CChar | t.CPtr, pos: t.CSizeT, s: t.CChar | t.CPtr) -> t.CSizeT: pass - -def _write_string_escaped(buf: t.CChar | t.CPtr, pos: t.CSizeT, s: t.CChar | t.CPtr) -> t.CSizeT: pass - -def _write_value(buf: t.CChar | t.CPtr, pos: t.CSizeT, val: JsonValue | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CSizeT: pass - -def write(pool: memhub.MemManager | t.CPtr, val: JsonValue | t.CPtr, pretty: bool) -> t.CChar | t.CPtr: pass diff --git a/Test/DictTest/temp/20cd49775c100a38.stub.ll.dep b/Test/DictTest/temp/20cd49775c100a38.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/DictTest/temp/20cd49775c100a38.stub.ll.dep +++ b/Test/DictTest/temp/20cd49775c100a38.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/240a9a4157959a9f.pyi b/Test/DictTest/temp/240a9a4157959a9f.pyi deleted file mode 100644 index c230800..0000000 --- a/Test/DictTest/temp/240a9a4157959a9f.pyi +++ /dev/null @@ -1,38 +0,0 @@ -""" -Auto-generated Python stub file from json.__parser.py -Module: json.__parser -""" - - -import t, c -from stdint import * -import memhub -import string -from . import JsonValue, JSON_NULL, JSON_BOOL, JSON_INT, JSON_FLOAT, JSON_STRING, JSON_ARRAY, JSON_OBJECT, null, bool_val, int_val, float_val, string_val, array, object - -class ParseState: - src: t.CChar | t.CPtr - pos: t.CSizeT - len: t.CSizeT - pool: memhub.MemManager | t.CPtr - def __init__(self: ParseState, src: t.CChar | t.CPtr, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - -def _peek(s: ParseState | t.CPtr) -> t.CChar: pass - -def _advance(s: ParseState | t.CPtr) -> t.CChar: pass - -def _skip_whitespace(s: ParseState | t.CPtr) -> t.CInt: pass - -def _expect(s: ParseState | t.CPtr, ch: t.CChar) -> bool: pass - -def _parse_string(s: ParseState | t.CPtr) -> t.CChar | t.CPtr: pass - -def _parse_number(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_value(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_array(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def _parse_object(s: ParseState | t.CPtr) -> JsonValue | t.CPtr: pass - -def parse(pool: memhub.MemManager | t.CPtr, src: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass diff --git a/Test/DictTest/temp/240a9a4157959a9f.stub.ll.dep b/Test/DictTest/temp/240a9a4157959a9f.stub.ll.dep index 14899d3..7df8e8d 100644 --- a/Test/DictTest/temp/240a9a4157959a9f.stub.ll.dep +++ b/Test/DictTest/temp/240a9a4157959a9f.stub.ll.dep @@ -1 +1 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file +04e5fe47ff2af528|285b6aa29a34754d|6c658cc728d0bbf4|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/271ea3decb810db2.pyi b/Test/DictTest/temp/271ea3decb810db2.pyi deleted file mode 100644 index 3d637bf..0000000 --- a/Test/DictTest/temp/271ea3decb810db2.pyi +++ /dev/null @@ -1,26 +0,0 @@ -""" -Auto-generated Python stub file from atom.py -Module: atom -""" - - -import t, c - -ATOMIC_RELAXED: t.CDefine = 0 -ATOMIC_CONSUME: t.CDefine = 1 -ATOMIC_ACQUIRE: t.CDefine = 2 -ATOMIC_RELEASE: t.CDefine = 3 -ATOMIC_ACQ_REL: t.CDefine = 4 -ATOMIC_SEQ_CST: t.CDefine = 5 - -def __atomic_test_and_set(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CBool: pass - -def __atomic_clear(ptr: t.CUInt64T | t.CPtr, order: t.CInt) -> t.CVoid: pass - -def __atomic_thread_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_signal_fence(order: t.CInt) -> t.CVoid: pass - -def __atomic_always_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass - -def __atomic_is_lock_free(size: t.CSizeT, ptr: t.CVoid | t.CPtr) -> t.CBool: pass diff --git a/Test/DictTest/temp/271ea3decb810db2.stub.ll.dep b/Test/DictTest/temp/271ea3decb810db2.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/DictTest/temp/57288496f7c2d1ad.pyi b/Test/DictTest/temp/57288496f7c2d1ad.pyi deleted file mode 100644 index 0624d9a..0000000 --- a/Test/DictTest/temp/57288496f7c2d1ad.pyi +++ /dev/null @@ -1,71 +0,0 @@ -""" -Auto-generated Python stub file from json.__init__.py -Module: json.__init__ -""" - - -import t, c -from stdint import * -import memhub -import string -import viperio - -JSON_NULL: t.CDefine = 0 -JSON_BOOL: t.CDefine = 1 -JSON_INT: t.CDefine = 2 -JSON_FLOAT: t.CDefine = 3 -JSON_STRING: t.CDefine = 4 -JSON_ARRAY: t.CDefine = 5 -JSON_OBJECT: t.CDefine = 6 - -class JsonValue: - vtype: t.CInt - bool_val: t.CInt - int_val: t.CInt64T - float_val: t.CDouble - str_val: t.CChar | t.CPtr - next: 'JsonValue' | t.CPtr - key: t.CChar | t.CPtr - child: 'JsonValue' | t.CPtr - child_count: t.CSizeT - def __new__(self: JsonValue, pool: memhub.MemManager | t.CPtr) -> t.CInt: pass - def type(self: JsonValue) -> t.CInt: pass - def is_null(self: JsonValue) -> bool: pass - def is_bool(self: JsonValue) -> bool: pass - def is_int(self: JsonValue) -> bool: pass - def is_float(self: JsonValue) -> bool: pass - def is_string(self: JsonValue) -> bool: pass - def is_array(self: JsonValue) -> bool: pass - def is_object(self: JsonValue) -> bool: pass - def as_bool(self: JsonValue) -> bool: pass - def as_int(self: JsonValue) -> t.CInt64T: pass - def as_float(self: JsonValue) -> t.CDouble: pass - def as_string(self: JsonValue) -> t.CChar | t.CPtr: pass - def __len__(self: JsonValue) -> t.CSizeT: pass - def __getitem__(self: JsonValue, key: t.CChar | t.CPtr) -> 'JsonValue' | t.CPtr: pass - def __setitem__(self: JsonValue, key: t.CChar | t.CPtr, val: 'JsonValue' | t.CPtr) -> t.CInt: pass - def get_item(self: JsonValue, index: t.CSizeT) -> 'JsonValue' | t.CPtr: pass - def _pool_alloc(self: JsonValue, size: t.CSizeT) -> t.CChar | t.CPtr: pass - def _append_child(self: JsonValue, child: 'JsonValue' | t.CPtr) -> t.CInt: pass - -def null(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def bool_val(pool: memhub.MemManager | t.CPtr, val: bool) -> JsonValue | t.CPtr: pass - -def int_val(pool: memhub.MemManager | t.CPtr, val: t.CInt64T) -> JsonValue | t.CPtr: pass - -def float_val(pool: memhub.MemManager | t.CPtr, val: t.CDouble) -> JsonValue | t.CPtr: pass - -def string_val(pool: memhub.MemManager | t.CPtr, val: t.CChar | t.CPtr) -> JsonValue | t.CPtr: pass - -def array(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def object(pool: memhub.MemManager | t.CPtr) -> JsonValue | t.CPtr: pass - -def array_append(pool: memhub.MemManager | t.CPtr, arr: JsonValue | t.CPtr, item: JsonValue | t.CPtr) -> t.CInt: pass - -def object_set(pool: memhub.MemManager | t.CPtr, obj: JsonValue | t.CPtr, key: t.CChar | t.CPtr, val: JsonValue | t.CPtr) -> t.CInt: pass - - -from .__parser import parse -from .__writer import write \ No newline at end of file diff --git a/Test/DictTest/temp/57288496f7c2d1ad.stub.ll.dep b/Test/DictTest/temp/57288496f7c2d1ad.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/DictTest/temp/6446627d4f07a1b5.pyi b/Test/DictTest/temp/6446627d4f07a1b5.pyi deleted file mode 100644 index d7bcff4..0000000 --- a/Test/DictTest/temp/6446627d4f07a1b5.pyi +++ /dev/null @@ -1,86 +0,0 @@ -""" -Auto-generated Python stub file from w32.winsock2.py -Module: w32.winsock2 -""" - - -import t, c -from stdint import * -from w32.win32base import * - -WINSOCK_VERSION: t.CDefine = 0x0202 # 2.2 -AF_INET: t.CDefine = 2 -AF_INET6: t.CDefine = 23 -SOCK_STREAM: t.CDefine = 1 # TCP -SOCK_DGRAM: t.CDefine = 2 # UDP -SOCK_RAW: t.CDefine = 3 # 原始套接字 -IPPROTO_TCP: t.CDefine = 6 -IPPROTO_UDP: t.CDefine = 17 -SOL_SOCKET: t.CDefine = 0xFFFF # WinSock2 值 -SO_RCVTIMEO: t.CDefine = 0x1006 # WinSock2 值 -SO_SNDTIMEO: t.CDefine = 0x1005 # WinSock2 值 -SO_REUSEADDR: t.CDefine = 0x0004 # WinSock2 值 -INADDR_ANY: t.CDefine = 0 -SOCKET_ERROR: t.CDefine = -1 -INVALID_SOCKET: t.CDefine = 0xFFFFFFFF # WinSock2: ~0 -MSG_NOSIGNAL: t.CDefine = 0 # Windows 不支持,设为 0 -SD_SEND: t.CDefine = 1 -SD_RECV: t.CDefine = 0 -SD_BOTH: t.CDefine = 2 - -class WSASocketAddr: - family: u16 - port: u16 - addr: u32 - zero: u64 -class WSAData: - wVersion: WORD - wHighVersion: WORD - szDescription: BYTE - szSystemStatus: BYTE - iMaxSockets: u16 - iMaxUdpDg: u16 - lpVendorInfo: CHARPTR -class WSAHostEnt: - h_name: CHARPTR - h_aliases: CHARPTR - h_addrtype: SHORT - h_length: SHORT - h_addr_list: CHARPTR -class WinTimeVal: - tv_sec: LONG - tv_usec: LONG - -def WSAStartup(wVersionRequested: WORD, lpWSAData: WSAData | t.CPtr) -> INT | t.State: pass - -def WSACleanup() -> INT | t.State: pass - -def WSAGetLastError() -> INT | t.State: pass - -def socket(family: INT, type: INT, protocol: INT) -> u64 | t.State: pass - -def closesocket(s: u64) -> INT | t.State: pass - -def connect(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def send(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def recv(s: u64, buf: t.CVoid | t.CPtr, len: INT, flags: INT) -> INT | t.State: pass - -def bind(s: u64, name: WSASocketAddr | t.CPtr, namelen: INT) -> INT | t.State: pass - -def listen(s: u64, backlog: INT) -> INT | t.State: pass - -def accept(s: u64, addr: WSASocketAddr | t.CPtr, addrlen: INT | t.CPtr) -> u64 | t.State: pass - -def setsockopt(s: u64, level: INT, optname: INT, optval: t.CVoid | t.CPtr, optlen: INT) -> INT | t.State: pass - -def shutdown(s: u64, how: INT) -> INT | t.State: pass - -def gethostbyname(name: t.CChar | t.CConst | t.CPtr) -> WSAHostEnt | t.CPtr | t.State: pass - -def ntohs(netshort: u16) -> u16 | t.State: pass - -def htons(hostshort: u16) -> u16 | t.State: pass - -def inet_addr(cp: t.CChar | t.CConst | t.CPtr) -> u32 | t.State: pass diff --git a/Test/DictTest/temp/6f62fe05c5ea1ceb.pyi b/Test/DictTest/temp/6f62fe05c5ea1ceb.pyi deleted file mode 100644 index 448ca53..0000000 --- a/Test/DictTest/temp/6f62fe05c5ea1ceb.pyi +++ /dev/null @@ -1,28 +0,0 @@ -""" -Auto-generated Python stub file from stdio.py -Module: stdio -""" - - -import t, c - -def printf(fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def fprintf(stream: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def sprintf(buf: bytes, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def snprintf(buf: bytes, size: t.CSizeT, fmt: t.CConst | str, *args) -> t.CInt | t.State: pass - -def puts(s: t.CConst | str) -> t.CInt | t.State: pass - -def fputs(s: t.CConst | str, stream: bytes) -> t.CInt | t.State: pass - -def fgets(buf: bytes, size: t.CInt, stream: bytes) -> bytes | t.State: pass - -def fflush(stream: bytes) -> t.CInt | t.State: pass - - -stdin: t.CExtern | bytes -stdout: t.CExtern | bytes -stderr: t.CExtern | bytes \ No newline at end of file diff --git a/Test/DictTest/temp/6f62fe05c5ea1ceb.stub.ll.dep b/Test/DictTest/temp/6f62fe05c5ea1ceb.stub.ll.dep deleted file mode 100644 index e69de29..0000000 diff --git a/Test/DictTest/temp/72e2d5ccb7cedcf1.pyi b/Test/DictTest/temp/72e2d5ccb7cedcf1.pyi deleted file mode 100644 index 5fceb08..0000000 --- a/Test/DictTest/temp/72e2d5ccb7cedcf1.pyi +++ /dev/null @@ -1,91 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32memory.py -Module: w32.win32memory -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -MEM_COMMIT: t.CDefine = 0x00001000 -MEM_RESERVE: t.CDefine = 0x00002000 -MEM_DECOMMIT: t.CDefine = 0x00004000 -MEM_RELEASE: t.CDefine = 0x00008000 -MEM_FREE: t.CDefine = 0x00010000 -MEM_RESET: t.CDefine = 0x00080000 -MEM_TOP_DOWN: t.CDefine = 0x00100000 -MEM_WRITE_WATCH: t.CDefine = 0x00200000 -MEM_PHYSICAL: t.CDefine = 0x00400000 -MEM_LARGE_PAGES: t.CDefine = 0x20000000 -PAGE_NOACCESS: t.CDefine = 0x01 -PAGE_READONLY: t.CDefine = 0x02 -PAGE_READWRITE: t.CDefine = 0x04 -PAGE_WRITECOPY: t.CDefine = 0x08 -PAGE_EXECUTE: t.CDefine = 0x10 -PAGE_EXECUTE_READ: t.CDefine = 0x20 -PAGE_EXECUTE_READWRITE: t.CDefine = 0x40 -PAGE_EXECUTE_WRITECOPY: t.CDefine = 0x80 -PAGE_GUARD: t.CDefine = 0x100 -PAGE_NOCACHE: t.CDefine = 0x200 -PAGE_WRITECOMBINE: t.CDefine = 0x400 -HEAP_NO_SERIALIZE: t.CDefine = 0x00000001 -HEAP_GROWABLE: t.CDefine = 0x00000002 -HEAP_GENERATE_EXCEPTIONS: t.CDefine = 0x00000004 -HEAP_ZERO_MEMORY: t.CDefine = 0x00000008 -HEAP_REALLOC_IN_PLACE_ONLY: t.CDefine = 0x00000010 - -class MEMORY_BASIC_INFORMATION: - BaseAddress: VOIDPTR - AllocationBase: VOIDPTR - AllocationProtect: ULONG - RegionSize: t.CSizeT - State: ULONG - Protect: ULONG - Type: ULONG - -def VirtualAlloc(lpAddress: VOIDPTR, dwSize: t.CSizeT, flAllocationType: ULONG, flProtect: ULONG) -> VOIDPTR | t.State: pass - -def VirtualFree(lpAddress: VOIDPTR, dwSize: t.CSizeT, dwFreeType: ULONG) -> BOOL | t.State: pass - -def VirtualProtect(lpAddress: VOIDPTR, dwSize: t.CSizeT, flNewProtect: ULONG, lpflOldProtect: ULONG | t.CPtr) -> BOOL | t.State: pass - -def VirtualQuery(lpAddress: t.CConst | VOIDPTR, lpBuffer: MEMORY_BASIC_INFORMATION | t.CPtr, dwLength: t.CSizeT) -> t.CSizeT | t.State: pass - -def VirtualLock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def VirtualUnlock(lpAddress: VOIDPTR, dwSize: t.CSizeT) -> BOOL | t.State: pass - -def GetProcessHeap() -> HANDLE | t.State: pass - -def HeapCreate(flOptions: ULONG, dwInitialSize: t.CSizeT, dwMaximumSize: t.CSizeT) -> HANDLE | t.State: pass - -def HeapDestroy(hHeap: HANDLE) -> BOOL | t.State: pass - -def HeapAlloc(hHeap: HANDLE, dwFlags: ULONG, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapReAlloc(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def HeapFree(hHeap: HANDLE, dwFlags: ULONG, lpMem: VOIDPTR) -> BOOL | t.State: pass - -def HeapSize(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> t.CSizeT | t.State: pass - -def HeapValidate(hHeap: HANDLE, dwFlags: ULONG, lpMem: t.CConst | VOIDPTR) -> BOOL | t.State: pass - -def HeapCompact(hHeap: HANDLE, dwFlags: ULONG) -> t.CSizeT | t.State: pass - -def GlobalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def GlobalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalLock(hMem: VOIDPTR) -> VOIDPTR | t.State: pass - -def GlobalUnlock(hMem: VOIDPTR) -> BOOL | t.State: pass - -def GlobalSize(hMem: VOIDPTR) -> t.CSizeT | t.State: pass - -def LocalAlloc(uFlags: UINT, dwBytes: t.CSizeT) -> VOIDPTR | t.State: pass - -def LocalFree(hMem: VOIDPTR) -> VOIDPTR | t.State: pass diff --git a/Test/DictTest/temp/7e529fe7a078cfef.pyi b/Test/DictTest/temp/7e529fe7a078cfef.pyi deleted file mode 100644 index d7953a2..0000000 --- a/Test/DictTest/temp/7e529fe7a078cfef.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32base.py -Module: w32.win32base -""" - -import c - - -import t -from stdint import * - -HANDLE: t.CTypedef = VOIDPTR -LPCSTR: t.CTypedef = t.CConst | t.CChar | t.CPtr -LPCWSTR: t.CTypedef = t.CConst | t.CUnsignedShort | t.CPtr -INVALID_HANDLE_VALUE: t.CDefine = t.CVoid(-1) -NULL: t.CDefine = 0 -TRUE: t.CDefine = 1 -FALSE: t.CDefine = 0 -INFINITE: t.CDefine = 0xFFFFFFFF -WAIT_FAILED: t.CDefine = 0xFFFFFFFF -WAIT_OBJECT_0: t.CDefine = 0 -WAIT_TIMEOUT: t.CDefine = 258 -WAIT_ABANDONED: t.CDefine = 0x80 -MAX_PATH: t.CDefine = 260 -ERROR_SUCCESS: t.CDefine = 0 -ERROR_FILE_NOT_FOUND: t.CDefine = 2 -ERROR_ACCESS_DENIED: t.CDefine = 5 -ERROR_INSUFFICIENT_BUFFER: t.CDefine = 122 - -class SECURITY_ATTRIBUTES: - nLength: ULONG - lpSecurityDescriptor: VOIDPTR - bInheritHandle: BOOL -class OVERLAPPED: - Internal: ULONGLONG - InternalHigh: ULONGLONG - Offset: ULONG - OffsetHigh: ULONG - hEvent: HANDLE -class FILETIME: - dwLowDateTime: DWORD - dwHighDateTime: DWORD -class SYSTEMTIME: - wYear: WORD - wMonth: WORD - wDayOfWeek: WORD - wDay: WORD - wHour: WORD - wMinute: WORD - wSecond: WORD - wMilliseconds: WORD -class GUID: - Data1: DWORD - Data2: WORD - Data3: WORD - Data4: BYTEPTR -class LARGE_INTEGER: - QuadPart: LONGLONG -class ULARGE_INTEGER: - QuadPart: ULONGLONG - -def GetLastError() -> ULONG | t.State: pass - -def SetLastError(dwErrCode: ULONG) -> t.State: pass - -def CloseHandle(hObject: HANDLE) -> BOOL | t.State: pass - -def GetProcAddress(hModule: HANDLE, lpProcName: LPCSTR) -> VOIDPTR | t.State: pass - -def GetModuleHandleA(lpModuleName: LPCSTR) -> HANDLE | t.State: pass - -def GetModuleHandleW(lpModuleName: LPCWSTR) -> HANDLE | t.State: pass - -def LoadLibraryA(lpLibFileName: LPCSTR) -> HANDLE | t.State: pass - -def LoadLibraryW(lpLibFileName: LPCWSTR) -> HANDLE | t.State: pass - -def FreeLibrary(hLibModule: HANDLE) -> BOOL | t.State: pass - -def GetSystemTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def GetLocalTime(lpSystemTime: SYSTEMTIME | t.CPtr) -> t.State: pass - -def FileTimeToSystemTime(lpFileTime: FILETIME | t.CPtr, lpSystemTime: SYSTEMTIME | t.CPtr) -> BOOL | t.State: pass - -def SystemTimeToFileTime(lpSystemTime: SYSTEMTIME | t.CPtr, lpFileTime: FILETIME | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceCounter(lpPerformanceCount: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def QueryPerformanceFrequency(lpFrequency: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def Sleep(dwMilliseconds: ULONG) -> t.State: pass - -def SleepEx(dwMilliseconds: ULONG, bAlertable: BOOL) -> ULONG | t.State: pass - -def GetTickCount() -> ULONG | t.State: pass - -def GetTickCount64() -> ULONGLONG | t.State: pass - -def GetCommandLineA() -> CHARPTR | t.State: pass diff --git a/Test/DictTest/temp/7e529fe7a078cfef.stub.ll.dep b/Test/DictTest/temp/7e529fe7a078cfef.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DictTest/temp/7e529fe7a078cfef.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/90c53dd6db8d41cf.pyi b/Test/DictTest/temp/90c53dd6db8d41cf.pyi deleted file mode 100644 index 98359ba..0000000 --- a/Test/DictTest/temp/90c53dd6db8d41cf.pyi +++ /dev/null @@ -1,20 +0,0 @@ -""" -Auto-generated Python stub file from stdlib.py -Module: stdlib -""" - -import c - - -from stdint import * -import t - -def malloc(size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def calloc(nmemb: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def realloc(p: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CVoid | t.CPtr | t.State: pass - -def free(p: t.CVoid | t.CPtr) -> t.State: pass - -def system(cmd: t.CConst | t.CChar | t.CPtr) -> INT | t.State: pass diff --git a/Test/DictTest/temp/90c53dd6db8d41cf.stub.ll.dep b/Test/DictTest/temp/90c53dd6db8d41cf.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DictTest/temp/90c53dd6db8d41cf.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/_phase1_manifest.json b/Test/DictTest/temp/_phase1_manifest.json index 0ceb06e..90f8b47 100644 --- a/Test/DictTest/temp/_phase1_manifest.json +++ b/Test/DictTest/temp/_phase1_manifest.json @@ -1 +1 @@ -{"D:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DictTest\\App\\main.py": {"sha1": "b3c2b99b6f3be4c7", "mtime": 1782827868.8446941, "size": 8245}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_dict.py": {"sha1": "e3e7b6de8d7d8b03", "mtime": 1784566611.8489904, "size": 12055}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.py": {"sha1": "271ea3decb810db2", "mtime": 1782226548.693161, "size": 1290}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.py": {"sha1": "57288496f7c2d1ad", "mtime": 1783239811.8873823, "size": 7653}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.py": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.py": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.py": {"sha1": "d089e25a15c6f6e0", "mtime": 1784652963.6614158, "size": 19765}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.py": {"sha1": "f5522571bcce7bcb", "mtime": 1782383975.8824987, "size": 4356}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.py": {"sha1": "6f62fe05c5ea1ceb", "mtime": 1783239556.0959673, "size": 714}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.py": {"sha1": "90c53dd6db8d41cf", "mtime": 1784566611.8606246, "size": 375}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.py": {"sha1": "ba12ed409d78139e", "mtime": 1784652963.6677132, "size": 10452}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.py": {"sha1": "14d33679f7fadf1f", "mtime": 1784566611.838851, "size": 1979}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.py": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.py": {"sha1": "7e529fe7a078cfef", "mtime": 1782488356.7736557, "size": 2662}, "D:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.py": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file +{"d:\\Users\\TermiNexus\\Desktop\\TransPyC\\Test\\DictTest\\App\\main.vp": {"sha1": "b3c2b99b6f3be4c7", "mtime": 1782827868.8446941, "size": 8245}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\_dict.vp": {"sha1": "e0f0afe3caa1e486", "mtime": 1785678335.3256674, "size": 12341}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\atom.vp": {"sha1": "aa246c6e6aa30484", "mtime": 1785389628.701967, "size": 1198}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__init__.vp": {"sha1": "6ddf430432a0e373", "mtime": 1785424554.7204792, "size": 7707}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__parser.vp": {"sha1": "240a9a4157959a9f", "mtime": 1782826918.100951, "size": 7517}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\json\\__writer.vp": {"sha1": "20cd49775c100a38", "mtime": 1782826901.8906734, "size": 3784}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\memhub.vp": {"sha1": "04e5fe47ff2af528", "mtime": 1786093335.1900027, "size": 27855}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdint.vp": {"sha1": "f5522571bcce7bcb", "mtime": 1785563642.3805652, "size": 4356}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdio.vp": {"sha1": "285b6aa29a34754d", "mtime": 1785332415.1829746, "size": 561}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\stdlib.vp": {"sha1": "6c658cc728d0bbf4", "mtime": 1785750602.5446548, "size": 413}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\string.vp": {"sha1": "928c0ff6d8c69ec9", "mtime": 1786032947.9330952, "size": 11557}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\testcheck.vp": {"sha1": "748d0424e8976fa0", "mtime": 1785332415.20287, "size": 1919}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\viperio.vp": {"sha1": "c9f4be41ca1cc2b4", "mtime": 1782812279.506002, "size": 1556}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32base.vp": {"sha1": "fc980acec33d69a7", "mtime": 1785332415.2228394, "size": 2653}, "d:\\Users\\TermiNexus\\Desktop\\TransPyC\\includes\\w32\\win32console.vp": {"sha1": "bbdf3bbd4c3bc28c", "mtime": 1781200703.5338137, "size": 5604}} \ No newline at end of file diff --git a/Test/DictTest/temp/_sha1_map.txt b/Test/DictTest/temp/_sha1_map.txt index 783a410..7818b0a 100644 --- a/Test/DictTest/temp/_sha1_map.txt +++ b/Test/DictTest/temp/_sha1_map.txt @@ -1,15 +1,15 @@ -14d33679f7fadf1f:includes/testcheck.py -20cd49775c100a38:includes/json\__writer.py -240a9a4157959a9f:includes/json\__parser.py -271ea3decb810db2:includes/atom.py -57288496f7c2d1ad:includes/json\__init__.py -6f62fe05c5ea1ceb:includes/stdio.py -7e529fe7a078cfef:includes/w32\win32base.py -90c53dd6db8d41cf:includes/stdlib.py -b3c2b99b6f3be4c7:main.py -ba12ed409d78139e:includes/string.py -bbdf3bbd4c3bc28c:includes/w32\win32console.py -c9f4be41ca1cc2b4:includes/viperio.py -d089e25a15c6f6e0:includes/memhub.py -e3e7b6de8d7d8b03:includes/_dict.py -f5522571bcce7bcb:includes/stdint.py +04e5fe47ff2af528:includes/memhub.vp +20cd49775c100a38:includes/json\__writer.vp +240a9a4157959a9f:includes/json\__parser.vp +285b6aa29a34754d:includes/stdio.vp +6c658cc728d0bbf4:includes/stdlib.vp +6ddf430432a0e373:includes/json\__init__.vp +748d0424e8976fa0:includes/testcheck.vp +928c0ff6d8c69ec9:includes/string.vp +aa246c6e6aa30484:includes/atom.vp +b3c2b99b6f3be4c7:main.vp +bbdf3bbd4c3bc28c:includes/w32\win32console.vp +c9f4be41ca1cc2b4:includes/viperio.vp +e0f0afe3caa1e486:includes/_dict.vp +f5522571bcce7bcb:includes/stdint.vp +fc980acec33d69a7:includes/w32\win32base.vp diff --git a/Test/DictTest/temp/b3c2b99b6f3be4c7.pyi b/Test/DictTest/temp/b3c2b99b6f3be4c7.pyi deleted file mode 100644 index 155b94e..0000000 --- a/Test/DictTest/temp/b3c2b99b6f3be4c7.pyi +++ /dev/null @@ -1,17 +0,0 @@ -""" -Auto-generated Python stub file from main.py -Module: main -""" - - -from stdint import * -import w32.win32console -import t, c -from t import CInt, CExport -import stdio -import stdlib -import string -import memhub -import testcheck - -def main() -> CInt | CExport: pass diff --git a/Test/DictTest/temp/ba12ed409d78139e.pyi b/Test/DictTest/temp/ba12ed409d78139e.pyi deleted file mode 100644 index 1f82b1e..0000000 --- a/Test/DictTest/temp/ba12ed409d78139e.pyi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.py -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/DictTest/temp/ba12ed409d78139e.stub.ll.dep b/Test/DictTest/temp/ba12ed409d78139e.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DictTest/temp/ba12ed409d78139e.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/bbdf3bbd4c3bc28c.pyi b/Test/DictTest/temp/bbdf3bbd4c3bc28c.pyi deleted file mode 100644 index 70dcdbc..0000000 --- a/Test/DictTest/temp/bbdf3bbd4c3bc28c.pyi +++ /dev/null @@ -1,138 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32console.py -Module: w32.win32console -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -ENABLE_PROCESSED_INPUT: t.CDefine = 0x0001 -ENABLE_LINE_INPUT: t.CDefine = 0x0002 -ENABLE_ECHO_INPUT: t.CDefine = 0x0004 -ENABLE_WINDOW_INPUT: t.CDefine = 0x0008 -ENABLE_MOUSE_INPUT: t.CDefine = 0x0010 -ENABLE_INSERT_MODE: t.CDefine = 0x0020 -ENABLE_QUICK_EDIT_MODE: t.CDefine = 0x0040 -ENABLE_EXTENDED_FLAGS: t.CDefine = 0x0080 -ENABLE_PROCESSED_OUTPUT: t.CDefine = 0x0001 -ENABLE_WRAP_AT_EOL_OUTPUT: t.CDefine = 0x0002 -ENABLE_VIRTUAL_TERMINAL_PROCESSING: t.CDefine = 0x0004 -DISABLE_NEWLINE_AUTO_RETURN: t.CDefine = 0x0008 -ENABLE_LVB_GRID_WORLDWIDE: t.CDefine = 0x0010 -FOREGROUND_BLUE: t.CDefine = 0x0001 -FOREGROUND_GREEN: t.CDefine = 0x0002 -FOREGROUND_RED: t.CDefine = 0x0004 -FOREGROUND_INTENSITY: t.CDefine = 0x0008 -BACKGROUND_BLUE: t.CDefine = 0x0010 -BACKGROUND_GREEN: t.CDefine = 0x0020 -BACKGROUND_RED: t.CDefine = 0x0040 -BACKGROUND_INTENSITY: t.CDefine = 0x0080 -KEY_EVENT: t.CDefine = 0x0001 -MOUSE_EVENT: t.CDefine = 0x0002 -WINDOW_BUFFER_SIZE_EVENT: t.CDefine = 0x0004 -MENU_EVENT: t.CDefine = 0x0008 -FOCUS_EVENT: t.CDefine = 0x0010 - -class COORD: - X: SHORT - Y: SHORT -class SMALL_RECT: - Left: SHORT - Top: SHORT - Right: SHORT - Bottom: SHORT -class CONSOLE_SCREEN_BUFFER_INFO: - dwSize: COORD - dwCursorPosition: COORD - wAttributes: WORD - srWindow: SMALL_RECT - dwMaximumWindowSize: COORD -class CONSOLE_CURSOR_INFO: - dwSize: ULONG - bVisible: BOOL -class CHAR_INFO: - UnicodeChar: WCHAR - Attributes: WORD -class KEY_EVENT_RECORD: - bKeyDown: BOOL - wRepeatCount: WORD - wVirtualKeyCode: WORD - wVirtualScanCode: WORD - uChar: WCHAR - dwControlKeyState: ULONG -class MOUSE_EVENT_RECORD: - dwMousePosition: COORD - dwButtonState: ULONG - dwControlKeyState: ULONG - dwEventFlags: ULONG -class WINDOW_BUFFER_SIZE_RECORD: - dwSize: COORD -class INPUT_RECORD: - EventType: WORD - Event: KEY_EVENT_RECORD - -def SetConsoleOutputCP(codepage: UINT) -> BOOL | t.State: pass - -def SetConsoleCP(codepage: UINT) -> BOOL | t.State: pass - -def GetConsoleCP() -> UINT | t.State: pass - -def GetConsoleOutputCP() -> UINT | t.State: pass - -def GetConsoleScreenBufferInfo(hConsoleOutput: HANDLE, lpConsoleScreenBufferInfo: CONSOLE_SCREEN_BUFFER_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleScreenBufferSize(hConsoleOutput: HANDLE, dwSize: COORD) -> BOOL | t.State: pass - -def SetConsoleCursorPosition(hConsoleOutput: HANDLE, dwCursorPosition: COORD) -> BOOL | t.State: pass - -def GetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleCursorInfo(hConsoleOutput: HANDLE, lpConsoleCursorInfo: CONSOLE_CURSOR_INFO | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleTextAttribute(hConsoleOutput: HANDLE, wAttributes: WORD) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterA(hConsoleOutput: HANDLE, cCharacter: t.CChar, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputCharacterW(hConsoleOutput: HANDLE, cCharacter: WCHAR, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfCharsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FillConsoleOutputAttribute(hConsoleOutput: HANDLE, wAttribute: WORD, nLength: ULONG, dwWriteCoord: COORD, lpNumberOfAttrsWritten: ULONG | t.CPtr) -> BOOL | t.State: pass - -def WriteConsoleA(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def WriteConsoleW(hConsoleOutput: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfCharsToWrite: ULONG, lpNumberOfCharsWritten: ULONG | t.CPtr, lpReserved: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleA(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def ReadConsoleW(hConsoleInput: HANDLE, lpBuffer: VOIDPTR, nNumberOfCharsToRead: ULONG, lpNumberOfCharsRead: ULONG | t.CPtr, pInputControl: VOIDPTR) -> BOOL | t.State: pass - -def GetConsoleMode(hConsoleHandle: HANDLE, lpMode: ULONG | t.CPtr) -> BOOL | t.State: pass - -def SetConsoleMode(hConsoleHandle: HANDLE, dwMode: ULONG) -> BOOL | t.State: pass - -def ReadConsoleInputA(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def ReadConsoleInputW(hConsoleInput: HANDLE, lpBuffer: INPUT_RECORD | t.CPtr, nLength: ULONG, lpNumberOfEventsRead: ULONG | t.CPtr) -> BOOL | t.State: pass - -def GetNumberOfConsoleInputEvents(hConsoleInput: HANDLE, lpNumberOfEvents: ULONG | t.CPtr) -> BOOL | t.State: pass - -def FlushConsoleInputBuffer(hConsoleInput: HANDLE) -> BOOL | t.State: pass - -def SetConsoleTitleA(lpConsoleTitle: LPCSTR) -> BOOL | t.State: pass - -def SetConsoleTitleW(lpConsoleTitle: LPCWSTR) -> BOOL | t.State: pass - -def GetConsoleTitleA(lpConsoleTitle: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetConsoleTitleW(lpConsoleTitle: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def AllocConsole() -> BOOL | t.State: pass - -def FreeConsole() -> BOOL | t.State: pass - -def SetConsoleWindowInfo(hConsoleOutput: HANDLE, bAbsolute: BOOL, lpConsoleWindow: SMALL_RECT | t.CPtr) -> BOOL | t.State: pass - -def ScrollConsoleScreenBufferA(hConsoleOutput: HANDLE, lpScrollRectangle: SMALL_RECT | t.CPtr, lpClipRectangle: SMALL_RECT | t.CPtr, dwDestinationOrigin: COORD, lpFill: CHAR_INFO | t.CPtr) -> BOOL | t.State: pass diff --git a/Test/DictTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep b/Test/DictTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep index 4574488..d4b382c 100644 --- a/Test/DictTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep +++ b/Test/DictTest/temp/bbdf3bbd4c3bc28c.stub.ll.dep @@ -1 +1 @@ -7e529fe7a078cfef|f5522571bcce7bcb \ No newline at end of file +f5522571bcce7bcb|fc980acec33d69a7 \ No newline at end of file diff --git a/Test/DictTest/temp/c9f4be41ca1cc2b4.pyi b/Test/DictTest/temp/c9f4be41ca1cc2b4.pyi deleted file mode 100644 index fdbd7ec..0000000 --- a/Test/DictTest/temp/c9f4be41ca1cc2b4.pyi +++ /dev/null @@ -1,22 +0,0 @@ -""" -Auto-generated Python stub file from viperio.py -Module: viperio -""" - - -import t, c -from stdint import * - -class Buf: - data: t.CChar | t.CPtr - length: t.CSizeT - capacity: t.CSizeT - owned: bool - def __init__(self: Buf, data: t.CChar | t.CPtr, capacity: t.CSizeT, length: t.CSizeT, owned: bool) -> t.CInt: pass - def clear(self: Buf) -> t.CInt: pass - def write(self: Buf, src: t.CChar | t.CPtr, count: t.CSizeT) -> t.CSizeT: pass - def cstr(self: Buf) -> t.CChar | t.CPtr: pass - def reset(self: Buf) -> t.CInt: pass - def __enter__(self: Buf) -> 'Buf' | t.CPtr: pass - def __exit__(self: Buf) -> t.CInt: pass - def free(self: Buf) -> t.CInt: pass \ No newline at end of file diff --git a/Test/DictTest/temp/d089e25a15c6f6e0.pyi b/Test/DictTest/temp/d089e25a15c6f6e0.pyi deleted file mode 100644 index 0c5f2cf..0000000 --- a/Test/DictTest/temp/d089e25a15c6f6e0.pyi +++ /dev/null @@ -1,88 +0,0 @@ -""" -Auto-generated Python stub file from memhub.py -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/DictTest/temp/d089e25a15c6f6e0.stub.ll.dep b/Test/DictTest/temp/d089e25a15c6f6e0.stub.ll.dep deleted file mode 100644 index cb41f85..0000000 --- a/Test/DictTest/temp/d089e25a15c6f6e0.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -271ea3decb810db2|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/e0f0afe3caa1e486.stub.ll.dep b/Test/DictTest/temp/e0f0afe3caa1e486.stub.ll.dep index 278cfdd..9399bc1 100644 --- a/Test/DictTest/temp/e0f0afe3caa1e486.stub.ll.dep +++ b/Test/DictTest/temp/e0f0afe3caa1e486.stub.ll.dep @@ -1 +1 @@ -20cd49775c100a38|240a9a4157959a9f|285b6aa29a34754d|6c658cc728d0bbf4|6ddf430432a0e373|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|f9d023d1df2bc9c5|ffaf70367668b227 \ No newline at end of file +04e5fe47ff2af528|20cd49775c100a38|240a9a4157959a9f|285b6aa29a34754d|6c658cc728d0bbf4|6ddf430432a0e373|928c0ff6d8c69ec9|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/e3e7b6de8d7d8b03.pyi b/Test/DictTest/temp/e3e7b6de8d7d8b03.pyi deleted file mode 100644 index ac69b1b..0000000 --- a/Test/DictTest/temp/e3e7b6de8d7d8b03.pyi +++ /dev/null @@ -1,53 +0,0 @@ -""" -Auto-generated Python stub file from _dict.py -Module: _dict -""" - - -import t, c -import memhub -import string -import json -from stdint import * - -VARIANT_NONE: t.CDefine = 0 # 无类型/空值 -VARIANT_INT: t.CDefine = 1 # int (i64) -VARIANT_FLOAT: t.CDefine = 2 # float (f32) -VARIANT_DOUBLE: t.CDefine = 3 # double (f64) -VARIANT_STR: t.CDefine = 4 # str (i8*) -VARIANT_DICT: t.CDefine = 5 # dict* -VARIANT_LIST: t.CDefine = 6 # list* -VARIANT_BOOL: t.CDefine = 7 # bool (i1/i32) -VARIANT_PTR: t.CDefine = 8 # 自定义指针类型 -_VARIANT_SIZE: t.CDefine = 16 - -class dict: - __keys__: t.CPtr - __values__: t.CPtr - __count__: t.CSizeT = 0 - __capacity__: t.CSizeT = 8 - __mbuddy__: memhub.MemBuddy | t.CPtr - __iter_index__: t.CSizeT = 0 - def __new__(self: dict, mb: memhub.MemBuddy | t.CPtr) -> t.CPtr: pass - def __init__(self: dict, mb: memhub.MemBuddy | t.CPtr) -> t.CInt: pass - def __len__(self: dict) -> t.CSizeT: pass - def _find(self: dict, key: str) -> t.CSizeT: pass - def __getitem__(self: dict, key: str) -> t.CPtr: pass - def __setitem__(self: dict, key: str, val: t.CNeedPtr) -> t.CInt: pass - def _set_variant_raw(self: dict, key: str, vtype: t.CInt, ptr: t.CPtr) -> t.CInt: pass - def set_int(self: dict, key: str, val: int) -> t.CInt: pass - def set_str(self: dict, key: str, val: str) -> t.CInt: pass - def set_float(self: dict, key: str, val: float) -> t.CInt: pass - def set_double(self: dict, key: str, val: t.CDouble) -> t.CInt: pass - def set_dict(self: dict, key: str, val: dict | t.CPtr) -> t.CInt: pass - def set_list(self: dict, key: str, val: t.CPtr) -> t.CInt: pass - def set_bool(self: dict, key: str, val: t.CInt) -> t.CInt: pass - def get_vtype(self: dict, key: str) -> t.CInt: pass - def get(self: dict, key: str, default: t.CPtr) -> t.CPtr: pass - def contains(self: dict, key: str) -> t.CInt: pass - def __iter__(self: dict) -> dict | t.CPtr: pass - def __next__(self: dict) -> str: pass - def to_json(self: dict, pool: memhub.MemManager | t.CPtr) -> json.JsonValue | t.CPtr: pass - def from_json(self: dict, pool: memhub.MemManager | t.CPtr, root: json.JsonValue | t.CPtr) -> t.CInt: pass - def dumps(self: dict, pool: memhub.MemManager | t.CPtr) -> str: pass - def loads(self: dict, pool: memhub.MemManager | t.CPtr, json_str: str) -> t.CInt: pass \ No newline at end of file diff --git a/Test/DictTest/temp/e3e7b6de8d7d8b03.stub.ll.dep b/Test/DictTest/temp/e3e7b6de8d7d8b03.stub.ll.dep deleted file mode 100644 index e7be08c..0000000 --- a/Test/DictTest/temp/e3e7b6de8d7d8b03.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -20cd49775c100a38|240a9a4157959a9f|271ea3decb810db2|57288496f7c2d1ad|6f62fe05c5ea1ceb|ba12ed409d78139e|c9f4be41ca1cc2b4|d089e25a15c6f6e0|f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/f5522571bcce7bcb.pyi b/Test/DictTest/temp/f5522571bcce7bcb.pyi deleted file mode 100644 index 106a202..0000000 --- a/Test/DictTest/temp/f5522571bcce7bcb.pyi +++ /dev/null @@ -1,100 +0,0 @@ -""" -Auto-generated Python stub file from stdint.py -Module: stdint -""" - -import c - - -import t - -INT: t.CTypedef = t.CInt -INTPTR: t.CTypedef = t.CInt | t.CPtr -BOOL: t.CTypedef = t.CInt -UINT: t.CTypedef = t.CUnsignedInt -UINTPTR: t.CTypedef = UINT | t.CPtr -BYTE: t.CTypedef = t.CUnsignedChar -BYTEPTR: t.CTypedef = BYTE | t.CPtr -WORD: t.CTypedef = t.CUInt16T -DWORD: t.CTypedef = t.CUInt32T -QWORD: t.CTypedef = t.CUInt64T -TCHAR: t.CTypedef = t.CChar -CHARLIST: t.CTypedef = str | t.CPtr -VOID: t.CTypedef = t.CVoid -SHORT: t.CTypedef = t.CShort -SHORTPTR: t.CTypedef = t.CShort | t.CPtr -USHORT: t.CTypedef = t.CUnsignedShort -USHORTPTR: t.CTypedef = t.CUnsignedShort | t.CPtr -LONGLONG: t.CTypedef = t.CLongLong -ULONGLONG: t.CTypedef = t.CUnsignedLongLong -LONG: t.CTypedef = t.CLong -ULONG: t.CTypedef = t.CUnsignedLong -WCHAR: t.CTypedef = WORD -WCHARPTR: t.CTypedef = WORD | t.CPtr -CHARPTR: t.CTypedef = t.CChar | t.CPtr -FSIZE_t: t.CTypedef = DWORD -LBA_t: t.CTypedef = DWORD -VOIDPTR: t.CTypedef = t.CVoid | t.CPtr -FLOAT: t.CTypedef = t.CFloat -DOUBLE: t.CTypedef = t.CDouble -FLOAT8: t.CTypedef = t.CFloat8T -FLOAT16: t.CTypedef = t.CFloat16T -FLOAT32: t.CTypedef = t.CFloat32T -FLOAT64: t.CTypedef = t.CFloat64T -FLOAT128: t.CTypedef = t.CFloat128T -INT8: t.CTypedef = t.CInt8T -INT16: t.CTypedef = t.CInt16T -INT32: t.CTypedef = t.CInt32T -INT64: t.CTypedef = t.CInt64T -UINT8: t.CTypedef = t.CUInt8T -UINT16: t.CTypedef = t.CUInt16T -UINT32: t.CTypedef = t.CUInt32T -UINT64: t.CTypedef = t.CUInt64T -INT8PTR: t.CTypedef = t.CInt8T | t.CPtr -INT16PTR: t.CTypedef = t.CInt16T | t.CPtr -INT32PTR: t.CTypedef = t.CInt32T | t.CPtr -INT64PTR: t.CTypedef = t.CInt64T | t.CPtr -UINT8PTR: t.CTypedef = t.CUInt8T | t.CPtr -UINT16PTR: t.CTypedef = t.CUInt16T | t.CPtr -UINT32PTR: t.CTypedef = t.CUInt32T | t.CPtr -UINT64PTR: t.CTypedef = t.CUInt64T | t.CPtr -CHAR8: t.CTypedef = t.CChar8T -CHAR16: t.CTypedef = t.CChar16T -CHAR32: t.CTypedef = t.CChar32T -CHAR8PTR: t.CTypedef = t.CChar8T | t.CPtr -CHAR16PTR: t.CTypedef = t.CChar16T | t.CPtr -CHAR32PTR: t.CTypedef = t.CChar32T | t.CPtr -i8: t.CTypedef = t.CInt8T -i16: t.CTypedef = t.CInt16T -i32: t.CTypedef = t.CInt32T -i64: t.CTypedef = t.CInt64T -u8: t.CTypedef = t.CUInt8T -u16: t.CTypedef = t.CUInt16T -u32: t.CTypedef = t.CUInt32T -u64: t.CTypedef = t.CUInt64T -SIZE_T: t.CTypedef = t.CSizeT -SSIZE_T: t.CTypedef = t.CPtrDiffT -PTRDIFF_T: t.CTypedef = t.CPtrDiffT -int8_t: t.CTypedef = t.CInt8T -int16_t: t.CTypedef = t.CInt16T -int32_t: t.CTypedef = t.CInt32T -int64_t: t.CTypedef = t.CInt64T -uint8_t: t.CTypedef = t.CUInt8T -uint16_t: t.CTypedef = t.CUInt16T -uint32_t: t.CTypedef = t.CUInt32T -uint64_t: t.CTypedef = t.CUInt64T -size_t: t.CTypedef = t.CSizeT -ssize_t: t.CTypedef = t.CPtrDiffT -ptrdiff_t: t.CTypedef = t.CPtrDiffT -intptr_t: t.CTypedef = t.CIntPtrT -uintptr_t: t.CTypedef = t.CUIntPtrT -wchar_t: t.CTypedef = t.CWCharT -char8_t: t.CTypedef = t.CChar8T -char16_t: t.CTypedef = t.CChar16T -char32_t: t.CTypedef = t.CChar32T -float8_t: t.CTypedef = t.CFloat8T -float16_t: t.CTypedef = t.CFloat16T -float32_t: t.CTypedef = t.CFloat32T -float64_t: t.CTypedef = t.CFloat64T -float128_t: t.CTypedef = t.CFloat128T -_Bool: t.CTypedef = t.CBool \ No newline at end of file diff --git a/Test/DictTest/temp/f6b51804a0ba8ff0.pyi b/Test/DictTest/temp/f6b51804a0ba8ff0.pyi deleted file mode 100644 index 0036d89..0000000 --- a/Test/DictTest/temp/f6b51804a0ba8ff0.pyi +++ /dev/null @@ -1,192 +0,0 @@ -""" -Auto-generated Python stub file from w32.win32file.py -Module: w32.win32file -""" - -import c - - -import t -from stdint import * -from w32.win32base import * - -GENERIC_READ: t.CDefine = 0x80000000 -GENERIC_WRITE: t.CDefine = 0x40000000 -GENERIC_EXECUTE: t.CDefine = 0x20000000 -GENERIC_ALL: t.CDefine = 0x10000000 -FILE_SHARE_READ: t.CDefine = 0x00000001 -FILE_SHARE_WRITE: t.CDefine = 0x00000002 -FILE_SHARE_DELETE: t.CDefine = 0x00000004 -CREATE_NEW: t.CDefine = 1 -CREATE_ALWAYS: t.CDefine = 2 -OPEN_EXISTING: t.CDefine = 3 -OPEN_ALWAYS: t.CDefine = 4 -TRUNCATE_EXISTING: t.CDefine = 5 -FILE_ATTRIBUTE_READONLY: t.CDefine = 0x00000001 -FILE_ATTRIBUTE_HIDDEN: t.CDefine = 0x00000002 -FILE_ATTRIBUTE_SYSTEM: t.CDefine = 0x00000004 -FILE_ATTRIBUTE_DIRECTORY: t.CDefine = 0x00000010 -FILE_ATTRIBUTE_ARCHIVE: t.CDefine = 0x00000020 -FILE_ATTRIBUTE_NORMAL: t.CDefine = 0x00000080 -FILE_ATTRIBUTE_TEMPORARY: t.CDefine = 0x00000100 -FILE_ATTRIBUTE_COMPRESSED: t.CDefine = 0x00000800 -FILE_ATTRIBUTE_OFFLINE: t.CDefine = 0x00001000 -FILE_ATTRIBUTE_ENCRYPTED: t.CDefine = 0x00004000 -FILE_FLAG_WRITE_THROUGH: t.CDefine = 0x80000000 -FILE_FLAG_OVERLAPPED: t.CDefine = 0x40000000 -FILE_FLAG_NO_BUFFERING: t.CDefine = 0x20000000 -FILE_FLAG_RANDOM_ACCESS: t.CDefine = 0x10000000 -FILE_FLAG_SEQUENTIAL_SCAN: t.CDefine = 0x08000000 -FILE_FLAG_DELETE_ON_CLOSE: t.CDefine = 0x04000000 -FILE_FLAG_BACKUP_SEMANTICS: t.CDefine = 0x02000000 -FILE_FLAG_POSIX_SEMANTICS: t.CDefine = 0x01000000 -FILE_BEGIN: t.CDefine = 0 -FILE_CURRENT: t.CDefine = 1 -FILE_END: t.CDefine = 2 -STD_INPUT_HANDLE: t.CDefine = t.CUnsignedLong(-10) -STD_OUTPUT_HANDLE: t.CDefine = t.CUnsignedLong(-11) -STD_ERROR_HANDLE: t.CDefine = t.CUnsignedLong(-12) -MOVEFILE_REPLACE_EXISTING: t.CDefine = 0x00000001 -MOVEFILE_COPY_ALLOWED: t.CDefine = 0x00000002 -MOVEFILE_WRITE_THROUGH: t.CDefine = 0x00000008 - -class BY_HANDLE_FILE_INFORMATION: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - dwVolumeSerialNumber: ULONG - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - nNumberOfLinks: ULONG - nFileIndexHigh: ULONG - nFileIndexLow: ULONG -class WIN32_FIND_DATAA: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CChar, 260] - cAlternateFileName: t.CArray[t.CChar, 14] -class WIN32_FIND_DATAW: - dwFileAttributes: ULONG - ftCreationTime: FILETIME - ftLastAccessTime: FILETIME - ftLastWriteTime: FILETIME - nFileSizeHigh: ULONG - nFileSizeLow: ULONG - dwReserved0: ULONG - dwReserved1: ULONG - cFileName: t.CArray[t.CUInt16T, 260] - cAlternateFileName: t.CArray[t.CUInt16T, 14] - -def CreateFileA(lpFileName: LPCSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def CreateFileW(lpFileName: LPCWSTR, dwDesiredAccess: ULONG, dwShareMode: ULONG, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr, dwCreationDisposition: ULONG, dwFlagsAndAttributes: ULONG, hTemplateFile: HANDLE) -> HANDLE | t.State: pass - -def ReadFile(hFile: HANDLE, lpBuffer: VOIDPTR, nNumberOfBytesToRead: ULONG, lpNumberOfBytesRead: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def WriteFile(hFile: HANDLE, lpBuffer: t.CConst | VOIDPTR, nNumberOfBytesToWrite: ULONG, lpNumberOfBytesWritten: ULONG | t.CPtr, lpOverlapped: OVERLAPPED | t.CPtr) -> BOOL | t.State: pass - -def SetFilePointer(hFile: HANDLE, lDistanceToMove: LONG, lpDistanceToMoveHigh: LONG | t.CPtr, dwMoveMethod: ULONG) -> LONG | t.State: pass - -def SetFilePointerEx(hFile: HANDLE, liDistanceToMove: LARGE_INTEGER | t.CPtr, lpNewFilePointer: LARGE_INTEGER | t.CPtr, dwMoveMethod: ULONG) -> BOOL | t.State: pass - -def GetFileSize(hFile: HANDLE, lpFileSizeHigh: ULONG | t.CPtr) -> ULONG | t.State: pass - -def GetFileSizeEx(hFile: HANDLE, lpFileSize: LARGE_INTEGER | t.CPtr) -> BOOL | t.State: pass - -def SetEndOfFile(hFile: HANDLE) -> BOOL | t.State: pass - -def FlushFileBuffers(hFile: HANDLE) -> BOOL | t.State: pass - -def GetFileType(hFile: HANDLE) -> ULONG | t.State: pass - -def GetFileAttributesA(lpFileName: LPCSTR) -> ULONG | t.State: pass - -def GetFileAttributesW(lpFileName: LPCWSTR) -> ULONG | t.State: pass - -def SetFileAttributesA(lpFileName: LPCSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def SetFileAttributesW(lpFileName: LPCWSTR, dwFileAttributes: ULONG) -> BOOL | t.State: pass - -def DeleteFileA(lpFileName: LPCSTR) -> BOOL | t.State: pass - -def DeleteFileW(lpFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR) -> BOOL | t.State: pass - -def MoveFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR) -> BOOL | t.State: pass - -def MoveFileExA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def MoveFileExW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: ULONG) -> BOOL | t.State: pass - -def CopyFileA(lpExistingFileName: LPCSTR, lpNewFileName: LPCSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CopyFileW(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, bFailIfExists: BOOL) -> BOOL | t.State: pass - -def CreateDirectoryA(lpPathName: LPCSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def CreateDirectoryW(lpPathName: LPCWSTR, lpSecurityAttributes: SECURITY_ATTRIBUTES | t.CPtr) -> BOOL | t.State: pass - -def RemoveDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def RemoveDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def FindFirstFileA(lpFileName: LPCSTR, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> HANDLE | t.State: pass - -def FindFirstFileW(lpFileName: LPCWSTR, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> HANDLE | t.State: pass - -def FindNextFileA(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAA | t.CPtr) -> BOOL | t.State: pass - -def FindNextFileW(hFindFile: HANDLE, lpFindFileData: WIN32_FIND_DATAW | t.CPtr) -> BOOL | t.State: pass - -def FindClose(hFindFile: HANDLE) -> BOOL | t.State: pass - -def GetStdHandle(nStdHandle: ULONG) -> HANDLE | t.State: pass - -def SetStdHandle(nStdHandle: ULONG, hHandle: HANDLE) -> BOOL | t.State: pass - -def GetFileInformationByHandle(hFile: HANDLE, lpFileInformation: BY_HANDLE_FILE_INFORMATION | t.CPtr) -> BOOL | t.State: pass - -def LockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToLockLow: ULONG, nNumberOfBytesToLockHigh: ULONG) -> BOOL | t.State: pass - -def UnlockFile(hFile: HANDLE, dwFileOffsetLow: ULONG, dwFileOffsetHigh: ULONG, nNumberOfBytesToUnlockLow: ULONG, nNumberOfBytesToUnlockHigh: ULONG) -> BOOL | t.State: pass - -def GetTempPathA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetTempPathW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def GetTempFileNameA(lpPathName: LPCSTR, lpPrefixString: LPCSTR, uUnique: UINT, lpTempFileName: CHARPTR) -> UINT | t.State: pass - -def GetTempFileNameW(lpPathName: LPCWSTR, lpPrefixString: LPCWSTR, uUnique: UINT, lpTempFileName: WCHARPTR) -> UINT | t.State: pass - -def GetCurrentDirectoryA(nBufferLength: ULONG, lpBuffer: CHARPTR) -> ULONG | t.State: pass - -def GetCurrentDirectoryW(nBufferLength: ULONG, lpBuffer: WCHARPTR) -> ULONG | t.State: pass - -def SetCurrentDirectoryA(lpPathName: LPCSTR) -> BOOL | t.State: pass - -def SetCurrentDirectoryW(lpPathName: LPCWSTR) -> BOOL | t.State: pass - -def GetModuleFileNameA(hModule: HANDLE, lpFilename: CHARPTR, nSize: ULONG) -> ULONG | t.State: pass - -def GetModuleFileNameW(hModule: HANDLE, lpFilename: WCHARPTR, nSize: ULONG) -> ULONG | t.State: pass - - -HANDLE_FLAG_INHERIT: t.CDefine = 0x00000001 -HANDLE_FLAG_PROTECT_FROM_CLOSE: t.CDefine = 0x00000002 - -def CreatePipe(hReadPipe: HANDLE | t.CPtr, hWritePipe: HANDLE | t.CPtr, lpPipeAttributes: SECURITY_ATTRIBUTES | t.CPtr, nSize: ULONG) -> BOOL | t.State: pass - -def SetHandleInformation(hObject: HANDLE, dwMask: ULONG, dwFlags: ULONG) -> BOOL | t.State: pass - -def DuplicateHandle(hSourceProcessHandle: HANDLE, hSourceHandle: HANDLE, hTargetProcessHandle: HANDLE, lpTargetHandle: HANDLE | t.CPtr, dwDesiredAccess: ULONG, bInheritHandle: BOOL, dwOptions: ULONG) -> BOOL | t.State: pass - - -DUPLICATE_SAME_ACCESS: t.CDefine = 0x00000002 \ No newline at end of file diff --git a/Test/DictTest/temp/f9d023d1df2bc9c5.stub.ll.dep b/Test/DictTest/temp/f9d023d1df2bc9c5.stub.ll.dep deleted file mode 100644 index 53c42d2..0000000 --- a/Test/DictTest/temp/f9d023d1df2bc9c5.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -285b6aa29a34754d|6c658cc728d0bbf4|aa246c6e6aa30484|c9f4be41ca1cc2b4|f5522571bcce7bcb|ffaf70367668b227 \ No newline at end of file diff --git a/Test/DictTest/temp/f9d023d1df2bc9c5.vpi b/Test/DictTest/temp/f9d023d1df2bc9c5.vpi deleted file mode 100644 index 739df25..0000000 --- a/Test/DictTest/temp/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,99 +0,0 @@ -""" -Auto-generated Python stub file from memhub.vp -Module: memhub -""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib - -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 - -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - - -@t.CVTable -class MemManager: - __provides__: list[str] = ['__memmgr__'] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self: MemManager, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemManager, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemManager, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemManager) -> t.CInt: pass - def calloc(self: MemManager, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self: MemManager, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self: MemManager) -> 'MemManager' | t.CPtr: pass - def __exit__(self: MemManager) -> t.CInt: pass - def alloc_buf(self: MemManager, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self: MemPool, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemPool, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemPool, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemPool) -> t.CInt: pass -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self: MemSlab, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT) -> t.CInt: pass - def alloc(self: MemSlab, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemSlab, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemSlab) -> t.CInt: pass -class MemBuddy(MemManager): - __provides__: list[str] = ['__mbuddy__', '__memmgr__'] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self: MemBuddy, base: t.CVoid | t.CPtr, size: t.CSizeT) -> t.CInt: pass - def mark(self: MemBuddy) -> t.CSizeT: pass - def reset_to(self: MemBuddy, mark: t.CSizeT) -> t.CInt: pass - def reset_all(self: MemBuddy) -> t.CInt: pass - def _fl_push(self: MemBuddy, order: t.CInt, block: t.CVoid | t.CPtr) -> t.CInt: pass - def _fl_pop(self: MemBuddy, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self: MemBuddy, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self: MemBuddy, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self: MemBuddy, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self: MemBuddy, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CInt: pass - def _is_valid_ptr(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self: MemBuddy) -> t.CInt: pass - def _unlock(self: MemBuddy) -> t.CInt: pass - def alloc(self: MemBuddy, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self: MemBuddy, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self: MemBuddy) -> t.CInt: pass - def realloc(self: MemBuddy, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self: MemBuddy) -> t.CSizeT: pass - def stats(self: MemBuddy) -> t.CSizeT: pass - def free_count(self: MemBuddy) -> t.CSizeT: pass - def free_bytes(self: MemBuddy) -> t.CSizeT: pass - def used_bytes(self: MemBuddy) -> t.CSizeT: pass - def dump_stats(self: MemBuddy, label: t.CChar | t.CPtr) -> t.CInt: pass - def self_check(self: MemBuddy) -> t.CInt: pass \ No newline at end of file diff --git a/Test/DictTest/temp/ffaf70367668b227.stub.ll.dep b/Test/DictTest/temp/ffaf70367668b227.stub.ll.dep deleted file mode 100644 index 793e7ed..0000000 --- a/Test/DictTest/temp/ffaf70367668b227.stub.ll.dep +++ /dev/null @@ -1 +0,0 @@ -f5522571bcce7bcb \ No newline at end of file diff --git a/Test/DictTest/temp/ffaf70367668b227.vpi b/Test/DictTest/temp/ffaf70367668b227.vpi deleted file mode 100644 index 73fd3b6..0000000 --- a/Test/DictTest/temp/ffaf70367668b227.vpi +++ /dev/null @@ -1,59 +0,0 @@ -""" -Auto-generated Python stub file from string.vp -Module: string -""" - - -from stdint import * -import t, c - -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str = ' ') -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - - -ascii_lowercase: t.CExtern | str -ascii_uppercase: t.CExtern | str -ascii_letters: t.CExtern | str -digits: t.CExtern | str -hexdigits: t.CExtern | str -octdigits: t.CExtern | str -punctuation: t.CExtern | str -whitespace: t.CExtern | str -printable: t.CExtern | str \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt b/Test/DocTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/DocTest/.tpv_build/temp/0d/0df65b8ed15664b0.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt b/Test/DocTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt deleted file mode 100644 index adaf483..0000000 --- a/Test/DocTest/.tpv_build/temp/19/19f8024d10c828e8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -string t c \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt b/Test/DocTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt deleted file mode 100644 index c76c2b1..0000000 --- a/Test/DocTest/.tpv_build/temp/22/22bc0df83b3f0e62.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string viperlib ast.tokens \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt b/Test/DocTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt deleted file mode 100644 index 789f582..0000000 --- a/Test/DocTest/.tpv_build/temp/2b/2b77d783c41d21d1.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdint \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt b/Test/DocTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt deleted file mode 100644 index c19302e..0000000 --- a/Test/DocTest/.tpv_build/temp/32/32cfd766982bc6e7.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdio t c \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt b/Test/DocTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/DocTest/.tpv_build/temp/43/4337fb260448bbe2.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt b/Test/DocTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/DocTest/.tpv_build/temp/4d/4dd6b3f1427d1cc5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt b/Test/DocTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/DocTest/.tpv_build/temp/65/657e182b27c2a022.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt b/Test/DocTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/DocTest/.tpv_build/temp/6f/6ff26590374ae6fc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/_sha1_map.txt b/Test/DocTest/.tpv_build/temp/_sha1_map.txt index 6893e3d..eabc9df 100644 --- a/Test/DocTest/.tpv_build/temp/_sha1_map.txt +++ b/Test/DocTest/.tpv_build/temp/_sha1_map.txt @@ -2,16 +2,16 @@ aa246c6e6aa30484:includes/atom.vp 6ddf430432a0e373:includes/json/__init__.vp 240a9a4157959a9f:includes/json/__parser.vp 20cd49775c100a38:includes/json/__writer.vp -f9d023d1df2bc9c5:includes/memhub.vp +04e5fe47ff2af528:includes/memhub.vp f5522571bcce7bcb:includes/stdint.vp 285b6aa29a34754d:includes/stdio.vp 6c658cc728d0bbf4:includes/stdlib.vp -ffaf70367668b227:includes/string.vp +928c0ff6d8c69ec9:includes/string.vp 748d0424e8976fa0:includes/testcheck.vp c9f4be41ca1cc2b4:includes/viperio.vp fc980acec33d69a7:includes/w32/win32base.vp bbdf3bbd4c3bc28c:includes/w32/win32console.vp e0f0afe3caa1e486:includes/_dict.vp 7cadfe07e983fd90:includes/_list.vp -b51eec200527c77a:main.vp -11556322964401b7:remote.vp +14a9b576ab5d21c9:main.vp +f26d7266c4f8762b:remote.vp diff --git a/Test/DocTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt b/Test/DocTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt deleted file mode 100644 index 60b345d..0000000 --- a/Test/DocTest/.tpv_build/temp/b3/b370d93b74bf55cc.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c string memhub stdio hashtable \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/b5/b51eec200527c77a.vpi b/Test/DocTest/.tpv_build/temp/b5/b51eec200527c77a.vpi deleted file mode 100644 index fcf5e25..0000000 --- a/Test/DocTest/.tpv_build/temp/b5/b51eec200527c77a.vpi +++ /dev/null @@ -1,28 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t -import stdio -import string -import c -import testcheck -import remote -def local_func() -> int: pass - -def no_doc_func() -> int: pass - -@t.Object -class LocalClass: - value: t.CInt - def local_method(self) -> int: pass - -def _check_doc_adaptive(name: str, doc: str, expected: str): pass - -def _check_doc_null(name: str, doc: str): pass - -def test_local_doc(): pass - -def test_cross_module_doc(): pass - -def main() -> t.CInt: pass - diff --git a/Test/DocTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt b/Test/DocTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt deleted file mode 100644 index 1fb5080..0000000 --- a/Test/DocTest/.tpv_build/temp/b5/b543bc1dfb592119.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.base \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt b/Test/DocTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt deleted file mode 100644 index da1157e..0000000 --- a/Test/DocTest/.tpv_build/temp/b5/b547ac4f380bddb6.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt b/Test/DocTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt deleted file mode 100644 index b092476..0000000 --- a/Test/DocTest/.tpv_build/temp/c9/c9d54a4158f7f5a8.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt b/Test/DocTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt deleted file mode 100644 index 3d26bad..0000000 --- a/Test/DocTest/.tpv_build/temp/de/de3357cb9182715e.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.stmts ast.exprs ast.astaux ast.visitor ast.lexer ast.parser ast.parser \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt b/Test/DocTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt deleted file mode 100644 index 6ede9fe..0000000 --- a/Test/DocTest/.tpv_build/temp/f5/f5d13f1be34f417a.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt b/Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt deleted file mode 100644 index 6803c16..0000000 --- a/Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint string atom viperio stdio stdlib \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi b/Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi deleted file mode 100644 index fb3ad3b..0000000 --- a/Test/DocTest/.tpv_build/temp/f9/f9d023d1df2bc9c5.vpi +++ /dev/null @@ -1,97 +0,0 @@ -"""Auto-generated Python stub file""" - - -import t, c -from stdint import * -import string -import atom -import viperio -import stdio -import stdlib -MEMHUB_ALIGN: t.CDefine = 8 -MEMSLAB_MIN_BLOCK: t.CDefine = 16 -MEMSLAB_BITMAP_BYTES: t.CDefine = 256 -MEMBUDDY_MIN_BLOCK: t.CDefine = 32 -MEMBUDDY_MAX_ORDERS: t.CDefine = 32 -MEMBUDDY_HEADER_SIZE: t.CDefine = 8 -def _align_up(val: t.CSizeT, align: t.CSizeT) -> t.CSizeT: pass - -def _largest_pow2_le(val: t.CSizeT) -> t.CSizeT: pass - -def _block_size_at_order(order: t.CInt) -> t.CSizeT: pass - -@t.CVTable -class MemManager: - __provides__: list[str] - base: t.CVoid | t.CPtr - size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def calloc(self, count: t.CSizeT, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def __enter__(self) -> 'MemManager' | t.CPtr: pass - def __exit__(self): pass - def alloc_buf(self, capacity: t.CSizeT) -> viperio.Buf | t.CPtr: pass - -class MemPool(MemManager): - offset: t.CSizeT - high_water: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemSlab(MemManager): - block_size: t.CSizeT - block_count: t.CSizeT - used_count: t.CSizeT - free_list: t.CVoid | t.CPtr - alloc_map: t.CUInt8T | t.CPtr - alloc_map_size: t.CSizeT - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT, block_size: t.CSizeT): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - -class MemBuddy(MemManager): - __provides__: list[str] - max_order: t.CInt - free_lists: t.CUInt64T | t.CPtr - lock_val: t.CVolatile | t.CInt - usable: t.CVoid | t.CPtr - usable_size: t.CSizeT - chk_stack: t.CUInt64T | t.CPtr - chk_cap: t.CSizeT - chk_depth: t.CSizeT - chk_base: t.CVoid | t.CPtr - def __init__(self, base: t.CVoid | t.CPtr, size: t.CSizeT): pass - def mark(self) -> t.CSizeT: pass - def reset_to(self, mark: t.CSizeT): pass - def reset_all(self): pass - def _fl_push(self, order: t.CInt, block: t.CVoid | t.CPtr): pass - def _fl_pop(self, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _fl_find_and_remove(self, order: t.CInt, target: t.CVoid | t.CPtr) -> t.CInt: pass - def _buddy_of(self, block: t.CVoid | t.CPtr, order: t.CInt) -> t.CVoid | t.CPtr: pass - def _order_for_size(self, size: t.CSizeT) -> t.CInt: pass - def _split_to_order(self, to_order: t.CInt) -> t.CVoid | t.CPtr: pass - def _coalesce(self, block: t.CVoid | t.CPtr, order: t.CInt): pass - def _is_valid_ptr(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def _lock(self): pass - def _unlock(self): pass - def alloc(self, size: t.CSizeT) -> t.CVoid | t.CPtr: pass - def free(self, ptr: t.CVoid | t.CPtr) -> t.CInt: pass - def reset(self) -> t.CInt: pass - def realloc(self, ptr: t.CVoid | t.CPtr, new_size: t.CSizeT) -> t.CVoid | t.CPtr: pass - @property - def mem_size(self) -> t.CSizeT: pass - def stats(self) -> t.CSizeT: pass - def free_count(self) -> t.CSizeT: pass - def free_bytes(self) -> t.CSizeT: pass - def used_bytes(self) -> t.CSizeT: pass - def dump_stats(self, label: t.CChar | t.CPtr): pass - def self_check(self) -> t.CInt: pass - diff --git a/Test/DocTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt b/Test/DocTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt deleted file mode 100644 index 5dd68c7..0000000 --- a/Test/DocTest/.tpv_build/temp/fd/fde6db0747bdd959.deps.txt +++ /dev/null @@ -1 +0,0 @@ -t c stdint memhub string ast.tokens ast.base ast.exprs ast.stmts ast.astaux ast.lexer \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt b/Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt deleted file mode 100644 index 0ec8cde..0000000 --- a/Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.deps.txt +++ /dev/null @@ -1 +0,0 @@ -stdint t c \ No newline at end of file diff --git a/Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.vpi b/Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.vpi deleted file mode 100644 index 2e97004..0000000 --- a/Test/DocTest/.tpv_build/temp/ff/ffaf70367668b227.vpi +++ /dev/null @@ -1,54 +0,0 @@ -"""Auto-generated Python stub file""" - - -from stdint import * -import t, c -def strcpy(dest: str, src: str) -> str: pass - -def strcat(dest: str, src: str) -> str: pass - -def strncpy(dest: str, src: str, n: t.CSizeT) -> str: pass - -def strlen(src: str) -> t.CSizeT | t.CExport: pass - -def strcmp(str1: str, str2: str) -> t.CInt: pass - -def samestr(str1: str, str2: str) -> bool: pass - -def strncmp(str1: str, str2: str, n: t.CSizeT) -> t.CInt: pass - -def memcmp(ptr1: t.CVoid | t.CPtr, ptr2: t.CVoid | t.CPtr, n: t.CSizeT) -> t.CInt: pass - -def strchr(s: str, cr: t.CInt) -> str: pass - -def strrchr(s: str, cr: t.CInt) -> str: pass - -def strstr(s: str, needle: str) -> str: pass - -def strspn(s: str, skip: str) -> int: pass - -def memset(ptr: t.CVoid | t.CPtr, value: t.CInt, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memset32(ptr: t.CVoid | t.CPtr, value: t.CUInt32T, count: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def memcpy(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr | t.CExport: pass - -def memmove(dest: t.CVoid | t.CPtr, src: t.CVoid | t.CPtr, num: t.CSizeT) -> t.CVoid | t.CPtr: pass - -def atoi(src: str) -> t.CInt: pass - -def atoll(src: str) -> t.CInt64T: pass - -def atof(src: str) -> t.CDouble: pass - -def split(s: str, delim: str, result: t.CArray[str]) -> int: pass - -ascii_lowercase: str -ascii_uppercase: str -ascii_letters: str -digits: str -hexdigits: str -octdigits: str -punctuation: str -whitespace: str -printable: str diff --git a/Test/DocTest/output/11556322964401b7.deps.json b/Test/DocTest/output/11556322964401b7.deps.json deleted file mode 100644 index 31b693d..0000000 --- a/Test/DocTest/output/11556322964401b7.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "main": "b51eec200527c77a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file diff --git a/Test/DocTest/output/14a9b576ab5d21c9.deps.json b/Test/DocTest/output/14a9b576ab5d21c9.deps.json index 5e3a33e..0125fe7 100644 --- a/Test/DocTest/output/14a9b576ab5d21c9.deps.json +++ b/Test/DocTest/output/14a9b576ab5d21c9.deps.json @@ -1 +1 @@ -{"testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "remote": "f26d7266c4f8762b", "stdint": "f5522571bcce7bcb"} \ No newline at end of file +{"stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "remote": "f26d7266c4f8762b", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/DocTest/output/14d33679f7fadf1f.deps.json b/Test/DocTest/output/14d33679f7fadf1f.deps.json deleted file mode 100644 index 9848109..0000000 --- a/Test/DocTest/output/14d33679f7fadf1f.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"main": "14a9b576ab5d21c9", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "remote": "f26d7266c4f8762b", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/DocTest/output/748d0424e8976fa0.deps.json b/Test/DocTest/output/748d0424e8976fa0.deps.json index d7b22b1..e702d0a 100644 --- a/Test/DocTest/output/748d0424e8976fa0.deps.json +++ b/Test/DocTest/output/748d0424e8976fa0.deps.json @@ -1 +1 @@ -{"remote": "11556322964401b7", "stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "main": "b51eec200527c77a", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7", "string": "ffaf70367668b227"} \ No newline at end of file +{"main": "14a9b576ab5d21c9", "stdio": "285b6aa29a34754d", "testcheck": "748d0424e8976fa0", "string": "928c0ff6d8c69ec9", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "remote": "f26d7266c4f8762b", "stdint": "f5522571bcce7bcb", "w32.win32base": "fc980acec33d69a7", "win32base": "fc980acec33d69a7"} \ No newline at end of file diff --git a/Test/DocTest/output/7e529fe7a078cfef.deps.json b/Test/DocTest/output/7e529fe7a078cfef.deps.json deleted file mode 100644 index 9848109..0000000 --- a/Test/DocTest/output/7e529fe7a078cfef.deps.json +++ /dev/null @@ -1 +0,0 @@ -{"main": "14a9b576ab5d21c9", "testcheck": "14d33679f7fadf1f", "stdio": "6f62fe05c5ea1ceb", "w32.win32base": "7e529fe7a078cfef", "win32base": "7e529fe7a078cfef", "string": "ba12ed409d78139e", "w32.win32console": "bbdf3bbd4c3bc28c", "win32console": "bbdf3bbd4c3bc28c", "remote": "f26d7266c4f8762b", "stdint": "f5522571bcce7bcb"} \ No newline at end of file diff --git a/Test/DocTest/output/_shared_sym_includes.pickle b/Test/DocTest/output/_shared_sym_includes.pickle index a7f23cf9bb1c418a46e5d0797c53057861151171..61874ca6ce63bf6198b6059138b8a7d18583c37d 100644 GIT binary patch literal 368311 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 z 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 Xyy2pA(`$v-RaxDtz(7#xlafOz7`YJttSUFKj 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 literal 307370 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