chiark / gitweb /
math/: Support EC2OSP and OS2ECP operations, with point compression.
[catacomb] / math / t / ec
index 1dc56abfd24b28f9efee5575e99313dbab9384d9..9b57d6c44208283abd6e9e1199621d2a5390dc3c 100644 (file)
--- a/math/t/ec
+++ b/math/t/ec
@@ -460,3 +460,2526 @@ mul {
     5846006549323611672814741753598448348329118574063
     inf;
 }
+
+ec2osp {
+  ## Some automated tests, from `ec-compr-test.sage'.
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5, 0xb3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d"
+    014a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5, 0xb3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d"
+    034a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5, 0xb3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d"
+    0a4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5, 0xb3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d"
+    044a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f50b3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5, 0xb3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d"
+    074a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f50b3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f5, 0xb3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d"
+    0e4a4edd749b4e809ddf0ecdb0cddd64b64f4558816ef243f50b3cef6f7f891a23d823aa01e96a74a3890cf71f4032d49d;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c, 0x7059e89008cb30c7625a5145ced14a07dede72c7624b6b80"
+    01357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c, 0x7059e89008cb30c7625a5145ced14a07dede72c7624b6b80"
+    02357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c, 0x7059e89008cb30c7625a5145ced14a07dede72c7624b6b80"
+    0a357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c, 0x7059e89008cb30c7625a5145ced14a07dede72c7624b6b80"
+    04357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c7059e89008cb30c7625a5145ced14a07dede72c7624b6b80;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c, 0x7059e89008cb30c7625a5145ced14a07dede72c7624b6b80"
+    06357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c7059e89008cb30c7625a5145ced14a07dede72c7624b6b80;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c, 0x7059e89008cb30c7625a5145ced14a07dede72c7624b6b80"
+    0e357d51a879fc1f08e116365028b0a74d8f1bc7af73b7505c7059e89008cb30c7625a5145ced14a07dede72c7624b6b80;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973, 0xc6818eac29facb3463ca315f319861caa8d6807ddc1d840d"
+    01255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973, 0xc6818eac29facb3463ca315f319861caa8d6807ddc1d840d"
+    03255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973, 0xc6818eac29facb3463ca315f319861caa8d6807ddc1d840d"
+    0b255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973, 0xc6818eac29facb3463ca315f319861caa8d6807ddc1d840d"
+    04255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973c6818eac29facb3463ca315f319861caa8d6807ddc1d840d;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973, 0xc6818eac29facb3463ca315f319861caa8d6807ddc1d840d"
+    07255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973c6818eac29facb3463ca315f319861caa8d6807ddc1d840d;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973, 0xc6818eac29facb3463ca315f319861caa8d6807ddc1d840d"
+    0f255671b281371f7c95167be1aa7ddcf2ebe4442e5b957973c6818eac29facb3463ca315f319861caa8d6807ddc1d840d;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3, 0x31aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe"
+    018ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3, 0x31aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe"
+    028ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3, 0x31aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe"
+    0a8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3, 0x31aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe"
+    048ca5c0a995ef8e777753058364ee5ec70732c666ad0979d331aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3, 0x31aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe"
+    068ca5c0a995ef8e777753058364ee5ec70732c666ad0979d331aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d3, 0x31aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe"
+    0e8ca5c0a995ef8e777753058364ee5ec70732c666ad0979d331aef4dae5f98cc3cc8ce00e45533cd2abef85a7e7b181fe;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x81e77be6a18437bee5694c10b6d93e37181172afc5ac545d, 0xce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65"
+    0181e77be6a18437bee5694c10b6d93e37181172afc5ac545d;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x81e77be6a18437bee5694c10b6d93e37181172afc5ac545d, 0xce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65"
+    0381e77be6a18437bee5694c10b6d93e37181172afc5ac545d;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x81e77be6a18437bee5694c10b6d93e37181172afc5ac545d, 0xce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65"
+    0b81e77be6a18437bee5694c10b6d93e37181172afc5ac545d;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x81e77be6a18437bee5694c10b6d93e37181172afc5ac545d, 0xce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65"
+    0481e77be6a18437bee5694c10b6d93e37181172afc5ac545dce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x81e77be6a18437bee5694c10b6d93e37181172afc5ac545d, 0xce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65"
+    0781e77be6a18437bee5694c10b6d93e37181172afc5ac545dce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x81e77be6a18437bee5694c10b6d93e37181172afc5ac545d, 0xce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65"
+    0f81e77be6a18437bee5694c10b6d93e37181172afc5ac545dce90b00553ef336cb59f214b21c9a9adba24ba9926dcec65;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0x8e3d066daa0462601b2603c220ac97eea1158c91f74028d5, 0x81e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e"
+    018e3d066daa0462601b2603c220ac97eea1158c91f74028d5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0x8e3d066daa0462601b2603c220ac97eea1158c91f74028d5, 0x81e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e"
+    028e3d066daa0462601b2603c220ac97eea1158c91f74028d5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0x8e3d066daa0462601b2603c220ac97eea1158c91f74028d5, 0x81e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e"
+    0b8e3d066daa0462601b2603c220ac97eea1158c91f74028d5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0x8e3d066daa0462601b2603c220ac97eea1158c91f74028d5, 0x81e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e"
+    048e3d066daa0462601b2603c220ac97eea1158c91f74028d581e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0x8e3d066daa0462601b2603c220ac97eea1158c91f74028d5, 0x81e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e"
+    068e3d066daa0462601b2603c220ac97eea1158c91f74028d581e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0x8e3d066daa0462601b2603c220ac97eea1158c91f74028d5, 0x81e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e"
+    0f8e3d066daa0462601b2603c220ac97eea1158c91f74028d581e00ca4e9c7547e6b9d84417038eb1a81f1f74b730e0e1e;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0xbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73, 0xf66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57"
+    01bb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0xbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73, 0xf66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57"
+    03bb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0xbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73, 0xf66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57"
+    0bbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0xbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73, 0xf66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57"
+    04bb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73f66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0xbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73, 0xf66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57"
+    07bb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73f66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0xbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73, 0xf66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57"
+    0fbb74d14118b4dcf9df267e73c55c60c339cf0a83df1ceb73f66ca5b4c9b939a6221c5292a4e8a3127382c9dbf2258e57;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab, 0x891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858"
+    0137bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab, 0x891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858"
+    0237bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab, 0x891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858"
+    0b37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab, 0x891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858"
+    0437bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab, 0x891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858"
+    0637bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab, 0x891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858"
+    0f37bfc6ce47a6fbc14fd8cd77cd15284f0e5708b0ba5ec3ab891e6a87b366fb6046e317f9f7a21f7b65b5519c22af5858;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0xa959703af4d041a6902c197801e88981dc5adc380b576f0, 0xda03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948"
+    010a959703af4d041a6902c197801e88981dc5adc380b576f0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0xa959703af4d041a6902c197801e88981dc5adc380b576f0, 0xda03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948"
+    020a959703af4d041a6902c197801e88981dc5adc380b576f0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0xa959703af4d041a6902c197801e88981dc5adc380b576f0, 0xda03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948"
+    0b0a959703af4d041a6902c197801e88981dc5adc380b576f0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0xa959703af4d041a6902c197801e88981dc5adc380b576f0, 0xda03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948"
+    040a959703af4d041a6902c197801e88981dc5adc380b576f0da03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0xa959703af4d041a6902c197801e88981dc5adc380b576f0, 0xda03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948"
+    060a959703af4d041a6902c197801e88981dc5adc380b576f0da03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0xa959703af4d041a6902c197801e88981dc5adc380b576f0, 0xda03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948"
+    0f0a959703af4d041a6902c197801e88981dc5adc380b576f0da03f3c8c0f372481cd2a7195f42d7f163e07cd66e149948;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x4623a4d719dc7022c1b605509f32a46f3321003cd62c8816, 0x7ecbf132abae0654c76c46118a7a58da2131d18258eec2d3"
+    014623a4d719dc7022c1b605509f32a46f3321003cd62c8816;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x4623a4d719dc7022c1b605509f32a46f3321003cd62c8816, 0x7ecbf132abae0654c76c46118a7a58da2131d18258eec2d3"
+    034623a4d719dc7022c1b605509f32a46f3321003cd62c8816;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x4623a4d719dc7022c1b605509f32a46f3321003cd62c8816, 0x7ecbf132abae0654c76c46118a7a58da2131d18258eec2d3"
+    0a4623a4d719dc7022c1b605509f32a46f3321003cd62c8816;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x4623a4d719dc7022c1b605509f32a46f3321003cd62c8816, 0x7ecbf132abae0654c76c46118a7a58da2131d18258eec2d3"
+    044623a4d719dc7022c1b605509f32a46f3321003cd62c88167ecbf132abae0654c76c46118a7a58da2131d18258eec2d3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x4623a4d719dc7022c1b605509f32a46f3321003cd62c8816, 0x7ecbf132abae0654c76c46118a7a58da2131d18258eec2d3"
+    074623a4d719dc7022c1b605509f32a46f3321003cd62c88167ecbf132abae0654c76c46118a7a58da2131d18258eec2d3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x4623a4d719dc7022c1b605509f32a46f3321003cd62c8816, 0x7ecbf132abae0654c76c46118a7a58da2131d18258eec2d3"
+    0e4623a4d719dc7022c1b605509f32a46f3321003cd62c88167ecbf132abae0654c76c46118a7a58da2131d18258eec2d3;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0xfedded746826e542ca2b081a82915ceb1b9963182d3d58ad, 0x81213af27a8c1ab7da224f7336547415fb60bc26a5676b37"
+    01fedded746826e542ca2b081a82915ceb1b9963182d3d58ad;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0xfedded746826e542ca2b081a82915ceb1b9963182d3d58ad, 0x81213af27a8c1ab7da224f7336547415fb60bc26a5676b37"
+    03fedded746826e542ca2b081a82915ceb1b9963182d3d58ad;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0xfedded746826e542ca2b081a82915ceb1b9963182d3d58ad, 0x81213af27a8c1ab7da224f7336547415fb60bc26a5676b37"
+    0bfedded746826e542ca2b081a82915ceb1b9963182d3d58ad;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0xfedded746826e542ca2b081a82915ceb1b9963182d3d58ad, 0x81213af27a8c1ab7da224f7336547415fb60bc26a5676b37"
+    04fedded746826e542ca2b081a82915ceb1b9963182d3d58ad81213af27a8c1ab7da224f7336547415fb60bc26a5676b37;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0xfedded746826e542ca2b081a82915ceb1b9963182d3d58ad, 0x81213af27a8c1ab7da224f7336547415fb60bc26a5676b37"
+    07fedded746826e542ca2b081a82915ceb1b9963182d3d58ad81213af27a8c1ab7da224f7336547415fb60bc26a5676b37;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0xfedded746826e542ca2b081a82915ceb1b9963182d3d58ad, 0x81213af27a8c1ab7da224f7336547415fb60bc26a5676b37"
+    0ffedded746826e542ca2b081a82915ceb1b9963182d3d58ad81213af27a8c1ab7da224f7336547415fb60bc26a5676b37;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0x28a0eeb675fe29f76971b45079778d5de3d968f93f47050c, 0xbd10cfb1e2417568dbca10f503f52b3e14a0518022492700"
+    0128a0eeb675fe29f76971b45079778d5de3d968f93f47050c;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0x28a0eeb675fe29f76971b45079778d5de3d968f93f47050c, 0xbd10cfb1e2417568dbca10f503f52b3e14a0518022492700"
+    0228a0eeb675fe29f76971b45079778d5de3d968f93f47050c;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0x28a0eeb675fe29f76971b45079778d5de3d968f93f47050c, 0xbd10cfb1e2417568dbca10f503f52b3e14a0518022492700"
+    0b28a0eeb675fe29f76971b45079778d5de3d968f93f47050c;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0x28a0eeb675fe29f76971b45079778d5de3d968f93f47050c, 0xbd10cfb1e2417568dbca10f503f52b3e14a0518022492700"
+    0428a0eeb675fe29f76971b45079778d5de3d968f93f47050cbd10cfb1e2417568dbca10f503f52b3e14a0518022492700;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0x28a0eeb675fe29f76971b45079778d5de3d968f93f47050c, 0xbd10cfb1e2417568dbca10f503f52b3e14a0518022492700"
+    0628a0eeb675fe29f76971b45079778d5de3d968f93f47050cbd10cfb1e2417568dbca10f503f52b3e14a0518022492700;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0x28a0eeb675fe29f76971b45079778d5de3d968f93f47050c, 0xbd10cfb1e2417568dbca10f503f52b3e14a0518022492700"
+    0f28a0eeb675fe29f76971b45079778d5de3d968f93f47050cbd10cfb1e2417568dbca10f503f52b3e14a0518022492700;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0xaaf5b987bceace823569ef388313c5e4449c34392e5f64ef, 0xd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95"
+    01aaf5b987bceace823569ef388313c5e4449c34392e5f64ef;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0xaaf5b987bceace823569ef388313c5e4449c34392e5f64ef, 0xd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95"
+    03aaf5b987bceace823569ef388313c5e4449c34392e5f64ef;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0xaaf5b987bceace823569ef388313c5e4449c34392e5f64ef, 0xd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95"
+    0baaf5b987bceace823569ef388313c5e4449c34392e5f64ef;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0xaaf5b987bceace823569ef388313c5e4449c34392e5f64ef, 0xd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95"
+    04aaf5b987bceace823569ef388313c5e4449c34392e5f64efd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0xaaf5b987bceace823569ef388313c5e4449c34392e5f64ef, 0xd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95"
+    07aaf5b987bceace823569ef388313c5e4449c34392e5f64efd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0xaaf5b987bceace823569ef388313c5e4449c34392e5f64ef, 0xd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95"
+    0faaf5b987bceace823569ef388313c5e4449c34392e5f64efd1fb6ef2c107b0e5df50c1e8e1fbcd1d657270c64df3eb95;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0xc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16, 0xb13d51ea528edf923f5bc2227453fa543605fa269b988cff"
+    01c0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0xc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16, 0xb13d51ea528edf923f5bc2227453fa543605fa269b988cff"
+    03c0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0xc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16, 0xb13d51ea528edf923f5bc2227453fa543605fa269b988cff"
+    0bc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0xc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16, 0xb13d51ea528edf923f5bc2227453fa543605fa269b988cff"
+    04c0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16b13d51ea528edf923f5bc2227453fa543605fa269b988cff;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0xc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16, 0xb13d51ea528edf923f5bc2227453fa543605fa269b988cff"
+    07c0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16b13d51ea528edf923f5bc2227453fa543605fa269b988cff;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0xc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16, 0xb13d51ea528edf923f5bc2227453fa543605fa269b988cff"
+    0fc0bc160264bbfa1a8c0287e593de6636abeaa4abea4a3c16b13d51ea528edf923f5bc2227453fa543605fa269b988cff;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0x8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4, 0x9a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88"
+    018d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0x8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4, 0x9a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88"
+    028d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0x8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4, 0x9a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88"
+    0b8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0x8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4, 0x9a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88"
+    048d28805d0f539dea575b2f1a7b6713984a9725deadccd4c49a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0x8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4, 0x9a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88"
+    068d28805d0f539dea575b2f1a7b6713984a9725deadccd4c49a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0x8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c4, 0x9a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88"
+    0f8d28805d0f539dea575b2f1a7b6713984a9725deadccd4c49a3c63546b326fab597a7ba634cc4d81c23e51b9db4caa88;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0x30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7, 0xb4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc"
+    0130c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0x30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7, 0xb4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc"
+    0230c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0x30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7, 0xb4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc"
+    0b30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0x30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7, 0xb4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc"
+    0430c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7b4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0x30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7, 0xb4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc"
+    0630c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7b4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0x30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7, 0xb4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc"
+    0f30c1009254a80c9e19814c3a8cb949b3a7913d59c8ff38d7b4fbfc5d1c97fa3c7181998c89121f3bf3272499a4419abc;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0xfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6, 0x8663021171c4a6476715bfe479d338dfb5eb631780371c2f"
+    01fed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0xfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6, 0x8663021171c4a6476715bfe479d338dfb5eb631780371c2f"
+    03fed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0xfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6, 0x8663021171c4a6476715bfe479d338dfb5eb631780371c2f"
+    0bfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0xfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6, 0x8663021171c4a6476715bfe479d338dfb5eb631780371c2f"
+    04fed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e68663021171c4a6476715bfe479d338dfb5eb631780371c2f;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0xfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6, 0x8663021171c4a6476715bfe479d338dfb5eb631780371c2f"
+    07fed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e68663021171c4a6476715bfe479d338dfb5eb631780371c2f;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0xfed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e6, 0x8663021171c4a6476715bfe479d338dfb5eb631780371c2f"
+    0ffed74b21991dfc2b65a0d1ed84ae2735c095274fd35090e68663021171c4a6476715bfe479d338dfb5eb631780371c2f;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0xf45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497, 0x7ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e"
+    01f45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0xf45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497, 0x7ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e"
+    02f45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0xf45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497, 0x7ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e"
+    0af45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0xf45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497, 0x7ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e"
+    04f45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d4977ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0xf45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497, 0x7ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e"
+    06f45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d4977ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0xf45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d497, 0x7ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e"
+    0ef45a53f35a9f363eb6aa5e44a0e55aae7e88a42d5350d4977ac2f5d8ef0aa9dd362eaef5f67ff607cadd77f6e0f3726e;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0xa659b529801dd95fa02b818ce706968df366f006ff46f01b, 0x57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16"
+    01a659b529801dd95fa02b818ce706968df366f006ff46f01b;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0xa659b529801dd95fa02b818ce706968df366f006ff46f01b, 0x57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16"
+    02a659b529801dd95fa02b818ce706968df366f006ff46f01b;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0xa659b529801dd95fa02b818ce706968df366f006ff46f01b, 0x57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16"
+    0aa659b529801dd95fa02b818ce706968df366f006ff46f01b;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0xa659b529801dd95fa02b818ce706968df366f006ff46f01b, 0x57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16"
+    04a659b529801dd95fa02b818ce706968df366f006ff46f01b57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0xa659b529801dd95fa02b818ce706968df366f006ff46f01b, 0x57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16"
+    06a659b529801dd95fa02b818ce706968df366f006ff46f01b57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0xa659b529801dd95fa02b818ce706968df366f006ff46f01b, 0x57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16"
+    0ea659b529801dd95fa02b818ce706968df366f006ff46f01b57bf03e04a71ee66fa32e2ac02464bb190c278adfa6aae16;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1 "0xd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655, 0x9b9a1fe9f00c30025f66721db612035b953dca319b1f0438"
+    01d73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2 "0xd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655, 0x9b9a1fe9f00c30025f66721db612035b953dca319b1f0438"
+    02d73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    10 "0xd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655, 0x9b9a1fe9f00c30025f66721db612035b953dca319b1f0438"
+    0bd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4 "0xd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655, 0x9b9a1fe9f00c30025f66721db612035b953dca319b1f0438"
+    04d73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e86559b9a1fe9f00c30025f66721db612035b953dca319b1f0438;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6 "0xd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655, 0x9b9a1fe9f00c30025f66721db612035b953dca319b1f0438"
+    06d73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e86559b9a1fe9f00c30025f66721db612035b953dca319b1f0438;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    14 "0xd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e8655, 0x9b9a1fe9f00c30025f66721db612035b953dca319b1f0438"
+    0fd73c1dfe6a0566e157dd477c364d1ddb7f1ac945742e86559b9a1fe9f00c30025f66721db612035b953dca319b1f0438;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    01cdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    02cdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    10 "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    0acdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    04cdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a000000000000000000000000000000000000000000000000;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    06cdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a000000000000000000000000000000000000000000000000;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    0ecdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a000000000000000000000000000000000000000000000000;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895, 0x739991100f0cd80ae4be4459374688cc2295a7c4dd65606a"
+    014343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895, 0x739991100f0cd80ae4be4459374688cc2295a7c4dd65606a"
+    034343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895, 0x739991100f0cd80ae4be4459374688cc2295a7c4dd65606a"
+    0b4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895, 0x739991100f0cd80ae4be4459374688cc2295a7c4dd65606a"
+    044343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895739991100f0cd80ae4be4459374688cc2295a7c4dd65606a;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895, 0x739991100f0cd80ae4be4459374688cc2295a7c4dd65606a"
+    074343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895739991100f0cd80ae4be4459374688cc2295a7c4dd65606a;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895, 0x739991100f0cd80ae4be4459374688cc2295a7c4dd65606a"
+    0f4343aeb469f003cec07b93cfb49b4ba3c242f3481d2de895739991100f0cd80ae4be4459374688cc2295a7c4dd65606a;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35, 0x1cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf"
+    015657071b2de1bd5801a7394f8eab5f46638015c8ab667d35;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35, 0x1cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf"
+    025657071b2de1bd5801a7394f8eab5f46638015c8ab667d35;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35, 0x1cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf"
+    0a5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35, 0x1cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf"
+    045657071b2de1bd5801a7394f8eab5f46638015c8ab667d3501cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35, 0x1cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf"
+    065657071b2de1bd5801a7394f8eab5f46638015c8ab667d3501cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x5657071b2de1bd5801a7394f8eab5f46638015c8ab667d35, 0x1cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf"
+    0e5657071b2de1bd5801a7394f8eab5f46638015c8ab667d3501cf9730b3d828d67ec7a1253cdb5bd610543a7fc1c274cf;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0x64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063, 0x790e8c70f3914c18ee6af84789ea4f03744202f8a379046c"
+    0164e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0x64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063, 0x790e8c70f3914c18ee6af84789ea4f03744202f8a379046c"
+    0264e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0x64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063, 0x790e8c70f3914c18ee6af84789ea4f03744202f8a379046c"
+    0b64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0x64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063, 0x790e8c70f3914c18ee6af84789ea4f03744202f8a379046c"
+    0464e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063790e8c70f3914c18ee6af84789ea4f03744202f8a379046c;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0x64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063, 0x790e8c70f3914c18ee6af84789ea4f03744202f8a379046c"
+    0664e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063790e8c70f3914c18ee6af84789ea4f03744202f8a379046c;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0x64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063, 0x790e8c70f3914c18ee6af84789ea4f03744202f8a379046c"
+    0f64e1b37a072d12e046d1aa025ea3f7de15dfd1a2f9fff063790e8c70f3914c18ee6af84789ea4f03744202f8a379046c;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x541b14ee7b6511e0668c93cdd07a8314095557864083d1b6, 0x3e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49"
+    01541b14ee7b6511e0668c93cdd07a8314095557864083d1b6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x541b14ee7b6511e0668c93cdd07a8314095557864083d1b6, 0x3e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49"
+    02541b14ee7b6511e0668c93cdd07a8314095557864083d1b6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x541b14ee7b6511e0668c93cdd07a8314095557864083d1b6, 0x3e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49"
+    0a541b14ee7b6511e0668c93cdd07a8314095557864083d1b6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x541b14ee7b6511e0668c93cdd07a8314095557864083d1b6, 0x3e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49"
+    04541b14ee7b6511e0668c93cdd07a8314095557864083d1b63e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x541b14ee7b6511e0668c93cdd07a8314095557864083d1b6, 0x3e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49"
+    06541b14ee7b6511e0668c93cdd07a8314095557864083d1b63e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x541b14ee7b6511e0668c93cdd07a8314095557864083d1b6, 0x3e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49"
+    0e541b14ee7b6511e0668c93cdd07a8314095557864083d1b63e9e7df6e64439fc956345f8cb9d7786f4dd3552c51b6f49;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f, 0x4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509"
+    012411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f, 0x4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509"
+    022411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f, 0x4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509"
+    0a2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f, 0x4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509"
+    042411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f, 0x4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509"
+    062411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f, 0x4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509"
+    0e2411459ff8923241c82d741f0e481c4a5841bbf4f4ec611f4b05f8ca340830dfe6c1ef0e14ebaba2f9060a297b0fc509;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13, 0x1f179dcb0f081e292477629556386538450535bb8bf90ed8"
+    017aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13, 0x1f179dcb0f081e292477629556386538450535bb8bf90ed8"
+    037aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13, 0x1f179dcb0f081e292477629556386538450535bb8bf90ed8"
+    0a7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13, 0x1f179dcb0f081e292477629556386538450535bb8bf90ed8"
+    047aa7fff05e605a0ce8762d1995a32002f649eae619d3fb131f179dcb0f081e292477629556386538450535bb8bf90ed8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13, 0x1f179dcb0f081e292477629556386538450535bb8bf90ed8"
+    077aa7fff05e605a0ce8762d1995a32002f649eae619d3fb131f179dcb0f081e292477629556386538450535bb8bf90ed8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb13, 0x1f179dcb0f081e292477629556386538450535bb8bf90ed8"
+    0e7aa7fff05e605a0ce8762d1995a32002f649eae619d3fb131f179dcb0f081e292477629556386538450535bb8bf90ed8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01, 0x50582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e"
+    0120a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01, 0x50582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e"
+    0320a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01, 0x50582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e"
+    0a20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01, 0x50582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e"
+    0420a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea0150582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01, 0x50582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e"
+    0720a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea0150582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea01, 0x50582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e"
+    0e20a8c8bf0d1a18d848879cc2b74babc9cfae943300a7ea0150582e19e34fb01dd4d071ee43a1a3273f34843de09ed41e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46, 0x3e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a"
+    011f37333026d4274b4c0401e10d24270ab98d49904a2d4a46;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46, 0x3e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a"
+    021f37333026d4274b4c0401e10d24270ab98d49904a2d4a46;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46, 0x3e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a"
+    0b1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46, 0x3e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a"
+    041f37333026d4274b4c0401e10d24270ab98d49904a2d4a463e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46, 0x3e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a"
+    061f37333026d4274b4c0401e10d24270ab98d49904a2d4a463e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x1f37333026d4274b4c0401e10d24270ab98d49904a2d4a46, 0x3e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a"
+    0f1f37333026d4274b4c0401e10d24270ab98d49904a2d4a463e598cd0612ca1f7554012eef6036f487e21f5dcce8b8c9a;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e, 0x373c5bbe1722c0e57f21549e33c0718452850da146af3ccc"
+    011e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e, 0x373c5bbe1722c0e57f21549e33c0718452850da146af3ccc"
+    031e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e, 0x373c5bbe1722c0e57f21549e33c0718452850da146af3ccc"
+    0b1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e, 0x373c5bbe1722c0e57f21549e33c0718452850da146af3ccc"
+    041e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e373c5bbe1722c0e57f21549e33c0718452850da146af3ccc;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e, 0x373c5bbe1722c0e57f21549e33c0718452850da146af3ccc"
+    071e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e373c5bbe1722c0e57f21549e33c0718452850da146af3ccc;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e, 0x373c5bbe1722c0e57f21549e33c0718452850da146af3ccc"
+    0f1e49a7bd97ebf1eb5f5baef6525c73156518fe6f61c6201e373c5bbe1722c0e57f21549e33c0718452850da146af3ccc;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0x778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310, 0x4e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d"
+    01778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0x778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310, 0x4e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d"
+    03778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0x778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310, 0x4e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d"
+    0b778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0x778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310, 0x4e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d"
+    04778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b3104e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0x778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310, 0x4e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d"
+    07778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b3104e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0x778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b310, 0x4e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d"
+    0f778f1f35c3d626b92bf5431f1f4b8ff58e55f4d928e0b3104e8ccb18a22d51bcdeeb09c684bad19818d1fc0296493f1d;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0x55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8, 0x1300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97"
+    0155b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0x55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8, 0x1300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97"
+    0355b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0x55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8, 0x1300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97"
+    0a55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0x55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8, 0x1300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97"
+    0455b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed81300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0x55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8, 0x1300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97"
+    0755b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed81300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0x55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed8, 0x1300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97"
+    0e55b1efc9de4a137b8b1d029df401e61b0ce1eb7b0ea5fed81300fb7ee8bd6abaadc35d2ebab7cc1d7a9a3e51c51a4b97;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x4096fd47fd83815c62d39189391813d30757d22eeff22c58, 0x20c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e"
+    014096fd47fd83815c62d39189391813d30757d22eeff22c58;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x4096fd47fd83815c62d39189391813d30757d22eeff22c58, 0x20c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e"
+    034096fd47fd83815c62d39189391813d30757d22eeff22c58;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x4096fd47fd83815c62d39189391813d30757d22eeff22c58, 0x20c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e"
+    0a4096fd47fd83815c62d39189391813d30757d22eeff22c58;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x4096fd47fd83815c62d39189391813d30757d22eeff22c58, 0x20c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e"
+    044096fd47fd83815c62d39189391813d30757d22eeff22c5820c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x4096fd47fd83815c62d39189391813d30757d22eeff22c58, 0x20c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e"
+    074096fd47fd83815c62d39189391813d30757d22eeff22c5820c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x4096fd47fd83815c62d39189391813d30757d22eeff22c58, 0x20c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e"
+    0e4096fd47fd83815c62d39189391813d30757d22eeff22c5820c650b7df0b5020613d01add02cb8ac12ba4b535e7ec20e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0x19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1, 0x7a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee"
+    0119391bbb8ba770803ab78120041b4f93df342a4fa0b211f1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0x19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1, 0x7a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee"
+    0319391bbb8ba770803ab78120041b4f93df342a4fa0b211f1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0x19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1, 0x7a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee"
+    0b19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0x19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1, 0x7a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee"
+    0419391bbb8ba770803ab78120041b4f93df342a4fa0b211f17a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0x19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1, 0x7a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee"
+    0719391bbb8ba770803ab78120041b4f93df342a4fa0b211f17a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0x19391bbb8ba770803ab78120041b4f93df342a4fa0b211f1, 0x7a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee"
+    0f19391bbb8ba770803ab78120041b4f93df342a4fa0b211f17a48fef3d594f699fdde633a54fa8a1a5bb5d4bf74eb3eee;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0x5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145, 0x1c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7"
+    015c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0x5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145, 0x1c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7"
+    025c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0x5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145, 0x1c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7"
+    0a5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0x5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145, 0x1c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7"
+    045c39aacd95a92a49568683996b36a97a4a48dd5d4c2df1451c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0x5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145, 0x1c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7"
+    065c39aacd95a92a49568683996b36a97a4a48dd5d4c2df1451c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0x5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df145, 0x1c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7"
+    0e5c39aacd95a92a49568683996b36a97a4a48dd5d4c2df1451c7884ec55df4c32b7a6ad44ca2d2d7fb85d13165cf6f1b7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x36e17de09989a68c460e8037061e6d50ba39e636437f2a0e, 0x519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43"
+    0136e17de09989a68c460e8037061e6d50ba39e636437f2a0e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x36e17de09989a68c460e8037061e6d50ba39e636437f2a0e, 0x519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43"
+    0336e17de09989a68c460e8037061e6d50ba39e636437f2a0e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x36e17de09989a68c460e8037061e6d50ba39e636437f2a0e, 0x519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43"
+    0a36e17de09989a68c460e8037061e6d50ba39e636437f2a0e;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x36e17de09989a68c460e8037061e6d50ba39e636437f2a0e, 0x519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43"
+    0436e17de09989a68c460e8037061e6d50ba39e636437f2a0e519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x36e17de09989a68c460e8037061e6d50ba39e636437f2a0e, 0x519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43"
+    0736e17de09989a68c460e8037061e6d50ba39e636437f2a0e519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x36e17de09989a68c460e8037061e6d50ba39e636437f2a0e, 0x519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43"
+    0e36e17de09989a68c460e8037061e6d50ba39e636437f2a0e519d1ca5741cbd2094e4da11690a9f9becf7fc2be3d90f43;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0xe5ae49c08857f870df660ecea0daf49a954add38b2bc360, 0x4ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c"
+    010e5ae49c08857f870df660ecea0daf49a954add38b2bc360;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0xe5ae49c08857f870df660ecea0daf49a954add38b2bc360, 0x4ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c"
+    020e5ae49c08857f870df660ecea0daf49a954add38b2bc360;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0xe5ae49c08857f870df660ecea0daf49a954add38b2bc360, 0x4ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c"
+    0a0e5ae49c08857f870df660ecea0daf49a954add38b2bc360;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0xe5ae49c08857f870df660ecea0daf49a954add38b2bc360, 0x4ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c"
+    040e5ae49c08857f870df660ecea0daf49a954add38b2bc36004ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0xe5ae49c08857f870df660ecea0daf49a954add38b2bc360, 0x4ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c"
+    060e5ae49c08857f870df660ecea0daf49a954add38b2bc36004ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0xe5ae49c08857f870df660ecea0daf49a954add38b2bc360, 0x4ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c"
+    0e0e5ae49c08857f870df660ecea0daf49a954add38b2bc36004ffb1a65b46e7a786c06dc147bb3584bd7d5478a658dc9c;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0x6e04125f2dc2365aefa92730915381931b078cedbf629e05, 0x47490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f"
+    016e04125f2dc2365aefa92730915381931b078cedbf629e05;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0x6e04125f2dc2365aefa92730915381931b078cedbf629e05, 0x47490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f"
+    036e04125f2dc2365aefa92730915381931b078cedbf629e05;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0x6e04125f2dc2365aefa92730915381931b078cedbf629e05, 0x47490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f"
+    0b6e04125f2dc2365aefa92730915381931b078cedbf629e05;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0x6e04125f2dc2365aefa92730915381931b078cedbf629e05, 0x47490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f"
+    046e04125f2dc2365aefa92730915381931b078cedbf629e0547490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0x6e04125f2dc2365aefa92730915381931b078cedbf629e05, 0x47490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f"
+    076e04125f2dc2365aefa92730915381931b078cedbf629e0547490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0x6e04125f2dc2365aefa92730915381931b078cedbf629e05, 0x47490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f"
+    0f6e04125f2dc2365aefa92730915381931b078cedbf629e0547490d0ed8641541332d5d4ab3ce5b524e9f9357dab4693f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76, 0x4932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0"
+    015c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76, 0x4932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0"
+    025c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76, 0x4932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0"
+    0b5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76, 0x4932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0"
+    045c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e764932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76, 0x4932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0"
+    065c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e764932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e76, 0x4932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0"
+    0f5c4c6b5bdd62fb20bafaedabb4d97ed468e95cbc3dfd5e764932a0e1b6d970ea2a61a7ed2cc2a7fa638ffea834fee0a0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f, 0x1a57e78331521a137f4d1c43365b6aee3175b0005a81d213"
+    016a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f, 0x1a57e78331521a137f4d1c43365b6aee3175b0005a81d213"
+    026a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f, 0x1a57e78331521a137f4d1c43365b6aee3175b0005a81d213"
+    0a6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f, 0x1a57e78331521a137f4d1c43365b6aee3175b0005a81d213"
+    046a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f1a57e78331521a137f4d1c43365b6aee3175b0005a81d213;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f, 0x1a57e78331521a137f4d1c43365b6aee3175b0005a81d213"
+    066a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f1a57e78331521a137f4d1c43365b6aee3175b0005a81d213;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f, 0x1a57e78331521a137f4d1c43365b6aee3175b0005a81d213"
+    0e6a360d5e7ecfddcf0a9e559084a5449ee6d6af987fc0143f1a57e78331521a137f4d1c43365b6aee3175b0005a81d213;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1 "0x157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717, 0x3adcce30cceea003b91178b3508c445fdc3533dc5b687c08"
+    01157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2 "0x157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717, 0x3adcce30cceea003b91178b3508c445fdc3533dc5b687c08"
+    02157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    10 "0x157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717, 0x3adcce30cceea003b91178b3508c445fdc3533dc5b687c08"
+    0b157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4 "0x157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717, 0x3adcce30cceea003b91178b3508c445fdc3533dc5b687c08"
+    04157dd5cf6e5569889fd2134a43ec65d9577ee52f163047173adcce30cceea003b91178b3508c445fdc3533dc5b687c08;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6 "0x157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717, 0x3adcce30cceea003b91178b3508c445fdc3533dc5b687c08"
+    06157dd5cf6e5569889fd2134a43ec65d9577ee52f163047173adcce30cceea003b91178b3508c445fdc3533dc5b687c08;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    14 "0x157dd5cf6e5569889fd2134a43ec65d9577ee52f16304717, 0x3adcce30cceea003b91178b3508c445fdc3533dc5b687c08"
+    0f157dd5cf6e5569889fd2134a43ec65d9577ee52f163047173adcce30cceea003b91178b3508c445fdc3533dc5b687c08;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1 "0, 1"
+    01000000000000000000000000000000000000000000000000;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2 "0, 1"
+    02000000000000000000000000000000000000000000000000;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    10 "0, 1"
+    0a000000000000000000000000000000000000000000000000;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4 "0, 1"
+    04000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6 "0, 1"
+    06000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    14 "0, 1"
+    0e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001;
+}
+
+os2ecp {
+  "prime: 6277101735386680763835789423207666416083908700390324961279
+     prime: -3, 0x64210519e59c80e70fa7e9ab72243049feb8deecc146b9b1"
+     4 00ff inf 1;
+
+  ## Mismatch between flags and descriptor.
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 01694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe" 0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    14 01694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    FAIL -1;
+
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 02694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe" 0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    13 02694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    FAIL -1;
+
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8 0b694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0xdbe90f3a724a9c3e14175447c5266d2156c8206088aa8915" 0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    7 0b694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    FAIL -1;
+
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 04694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe" 0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    11 04694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe
+    FAIL -1;
+
+  ## (The hybrid forms require /all/ of the applicable flag bits to be set.)
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 06694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe" 0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    13 06694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    11 06694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe
+    FAIL -1;
+
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12 0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad29edbe90f3a724a9c3e14175447c5266d2156c8206088aa8915
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0xdbe90f3a724a9c3e14175447c5266d2156c8206088aa8915" 0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    11 0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad29edbe90f3a724a9c3e14175447c5266d2156c8206088aa8915
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    7 0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad29edbe90f3a724a9c3e14175447c5266d2156c8206088aa8915
+    FAIL -1;
+
+  ## Truncated inputs.
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1 01694f1d5405eaa694093ce90cd20f4452407cec983f2ad2
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2 02694f1d5405eaa694093ce90cd20f4452407cec983f2ad2
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 04694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4 04694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 06694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 06694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6 06694f1d5405eaa694093ce90cd20f4452407cec983f2ad2
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8 0b694f1d5405eaa694093ce90cd20f4452407cec983f2ad2
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12 0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad29edbe90f3a724a9c3e14175447c5266d2156c8206088aa89
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12 0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    FAIL -1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12 0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad2
+    FAIL -1;
+
+  ## Some automated tests, from `ec-compr-test.sage'.
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe"
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe30ab74acfcf2dddd34313b2620
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    02694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e902745d7
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe"
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fea4bcedf53b
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe"
+    5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe64c00c7867fe5609e164490ba8
+    FAIL
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0a694f1d5405eaa694093ce90cd20f4452407cec983f2ad29ed981506b80ec547661eee31c
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe"
+    12;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0e694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fef4dcc0773b4ffc
+    "0x694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e, 0x2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe"
+    7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0f694f1d5405eaa694093ce90cd20f4452407cec983f2ad29e2416f0c58db563c1ebe8abb83ad992dea937df9f775575fe269df3156c6676
+    FAIL
+    7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01a83e44fff520fa2a241e771371330957a439af1b0736098b4cccb20d9ae7e18ec1a3
+    "0xa83e44fff520fa2a241e771371330957a439af1b0736098b, 0x1db7040ca8c00351e34b9da93d4ca6f46ac51d6713e7f74d"
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04a83e44fff520fa2a241e771371330957a439af1b0736098be248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c68c31b084e289
+    "0xa83e44fff520fa2a241e771371330957a439af1b0736098b, 0xe248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6"
+    6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    02a83e44fff520fa2a241e771371330957a439af1b0736098b8ed890
+    "0xa83e44fff520fa2a241e771371330957a439af1b0736098b, 0xe248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06a83e44fff520fa2a241e771371330957a439af1b0736098be248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6e26ab73e6537512ca8e5
+    "0xa83e44fff520fa2a241e771371330957a439af1b0736098b, 0xe248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6"
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07a83e44fff520fa2a241e771371330957a439af1b0736098be248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6b958ca
+    FAIL
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0ba83e44fff520fa2a241e771371330957a439af1b0736098b47c5c1b979acd9f653f582b26d
+    "0xa83e44fff520fa2a241e771371330957a439af1b0736098b, 0xe248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0fa83e44fff520fa2a241e771371330957a439af1b0736098be248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c65c
+    "0xa83e44fff520fa2a241e771371330957a439af1b0736098b, 0xe248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c6"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ea83e44fff520fa2a241e771371330957a439af1b0736098be248fbf3573ffcae1cb46256c2b3590b953ae298ec1807c600
+    FAIL
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01a5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834c865832d6bf0281080
+    "0xa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834, 0x50f9eef6f3fcad11c5607caf554ffd29f24027bec6e7efa6"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04a5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834af0611090c0352ee3a9f8350aab002d60dbfd84139180f6d0c
+    "0xa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834, 0xaf0611090c0352ee3a9f8350aab002d60dbfd84139180f6d"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    03a5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea83430b0d7
+    "0xa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834, 0xaf0611090c0352ee3a9f8350aab002d60dbfd84139180f6d"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07a5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834af0611090c0352ee3a9f8350aab002d60dbfd84139180f6d71a5d517693bdcd4d9
+    "0xa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834, 0xaf0611090c0352ee3a9f8350aab002d60dbfd84139180f6d"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06a5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834af0611090c0352ee3a9f8350aab002d60dbfd84139180f6d5a279aafee67d44c04fb
+    FAIL
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0ba5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834c486
+    "0xa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834, 0xaf0611090c0352ee3a9f8350aab002d60dbfd84139180f6d"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0fa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834af0611090c0352ee3a9f8350aab002d60dbfd84139180f6dca40806b95f8f1eeac69
+    "0xa5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834, 0xaf0611090c0352ee3a9f8350aab002d60dbfd84139180f6d"
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ea5b404e72d3b83af5bc9ad477bd6cad966ecd19efabea834af0611090c0352ee3a9f8350aab002d60dbfd84139180f6de8f05a09
+    FAIL
+    4;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    017c34105e5f122b21f5591b996d7d688d99be3997e3c0649376cb9c6fb755fe720d066d
+    "0x7c34105e5f122b21f5591b996d7d688d99be3997e3c06493, 0x289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9"
+    11;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    047c34105e5f122b21f5591b996d7d688d99be3997e3c06493289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9c0d4fe238cacef92c0
+    "0x7c34105e5f122b21f5591b996d7d688d99be3997e3c06493, 0x289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9"
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    037c34105e5f122b21f5591b996d7d688d99be3997e3c06493
+    "0x7c34105e5f122b21f5591b996d7d688d99be3997e3c06493, 0x289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9"
+    0;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    077c34105e5f122b21f5591b996d7d688d99be3997e3c06493289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff91ad71e63007a32b5
+    "0x7c34105e5f122b21f5591b996d7d688d99be3997e3c06493, 0x289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9"
+    8;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    067c34105e5f122b21f5591b996d7d688d99be3997e3c06493289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9f28ef5c42fdd1ec8c4
+    FAIL
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0a7c34105e5f122b21f5591b996d7d688d99be3997e3c064938c02448973b55d5e20aadb57
+    "0x7c34105e5f122b21f5591b996d7d688d99be3997e3c06493, 0x289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9"
+    12;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0e7c34105e5f122b21f5591b996d7d688d99be3997e3c06493289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff98444
+    "0x7c34105e5f122b21f5591b996d7d688d99be3997e3c06493, 0x289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff9"
+    2;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0f7c34105e5f122b21f5591b996d7d688d99be3997e3c06493289d5b2e8b647e023d83d0a57cae8729758cd49004d2aff90f294d8cb7
+    FAIL
+    5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01f5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d5a15efe5bef116ce56c2
+    "0xf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d, 0x73e62494a7091acee4f1dfc658f4f7894ed94669fc42bac5"
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04f5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e9d9d29aa
+    "0xf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d, 0x8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e"
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    02f5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d401a38d8acea447c3d498da6
+    "0xf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d, 0x8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e"
+    12;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06f5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444eaa1dba
+    "0xf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d, 0x8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07f5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e7cac128ce187ce1d8a
+    FAIL
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0bf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d834c9a51a3be6b051d0611
+    "0xf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d, 0x8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e"
+    11;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ff5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e7c674eaed42a60283ed840746f
+    "0xf5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d, 0x8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ef5d56fd888a0f08841eee7d156f4a91d07a3f2d5c6f3f44d8c19db6b58f6e5311b0e2039a70b0876b126b99603bd444e092c2d2a5f4e653318b53f
+    FAIL
+    11;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    01dc46619f909961b2eae36c1935136d7c9e53741a63a448f818efba0f81bca1862867969187
+    "0xdc46619f909961b2eae36c1935136d7c9e53741a63a448f8, 0x77d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    04dc46619f909961b2eae36c1935136d7c9e53741a63a448f877d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1ebc7708d
+    "0xdc46619f909961b2eae36c1935136d7c9e53741a63a448f8, 0x77d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    03dc46619f909961b2eae36c1935136d7c9e53741a63a448f843378401fce01374
+    "0xdc46619f909961b2eae36c1935136d7c9e53741a63a448f8, 0x77d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb"
+    8;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    07dc46619f909961b2eae36c1935136d7c9e53741a63a448f877d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb96473008b1005b88474e8c04bf
+    "0xdc46619f909961b2eae36c1935136d7c9e53741a63a448f8, 0x77d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    06dc46619f909961b2eae36c1935136d7c9e53741a63a448f877d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb207d5040
+    FAIL
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0adc46619f909961b2eae36c1935136d7c9e53741a63a448f8d0203736ae9ce5b6
+    "0xdc46619f909961b2eae36c1935136d7c9e53741a63a448f8, 0x77d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb"
+    8;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0edc46619f909961b2eae36c1935136d7c9e53741a63a448f877d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1ebe41c
+    "0xdc46619f909961b2eae36c1935136d7c9e53741a63a448f8, 0x77d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0fdc46619f909961b2eae36c1935136d7c9e53741a63a448f877d0d33fecb0d1049deeee3b1c727a3e9d15a5af81a4e1eb15c7b71b1b97f8a1
+    FAIL
+    8;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    01a8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb7c1b9d55
+    "0xa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb, 0x4df2ef0cf197b05bceb0357e1faf3d87f46503429431ea"
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    04a8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb004df2ef0cf197b05bceb0357e1faf3d87f46503429431ea
+    "0xa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb, 0x4df2ef0cf197b05bceb0357e1faf3d87f46503429431ea"
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    02a8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb
+    "0xa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb, 0x4df2ef0cf197b05bceb0357e1faf3d87f46503429431ea"
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    06a8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb004df2ef0cf197b05bceb0357e1faf3d87f46503429431ea901f
+    "0xa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb, 0x4df2ef0cf197b05bceb0357e1faf3d87f46503429431ea"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    07a8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb004df2ef0cf197b05bceb0357e1faf3d87f46503429431ea22
+    FAIL
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0aa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb37145047def7fdf3d2d6794e5e27
+    "0xa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb, 0x4df2ef0cf197b05bceb0357e1faf3d87f46503429431ea"
+    14;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0ea8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb004df2ef0cf197b05bceb0357e1faf3d87f46503429431ea87b59d
+    "0xa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb, 0x4df2ef0cf197b05bceb0357e1faf3d87f46503429431ea"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0fa8f80cd8b48f0fa75505586a6c1e064c8fd5bd99c5fb5dcb004df2ef0cf197b05bceb0357e1faf3d87f46503429431eaed3b3b090bcb31
+    FAIL
+    7;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    015a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd692d
+    "0x5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69, 0x7a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f"
+    1;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    045a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd697a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f397b
+    "0x5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69, 0x7a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f"
+    2;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    035a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd690d980cfa784dfb
+    "0x5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69, 0x7a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f"
+    7;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    075a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd697a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f6048a31a2018baaf56
+    "0x5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69, 0x7a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f"
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    065a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd697a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38fa74cdaaea2997808c5
+    FAIL
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0a5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69b1c512cb517b
+    "0x5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69, 0x7a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f"
+    6;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0e5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd697a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f6874c185d3565a
+    "0x5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd69, 0x7a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38f"
+    7;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0f5a213bc1258f59faa9b5064674a69ba5e7a9d6b5ebf0cd697a53220b6eb8fc3efcd1794368a011cf5f497185d18fb38fb73eae2718
+    FAIL
+    5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    01e1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325217b8f8c3f3f
+    "0xe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325, 0x33996e41dce5ceb7f08ae065b4f6f4f917b0c4a37706f367"
+    6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    04e1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325cc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac04cd4eb46208e9
+    "0xe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325, 0xcc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac"
+    7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    02e1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325bc
+    "0xe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325, 0xcc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    06e1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325cc6691be231a31480f751f9a4b090b06e84f3b5c88f90bacb8d573e21b8f174323
+    "0xe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325, 0xcc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    07e1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325cc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac24a63e5cba5cf2d4c718369034
+    FAIL
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0be1a8ab766889961fad7cb7e0b49e3aef58b966757a2c332506823810e736a9b5cd
+    "0xe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325, 0xcc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0fe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325cc6691be231a31480f751f9a4b090b06e84f3b5c88f90baca9c75bdebad8d546a2f5
+    "0xe1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325, 0xcc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac"
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0ee1a8ab766889961fad7cb7e0b49e3aef58b966757a2c3325cc6691be231a31480f751f9a4b090b06e84f3b5c88f90bac86d460248f9d
+    FAIL
+    6;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    018b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc4712
+    "0x8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47, 0x608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c"
+    1;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    048b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c26fe2fd9
+    "0x8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47, 0x608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c"
+    4;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    028b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47c2a2442f
+    "0x8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47, 0x608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c"
+    4;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    068b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6cd5ac23e091ef51ac
+    "0x8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47, 0x608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c"
+    8;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    078b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6cd8e5fe2bb7f8955594d857290bc3
+    FAIL
+    14;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0a8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc4702603f1896b500fa3326fbe489
+    "0x8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47, 0x608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c"
+    13;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0e8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c
+    "0x8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47, 0x608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c"
+    0;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0f8b3b579ed1bd8fa70aba6cfa1f2e6c7cc192e94c46d0bc47608eae976fb68fe4fd46450756ed16c4aec59ad13975cc6c82fd1c5ce10542
+    FAIL
+    7;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    01e5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964525ab912fb
+    "0xe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964, 0x5ba475395248a0872c5a9fa37732a483002951cc149723f3"
+    5;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    04e5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964a45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20eabd7dfa2c22780d0b493c02
+    "0xe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964, 0xa45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20"
+    12;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    02e5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964cc4438ee36ffcdec063af021
+    "0xe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964, 0xa45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20"
+    12;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    06e5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964a45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20d7c754b1997806cf5f60a2be
+    "0xe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964, 0xa45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20"
+    12;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    07e5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964a45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20c99f2affc4ea
+    FAIL
+    6;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0be5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964dc47938e41c5
+    "0xe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964, 0xa45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20"
+    6;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0fe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964a45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db202198df77f7dfcb
+    "0xe5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964, 0xa45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20"
+    7;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0ee5eab6ba916413fba8c4697fac734fa5ffb76451c9a9b964a45b8ac6adb75f78d3a5605c88cd5b7cffd6ae33eb68db20
+    FAIL
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01ad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420
+    "0xad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420, 0x7e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e"
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04ad47a5035e18fcd30f3a34f48718d2866bb185a93baeb4207e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e
+    "0xad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420, 0x7e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e"
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    02ad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420fe8569
+    "0xad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420, 0x7e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06ad47a5035e18fcd30f3a34f48718d2866bb185a93baeb4207e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7efb5565
+    "0xad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420, 0x7e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07ad47a5035e18fcd30f3a34f48718d2866bb185a93baeb4207e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e1997
+    FAIL
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0aad47a5035e18fcd30f3a34f48718d2866bb185a93baeb42090d798e6ba5ac7583ee81f9682
+    "0xad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420, 0x7e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ead47a5035e18fcd30f3a34f48718d2866bb185a93baeb4207e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e66cbf3
+    "0xad47a5035e18fcd30f3a34f48718d2866bb185a93baeb420, 0x7e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7e"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0fad47a5035e18fcd30f3a34f48718d2866bb185a93baeb4207e779ae6fefc5d18bd3abbf8801c04148b4a42309975fd7ee9e0d7ab966e0ea4e1c601dc
+    FAIL
+    12;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    0123199c43e03054933b8da07733516696fc55b1a305475995a579875a
+    "0x23199c43e03054933b8da07733516696fc55b1a305475995, 0x4544790392d407753cd6e636101136da9d7e515c0333592d"
+    4;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    0423199c43e03054933b8da07733516696fc55b1a3054759954544790392d407753cd6e636101136da9d7e515c0333592d5bc5b568c8ff1ed697de98efa3008e
+    "0x23199c43e03054933b8da07733516696fc55b1a305475995, 0x4544790392d407753cd6e636101136da9d7e515c0333592d"
+    15;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    0323199c43e03054933b8da07733516696fc55b1a305475995c6234b70
+    "0x23199c43e03054933b8da07733516696fc55b1a305475995, 0x4544790392d407753cd6e636101136da9d7e515c0333592d"
+    4;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    0723199c43e03054933b8da07733516696fc55b1a3054759954544790392d407753cd6e636101136da9d7e515c0333592da225725d972cd6e6f0a789321d
+    "0x23199c43e03054933b8da07733516696fc55b1a305475995, 0x4544790392d407753cd6e636101136da9d7e515c0333592d"
+    13;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    0623199c43e03054933b8da07733516696fc55b1a3054759954544790392d407753cd6e636101136da9d7e515c0333592d98c6745743ca2c3db760568e150da9
+    FAIL
+    15;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0a23199c43e03054933b8da07733516696fc55b1a305475995f43f88252a
+    "0x23199c43e03054933b8da07733516696fc55b1a305475995, 0x4544790392d407753cd6e636101136da9d7e515c0333592d"
+    5;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0e23199c43e03054933b8da07733516696fc55b1a3054759954544790392d407753cd6e636101136da9d7e515c0333592dab1edda693e9cb51
+    "0x23199c43e03054933b8da07733516696fc55b1a305475995, 0x4544790392d407753cd6e636101136da9d7e515c0333592d"
+    8;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0f23199c43e03054933b8da07733516696fc55b1a3054759954544790392d407753cd6e636101136da9d7e515c0333592d109fcb331164e38c5456
+    FAIL
+    10;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    018e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a2c922ed52f7d
+    "0x8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a, 0x32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8"
+    6;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    048e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8fe3bddafe634
+    "0x8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a, 0x32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8"
+    6;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    028e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33ab6c6268c41
+    "0x8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a, 0x32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8"
+    5;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    068e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b873f477f89a596a5620
+    "0x8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a, 0x32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8"
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    078e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b82cd17a9498b70697d12d4b3786
+    FAIL
+    13;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0a8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33ada7d59746f8972
+    "0x8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a, 0x32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8"
+    7;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0e8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b842b8f93c4ce08cd4ca7077b52dc6a4
+    "0x8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a, 0x32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b8"
+    15;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0f8e87fb02a03e9e428c066a02752c46bfd34865a2a2d8f33a32cf5eebd1b82c2633488efb96844cb45c88c533c6c9d6b82eeec91becfc53a7ca
+    FAIL
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    011a39bfc960e8b0e1278c6cc57231260400307b2aa5d042961f9576b92b5a
+    "0x1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296, 0x12aa1aba568f1dbfc547ff062049ab8f9161088a090c8c95"
+    6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    041a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296ed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e41605c
+    "0x1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296, 0xed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e"
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    021a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296e3614412df55bded9fca2092e4
+    "0x1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296, 0xed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    061a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296ed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e9c733ceebc3a089b3c
+    "0x1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296, 0xed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    071a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296ed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e6d63a366
+    FAIL
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0b1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296b8294f47eab80443d9308967a068
+    "0x1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296, 0xed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e"
+    14;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0f1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296ed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e53
+    "0x1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296, 0xed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0e1a39bfc960e8b0e1278c6cc57231260400307b2aa5d04296ed55e545a970e2403ab800f9dfb654706e9ef775f6f3727e3ffa46
+    FAIL
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    01ec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c614147b49b90b6bf08
+    "0xec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c, 0x1271b496586efe3d6d7f7e3710e86294641a9eccc2fc3ff8"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    04ec551a2e0190fdd8e7680db09a7a56435cce09d724880d5ced8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b3ea05ab6676ffb2e
+    "0xec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c, 0xed8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b"
+    8;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    03ec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c39f2397257c021201ac2
+    "0xec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c, 0xed8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b"
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    07ec551a2e0190fdd8e7680db09a7a56435cce09d724880d5ced8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b4341
+    "0xec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c, 0xed8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    06ec551a2e0190fdd8e7680db09a7a56435cce09d724880d5ced8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b0ebcb653
+    FAIL
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0bec551a2e0190fdd8e7680db09a7a56435cce09d724880d5cd3076029119f7ff4
+    "0xec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c, 0xed8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b"
+    8;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0fec551a2e0190fdd8e7680db09a7a56435cce09d724880d5ced8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b73
+    "0xec551a2e0190fdd8e7680db09a7a56435cce09d724880d5c, 0xed8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0eec551a2e0190fdd8e7680db09a7a56435cce09d724880d5ced8e4b69a79101c2928081c8ef179d6b9be561333d03bf1b0b34520578b51af5d70e64
+    FAIL
+    11;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01894bf358973201ec442d448745b08263d3e6e66675ddcb32f2dfd1b99bd3a045bd2ac8f2dd
+    "0x894bf358973201ec442d448745b08263d3e6e66675ddcb32, 0x6fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04894bf358973201ec442d448745b08263d3e6e66675ddcb326fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a136ff8e62bc3d25e4707
+    "0x894bf358973201ec442d448745b08263d3e6e66675ddcb32, 0x6fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    03894bf358973201ec442d448745b08263d3e6e66675ddcb328f
+    "0x894bf358973201ec442d448745b08263d3e6e66675ddcb32, 0x6fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07894bf358973201ec442d448745b08263d3e6e66675ddcb326fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a137325
+    "0x894bf358973201ec442d448745b08263d3e6e66675ddcb32, 0x6fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06894bf358973201ec442d448745b08263d3e6e66675ddcb326fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a1363
+    FAIL
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0a894bf358973201ec442d448745b08263d3e6e66675ddcb32cc
+    "0x894bf358973201ec442d448745b08263d3e6e66675ddcb32, 0x6fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0e894bf358973201ec442d448745b08263d3e6e66675ddcb326fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13
+    "0x894bf358973201ec442d448745b08263d3e6e66675ddcb32, 0x6fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13"
+    0;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0f894bf358973201ec442d448745b08263d3e6e66675ddcb326fbfe09762c422ffcf5ff7e9d08041a9ddc638985e2e8a13cfb3a2aad95d1299a4a2e4
+    FAIL
+    11;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    01f52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb3d
+    "0xf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb, 0x1012eea27a2a5616943d8b283b96070a369b895fc00d3818"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    4
+    04f52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcbefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb95f775a2f5b47b3d22e65a
+    "0xf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb, 0xefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb"
+    11;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    03f52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcbe2b4
+    "0xf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb, 0xefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    07f52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcbefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fbe09179a92ddad04d75d634dd33ce02
+    "0xf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb, 0xefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb"
+    15;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    6
+    06f52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcbefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb8a051f10e73379729144
+    FAIL
+    10;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0bf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb70356b60b4849c99
+    "0xf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb, 0xefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb"
+    8;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ff52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcbefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb29072a13653428e39bea3a1a
+    "0xf52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcb, 0xefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fb"
+    12;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    12
+    0ef52e1e56e4ccfcdb416f949550625dae491ea7c05a1fadcbefed115d85d5a9e96bc274d7c469f8f5c96476a03ff2c6fbcb2c5425ce82e23c3fc64cb238
+    FAIL
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    01537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af242f2304ee65
+    "0x537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af, 0x3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5"
+    6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    04537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d58a4a66c021b9
+    "0x537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af, 0x3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5"
+    6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    03537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810afb35a3268d41032be3b
+    "0x537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af, 0x3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5"
+    9;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    07537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d52cbd
+    "0x537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af, 0x3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5"
+    2;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    06537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5e66c07
+    FAIL
+    3;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0a537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af51
+    "0x537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af, 0x3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0e537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5eb3019ef0b57936b8f14a4f7e654
+    "0x537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af, 0x3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5"
+    14;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0f537b5e804337cc50e9dd2838fff5b9bf6e65b28af8d810af3927f54fa9c6c6ce399e9b7a7950dd8869b057799e9e18d5802617a7efd6
+    FAIL
+    6;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    1
+    015f77a2c30438fe751e983255eef145dde67d6fb3cab494b1ae
+    "0x5f77a2c30438fe751e983255eef145dde67d6fb3cab494b1, 0x1ca24390c660f28aedfa70a348c0e637905c985e04c722fc"
+    1;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    4
+    045f77a2c30438fe751e983255eef145dde67d6fb3cab494b11ca24390c660f28aedfa70a348c0e637905c985e04c722fc4bcecc0a6aecd11c9bbf1b6f
+    "0x5f77a2c30438fe751e983255eef145dde67d6fb3cab494b1, 0x1ca24390c660f28aedfa70a348c0e637905c985e04c722fc"
+    12;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    025f77a2c30438fe751e983255eef145dde67d6fb3cab494b11e6d63f943
+    "0x5f77a2c30438fe751e983255eef145dde67d6fb3cab494b1, 0x1ca24390c660f28aedfa70a348c0e637905c985e04c722fc"
+    5;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    065f77a2c30438fe751e983255eef145dde67d6fb3cab494b11ca24390c660f28aedfa70a348c0e637905c985e04c722fc130cf9bf
+    "0x5f77a2c30438fe751e983255eef145dde67d6fb3cab494b1, 0x1ca24390c660f28aedfa70a348c0e637905c985e04c722fc"
+    4;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    6
+    075f77a2c30438fe751e983255eef145dde67d6fb3cab494b11ca24390c660f28aedfa70a348c0e637905c985e04c722fc743cac28f1c3021db38c52
+    FAIL
+    11;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0a5f77a2c30438fe751e983255eef145dde67d6fb3cab494b198979830bf270f
+    "0x5f77a2c30438fe751e983255eef145dde67d6fb3cab494b1, 0x1ca24390c660f28aedfa70a348c0e637905c985e04c722fc"
+    7;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0e5f77a2c30438fe751e983255eef145dde67d6fb3cab494b11ca24390c660f28aedfa70a348c0e637905c985e04c722fcd4b9e032246697587014efa5d6
+    "0x5f77a2c30438fe751e983255eef145dde67d6fb3cab494b1, 0x1ca24390c660f28aedfa70a348c0e637905c985e04c722fc"
+    13;
+  "prime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    12
+    0f5f77a2c30438fe751e983255eef145dde67d6fb3cab494b11ca24390c660f28aedfa70a348c0e637905c985e04c722fc256d3aab55c5213205
+    FAIL
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    02cdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a07f6
+    "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    2;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    2
+    03cdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0ac7f8b56cea
+    FAIL
+    5;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0acdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a6eb4f62caa5f7d7d0c
+    "0xcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a, 0"
+    9;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; prime: -3, 6"
+    8
+    0bcdf65dc6c906c5c240dba0d156b911614abe806fa2b8dc0a9a5d3dcd5d94634cb7f89f037e
+    FAIL
+    13;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    1
+    019e3f8ddafa260dc256675004ad006328a0497fd7749a9e6f
+    FAIL
+    0;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    2
+    029e3f8ddafa260dc256675004ad006328a0497fd7749a9e6f
+    FAIL
+    0;
+  "niceprime: 6277101735386680763835789423207666416102355444464034512659; primeproj: -3, 6"
+    8
+    0a9e3f8ddafa260dc256675004ad006328a0497fd7749a9e6f
+    FAIL
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    0142d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93
+    "0x42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93, 0x4f86433f7532cb78a36fe52992631246e400d05bd3487b66"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    0442d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f930d5686d394b112ac53070fddbca63a025f7f15021e7034f55534
+    "0x42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93, 0xd5686d394b112ac53070fddbca63a025f7f15021e7034f5"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    0342d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93
+    "0x42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93, 0xd5686d394b112ac53070fddbca63a025f7f15021e7034f5"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    0742d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f930d5686d394b112ac53070fddbca63a025f7f15021e7034f5800416220c442b
+    "0x42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93, 0xd5686d394b112ac53070fddbca63a025f7f15021e7034f5"
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    0642d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f930d5686d394b112ac53070fddbca63a025f7f15021e7034f5346b3387f0b280bebb
+    FAIL
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0a42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93cdc6
+    "0x42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93, 0xd5686d394b112ac53070fddbca63a025f7f15021e7034f5"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f930d5686d394b112ac53070fddbca63a025f7f15021e7034f50d559a642415a60e5eff7de82e
+    "0x42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f93, 0xd5686d394b112ac53070fddbca63a025f7f15021e7034f5"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f42d0c5ece183d9d4f068eaf42ec52844bb7fc559cd384f930d5686d394b112ac53070fddbca63a025f7f15021e7034f5
+    FAIL
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    01143841095281e016ca51510570ff93851232e53c7b2b4244
+    "0x143841095281e016ca51510570ff93851232e53c7b2b4244, 0x56bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    04143841095281e016ca51510570ff93851232e53c7b2b424456bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc218655aa
+    "0x143841095281e016ca51510570ff93851232e53c7b2b4244, 0x56bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    02143841095281e016ca51510570ff93851232e53c7b2b424446e64f42b9b006d0e6d2
+    "0x143841095281e016ca51510570ff93851232e53c7b2b4244, 0x56bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21"
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    06143841095281e016ca51510570ff93851232e53c7b2b424456bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21ed80e39961
+    "0x143841095281e016ca51510570ff93851232e53c7b2b4244, 0x56bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21"
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    07143841095281e016ca51510570ff93851232e53c7b2b424456bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21e328616aa8e29e899775bdc99c70
+    FAIL
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b143841095281e016ca51510570ff93851232e53c7b2b42442a46
+    "0x143841095281e016ca51510570ff93851232e53c7b2b4244, 0x56bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f143841095281e016ca51510570ff93851232e53c7b2b424456bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21ee6d9806675dd054c3976fd4f0
+    "0x143841095281e016ca51510570ff93851232e53c7b2b4244, 0x56bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc21"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e143841095281e016ca51510570ff93851232e53c7b2b424456bf3c8554f9e52b1c9363df8d62f991682d4a6c455cdc216dfc3874302f4fd12d5a1c5328
+    FAIL
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    015f53927deae3d279d9fddb97b4e4601eae7957d1df492463d766dae42371bc
+    "0x5f53927deae3d279d9fddb97b4e4601eae7957d1df492463, 0x72189d26f3476fd3279cdf839448493ded933073137fdbd9"
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    045f53927deae3d279d9fddb97b4e4601eae7957d1df49246372189d26f3476fd3279cdf839448493ded933073137fdbd97c90f26f
+    "0x5f53927deae3d279d9fddb97b4e4601eae7957d1df492463, 0x72189d26f3476fd3279cdf839448493ded933073137fdbd9"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    025f53927deae3d279d9fddb97b4e4601eae7957d1df492463a1
+    "0x5f53927deae3d279d9fddb97b4e4601eae7957d1df492463, 0x72189d26f3476fd3279cdf839448493ded933073137fdbd9"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    065f53927deae3d279d9fddb97b4e4601eae7957d1df49246372189d26f3476fd3279cdf839448493ded933073137fdbd91959f01f889df1327814b05de5dcc5
+    "0x5f53927deae3d279d9fddb97b4e4601eae7957d1df492463, 0x72189d26f3476fd3279cdf839448493ded933073137fdbd9"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    075f53927deae3d279d9fddb97b4e4601eae7957d1df49246372189d26f3476fd3279cdf839448493ded933073137fdbd975
+    FAIL
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0b5f53927deae3d279d9fddb97b4e4601eae7957d1df4924639fb48e169c2f77b0583a53d1507635
+    "0x5f53927deae3d279d9fddb97b4e4601eae7957d1df492463, 0x72189d26f3476fd3279cdf839448493ded933073137fdbd9"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f5f53927deae3d279d9fddb97b4e4601eae7957d1df49246372189d26f3476fd3279cdf839448493ded933073137fdbd9b0e2a8181da5389c244020d8dee6
+    "0x5f53927deae3d279d9fddb97b4e4601eae7957d1df492463, 0x72189d26f3476fd3279cdf839448493ded933073137fdbd9"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e5f53927deae3d279d9fddb97b4e4601eae7957d1df49246372189d26f3476fd3279cdf839448493ded933073137fdbd9bbb4b20f824b7e6e5b1a4d3a
+    FAIL
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    0150b296f3be1b33d82235eef215fd872c9e88885e8eb23304d7ddfa59adc0cdc5a05ce886e96c
+    "0x50b296f3be1b33d82235eef215fd872c9e88885e8eb23304, 0x22d918c7798828a8ef323d832fa6ffdae19882a0222b9433"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    0450b296f3be1b33d82235eef215fd872c9e88885e8eb23304726b8e34c7931b70cd07d3713a5b78f67f100afeac99a7373ed873c1e13bec3fc38fb766da
+    "0x50b296f3be1b33d82235eef215fd872c9e88885e8eb23304, 0x726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    0350b296f3be1b33d82235eef215fd872c9e88885e8eb233048c74a5
+    "0x50b296f3be1b33d82235eef215fd872c9e88885e8eb23304, 0x726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    0750b296f3be1b33d82235eef215fd872c9e88885e8eb23304726b8e34c7931b70cd07d3713a5b78f67f100afeac99a73709058e
+    "0x50b296f3be1b33d82235eef215fd872c9e88885e8eb23304, 0x726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    0650b296f3be1b33d82235eef215fd872c9e88885e8eb23304726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737c3f48cb90d5e4ea9297f2addfe
+    FAIL
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b50b296f3be1b33d82235eef215fd872c9e88885e8eb23304e2872a50d3cd3a2cd0d7e94a
+    "0x50b296f3be1b33d82235eef215fd872c9e88885e8eb23304, 0x726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f50b296f3be1b33d82235eef215fd872c9e88885e8eb23304726b8e34c7931b70cd07d3713a5b78f67f100afeac99a73707
+    "0x50b296f3be1b33d82235eef215fd872c9e88885e8eb23304, 0x726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e50b296f3be1b33d82235eef215fd872c9e88885e8eb23304726b8e34c7931b70cd07d3713a5b78f67f100afeac99a737fd
+    FAIL
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    010b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55ca13daf72f7314b1cb
+    "0xb6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55, 0x5d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5"
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    040b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e555d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5e37ab8f8668fddde9a55efdf
+    "0xb6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55, 0x5d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    020b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55a372ad344d1ccd71
+    "0xb6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55, 0x5d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5"
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    060b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e555d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5cc45bc188cd7d594
+    "0xb6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55, 0x5d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5"
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    070b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e555d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5d098499d1a
+    FAIL
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b0b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55
+    "0xb6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55, 0x5d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f0b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e555d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c501486879f678c9f6
+    "0xb6af2c1df0eed206416d4d619d2d31749b697a3d98c4e55, 0x5d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c5"
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e0b6af2c1df0eed206416d4d619d2d31749b697a3d98c4e555d955003e4e21e8e6c9802a75aef0d327ea861a569fda7c59284
+    FAIL
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    01718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1ca65
+    "0x718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1, 0x7ba2829a81835093c344d8fe94a093a7d742e110c70739e0"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    04718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d10a281a9c0a402f6252cd602428cf6d8b82ae997d22d48831c6799783fd94f7461e31
+    "0x718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1, 0xa281a9c0a402f6252cd602428cf6d8b82ae997d22d48831"
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    03718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d169bc83bef8d029ed97ee89
+    "0x718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1, 0xa281a9c0a402f6252cd602428cf6d8b82ae997d22d48831"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    07718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d10a281a9c0a402f6252cd602428cf6d8b82ae997d22d488316ce32c0a72d783e28c5aad
+    "0x718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1, 0xa281a9c0a402f6252cd602428cf6d8b82ae997d22d48831"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    06718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d10a281a9c0a402f6252cd602428cf6d8b82ae997d22d48831b523dd4fd2d25e
+    FAIL
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0a718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1a5297d0b
+    "0x718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1, 0xa281a9c0a402f6252cd602428cf6d8b82ae997d22d48831"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d10a281a9c0a402f6252cd602428cf6d8b82ae997d22d488311faeac70cbaa
+    "0x718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d1, 0xa281a9c0a402f6252cd602428cf6d8b82ae997d22d48831"
+    6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f718a98068bc37ff19189b8dabc6ffe2c55ec786de5d3b1d10a281a9c0a402f6252cd602428cf6d8b82ae997d22d4883111e7e92eb1fd41
+    FAIL
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    013e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499293cfc8f3da5
+    "0x3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929, 0x7451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707"
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    043e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499297451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707d3267fe97c852e5b3f
+    "0x3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929, 0x7451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707"
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    023e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499299640aa7e06b1f585cbe306c26a
+    "0x3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929, 0x7451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    063e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499297451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707b26f
+    "0x3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929, 0x7451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    073e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499297451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de370781f67d342c4cc01cc70b
+    FAIL
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0b3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929e8f85cc7
+    "0x3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929, 0x7451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f3e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499297451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de370740735ace47541583eb1b
+    "0x3e79bcc94d83602dfdbba17ca0e041b92d3af5f788149929, 0x7451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707"
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e3e79bcc94d83602dfdbba17ca0e041b92d3af5f7881499297451ad262ae8394ca3cc7cc23eb4bb1a89997bdb51de3707
+    FAIL
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    011b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e96196fa22b4b928128c4d71cc442
+    "0x1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e, 0x7fb2b2b3ba042e2e9c68de83cd452fa029428b0a4b89d1b3"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    041b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebdb2fbe0bd2a494d21d5357df037
+    "0x1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e, 0x64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    031b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e05846900382967d1315c
+    "0x1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e, 0x64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd"
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    071b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebdcc9d
+    "0x1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e, 0x64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    061b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebdad
+    FAIL
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0a1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e8756da0ebc7f38
+    "0x1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e, 0x64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd"
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd924d1c480e467425
+    "0x1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e, 0x64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd"
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f1b4b1d1207b9a2107e782a7a04b5d0b0f7d55d34aa75bf0e64f9afa1bdbd8c3ee210f4f9c9f0ff10de97d63ee1fc6ebd9284e88a79
+    FAIL
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    01720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6bdb3616cef
+    "0x720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6, 0x56d3f2fbbf87844128b487c90cd87a9ad2fe5a79111e781b"
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    04720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de624dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fdc5561390e156f8658540897767
+    "0x720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6, 0x24dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    03720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de62de503bfd2
+    "0x720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6, 0x24dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd"
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    07720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de624dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd51ef6049717669245940f6cc956f69
+    "0x720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6, 0x24dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    06720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de624dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fdc4e745
+    FAIL
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0a720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6bf9f16cc34abe1ec981eca1735a2
+    "0x720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6, 0x24dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de624dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd78
+    "0x720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de6, 0x24dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f720850cdd7aa529e223eaac55d6af7ef0727fa24dde25de624dba236682dd6df0a8a2d0c51b28d75d5d9a05dccfc25fd35a27fca1dd809f9
+    FAIL
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    014b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2398f
+    "0x4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2, 0x295367d5eeed9fe6cd37ff3f10b4a4ca807e912625ebfac5"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    044b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff26242f0833e64e05666e7be9ca1cc089ead052a6d20967537c037a7
+    "0x4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2, 0x6242f0833e64e05666e7be9ca1cc089ead052a6d20967537"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    034b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2dcbc
+    "0x4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2, 0x6242f0833e64e05666e7be9ca1cc089ead052a6d20967537"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    074b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff26242f0833e64e05666e7be9ca1cc089ead052a6d2096753751c6d9a8bdc34b4e8f018f417f
+    "0x4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2, 0x6242f0833e64e05666e7be9ca1cc089ead052a6d20967537"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    064b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff26242f0833e64e05666e7be9ca1cc089ead052a6d209675377143151f3e
+    FAIL
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0b4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2988cf372c3048e19fadf
+    "0x4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2, 0x6242f0833e64e05666e7be9ca1cc089ead052a6d20967537"
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff26242f0833e64e05666e7be9ca1cc089ead052a6d20967537137193b926796c20246ca8
+    "0x4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff2, 0x6242f0833e64e05666e7be9ca1cc089ead052a6d20967537"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e4b119756d0897fb0abd041a3b178ac542d7bbb4b057d8ff26242f0833e64e05666e7be9ca1cc089ead052a6d20967537b3f1bd
+    FAIL
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    015523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e54117
+    "0x5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5, 0x329b3dd35f5803b3dbc5c400fe1a477d8f5270f23d8aa0d8"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    045523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e567b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813db5bdfb2f889a2f550b
+    "0x5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5, 0x67b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d"
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    035523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5b1fbc74859f7247ff2d3a72636
+    "0x5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5, 0x67b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    075523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e567b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d59aac961
+    "0x5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5, 0x67b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    065523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e567b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813dab63dabc6d9df5
+    FAIL
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0b5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5276c591b7ceff8c2ee2235f54b4c
+    "0x5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5, 0x67b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e567b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d9932ef5f8528425f34902d9b
+    "0x5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e5, 0x67b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e5523d9648dbbb91675acf5aa53fddf6e799d94550f8c21e567b8e4b7d2e3baa5ae6931aaade79813f6cfe4a73206813d44bb0de380
+    FAIL
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    01445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1064e949a64ca90fd0764c49703b21c
+    "0x445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106, 0x564825543eca1f13f6c580d305b8db3200700fed789bcd03"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    04445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1061216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c0535abf5f1bd
+    "0x445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106, 0x1216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05"
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    03445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1068854e5ccca5e5bc84d995bb86743
+    "0x445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106, 0x1216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    07445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1061216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05ddc57448b48f429208
+    "0x445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106, 0x1216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05"
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    06445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1061216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05c6625905c3a0
+    FAIL
+    6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0a445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106da2c5a
+    "0x445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106, 0x1216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1061216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05909dbd0e78550d3ceb685126a62609
+    "0x445e705aa6399aa54b9187b3ec473cd4ac68f628260bd106, 0x1216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f445e705aa6399aa54b9187b3ec473cd4ac68f628260bd1061216550e98f385b6bd540760e9ffe7e6ac18f9c55e901c05c9ead4300b
+    FAIL
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    016efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab831aedfcb
+    "0x6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab8, 0x67b333aa0ca3081a948a2058b9d7e35701d63025280ef530"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    046efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab867b333aa0ca3081a948a2058b9d7e35701d63025280ef5302a0a28490d670f9a7756a20c9685
+    "0x6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab8, 0x67b333aa0ca3081a948a2058b9d7e35701d63025280ef530"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    026efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab824
+    "0x6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab8, 0x67b333aa0ca3081a948a2058b9d7e35701d63025280ef530"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    066efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab867b333aa0ca3081a948a2058b9d7e35701d63025280ef5300a088e3c
+    "0x6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab8, 0x67b333aa0ca3081a948a2058b9d7e35701d63025280ef530"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    076efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab867b333aa0ca3081a948a2058b9d7e35701d63025280ef53091165419d6c73202
+    FAIL
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab85aced3aedbcd63da
+    "0x6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab8, 0x67b333aa0ca3081a948a2058b9d7e35701d63025280ef530"
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab867b333aa0ca3081a948a2058b9d7e35701d63025280ef5309632074b2d964c3b854a4dd8dab86d
+    "0x6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab8, 0x67b333aa0ca3081a948a2058b9d7e35701d63025280ef530"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e6efa496ce41e84ac9c51e39765f5ba81040c105cfa5b3ab867b333aa0ca3081a948a2058b9d7e35701d63025280ef53048a05700b1643d293af5
+    FAIL
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    01635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd63083b001be6dbdeb37be2e
+    "0x635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6, 0x3402953703ad0e287e16bd2768ae4641a0d40afc41f393f5"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    04635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd63402953703ad0e287e16bd2768ae4641a0d40afc41f393f5aca3f3f90b1ea55dcbb91e60
+    "0x635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6, 0x3402953703ad0e287e16bd2768ae4641a0d40afc41f393f5"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    02635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6
+    "0x635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6, 0x3402953703ad0e287e16bd2768ae4641a0d40afc41f393f5"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    06635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd63402953703ad0e287e16bd2768ae4641a0d40afc41f393f5121e955c85c2d00d9e05b56a
+    "0x635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6, 0x3402953703ad0e287e16bd2768ae4641a0d40afc41f393f5"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    07635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd63402953703ad0e287e16bd2768ae4641a0d40afc41f393f52ce3f0a16ec4581d7440eb3d27
+    FAIL
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0a635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6ab6312708e1f56187628124c
+    "0x635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6, 0x3402953703ad0e287e16bd2768ae4641a0d40afc41f393f5"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd63402953703ad0e287e16bd2768ae4641a0d40afc41f393f57dd939315fa66e5f3e9a79b2
+    "0x635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd6, 0x3402953703ad0e287e16bd2768ae4641a0d40afc41f393f5"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f635c7f2e747f7a5ffe9560056369b37971ce53ef4d9befd63402953703ad0e287e16bd2768ae4641a0d40afc41f393f57d117748fba9d73c23
+    FAIL
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    0105c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f69975
+    "0x5c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699, 0x6771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    0405c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f6996771e747ff1a99be39ab8267b30645b8cc1b66dbd6de521257f1727620162e8f77fefd02df
+    "0x5c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699, 0x6771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    0205c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699ea521a
+    "0x5c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699, 0x6771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    0605c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f6996771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212238b7c
+    "0x5c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699, 0x6771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    0705c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f6996771e747ff1a99be39ab8267b30645b8cc1b66dbd6de52128ca8ed35b054ccdefcbf
+    FAIL
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b05c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699b06c138c2f638621f0ab9b
+    "0x5c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699, 0x6771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f05c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f6996771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212
+    "0x5c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f699, 0x6771e747ff1a99be39ab8267b30645b8cc1b66dbd6de5212"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e05c672a9eba4a4f5ab94bf732c230789b0bfc2537b44f6996771e747ff1a99be39ab8267b30645b8cc1b66dbd6de52122d496023de9fa5
+    FAIL
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    0126ca222daf14d8b20a6084ed63851be9658c64282c57df3cfc
+    "0x26ca222daf14d8b20a6084ed63851be9658c64282c57df3c, 0x67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    0426ca222daf14d8b20a6084ed63851be9658c64282c57df3c67f4b57ecbaee65dba12396016339b1c542e58eb226d2e264371
+    "0x26ca222daf14d8b20a6084ed63851be9658c64282c57df3c, 0x67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    0226ca222daf14d8b20a6084ed63851be9658c64282c57df3c896ca9fd69a0d41ba5bfd877
+    "0x26ca222daf14d8b20a6084ed63851be9658c64282c57df3c, 0x67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    0626ca222daf14d8b20a6084ed63851be9658c64282c57df3c67f4b57ecbaee65dba12396016339b1c542e58eb226d2e261c70
+    "0x26ca222daf14d8b20a6084ed63851be9658c64282c57df3c, 0x67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    0726ca222daf14d8b20a6084ed63851be9658c64282c57df3c67f4b57ecbaee65dba12396016339b1c542e58eb226d2e266870
+    FAIL
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b26ca222daf14d8b20a6084ed63851be9658c64282c57df3ca517e0
+    "0x26ca222daf14d8b20a6084ed63851be9658c64282c57df3c, 0x67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26"
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f26ca222daf14d8b20a6084ed63851be9658c64282c57df3c67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26b822360e1c783a23948d5b578c6c51
+    "0x26ca222daf14d8b20a6084ed63851be9658c64282c57df3c, 0x67f4b57ecbaee65dba12396016339b1c542e58eb226d2e26"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e26ca222daf14d8b20a6084ed63851be9658c64282c57df3c67f4b57ecbaee65dba12396016339b1c542e58eb226d2e2601599300801b78daf2af0608cf0a
+    FAIL
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    014764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7efb6d12b819eed
+    "0x4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef, 0x90f3cdb22f80cfe9ec90a481e02628c1157e7fb2f1cd3a8"
+    6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    044764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb64470a181c91eff8
+    "0x4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef, 0x4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb6447"
+    6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    034764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef474e87ebdb2472db13d972255490
+    "0x4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef, 0x4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb6447"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    074764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb6447a70a4bd2e3f7
+    "0x4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef, 0x4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb6447"
+    6;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    064764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb644707
+    FAIL
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0b4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7efc8
+    "0x4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef, 0x4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb6447"
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb64473d7bcd98d9
+    "0x4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef, 0x4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb6447"
+    5;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e4764c6b6c9c25e7cf62a2cb3c9bc35f0673f097295e7b7ef4e6bfa6deb3a528268e326fbd7be577c7668ee89bafb64479a8e5686ea1efd44632a1781
+    FAIL
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    1
+    01221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1534101d3c1fad2751f5b3062364a
+    "0x221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d153, 0xb602674c9327bb95316921aea623174f1f20b3338484b7a"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    4
+    04221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1530b602674c9327bb95316921aea623174f1f20b3338484b7af1ec592dd09371
+    "0x221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d153, 0xb602674c9327bb95316921aea623174f1f20b3338484b7a"
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    2
+    02221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d15303276ba9fe7175ce163b98e2cd
+    "0x221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d153, 0xb602674c9327bb95316921aea623174f1f20b3338484b7a"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    06221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1530b602674c9327bb95316921aea623174f1f20b3338484b7a704abda8bfca391b7ef8d74b
+    "0x221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d153, 0xb602674c9327bb95316921aea623174f1f20b3338484b7a"
+    12;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    6
+    07221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1530b602674c9327bb95316921aea623174f1f20b3338484b7acc90cd
+    FAIL
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    8
+    0a221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1537e6fec16e568c552de9dc3
+    "0x221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d153, 0xb602674c9327bb95316921aea623174f1f20b3338484b7a"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0e221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1530b602674c9327bb95316921aea623174f1f20b3338484b7ab528
+    "0x221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d153, 0xb602674c9327bb95316921aea623174f1f20b3338484b7a"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; bin: 1, 1"
+    12
+    0f221d6ff334169a924b143bdf6fdfafbfaa83b5ba8d09d1530b602674c9327bb95316921aea623174f1f20b3338484b7a367d87af747f47f8baa943
+    FAIL
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    010f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3921bf5205d034225417a9cda8d
+    "0xf83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3, 0x323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    040f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222740c72d3997951b543ad
+    "0xf83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3, 0x323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222"
+    10;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    020f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3f2b3a0d5c04e1b6a18
+    "0xf83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3, 0x323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222"
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    060f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222f6c29092934952b9b039238e3a3c52
+    "0xf83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3, 0x323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222"
+    15;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    070f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f2229c010dc5e90e8793911b048285
+    FAIL
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0a0f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3e8ab4bdbe0db5ae79f51fcb69c
+    "0xf83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3, 0x323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e0f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f2224cad
+    "0xf83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3, 0x323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f0f83e072c75f0ee7d39fec8340d64bdb8c83cd4546492fc3323d1d0a1e45908dfbfe62254b4f86b0df175389b5b6f222db2cbc
+    FAIL
+    3;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    013d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf771ef29ed1ad295b15d870db977
+    "0x3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7, 0x6a0dd4b1cc1df9ccd9da5f55ccb79e9136b70aa70a7f521c"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    4
+    043d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf757453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb460e
+    "0x3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7, 0x57453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb"
+    2;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    033d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7
+    "0x3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7, 0x57453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb"
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    073d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf757453e5a436763fb3f8f1ba772f0478daa1bd3d047d469ebfe3c510223cefe01e05f09200cd5
+    "0x3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7, 0x57453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    6
+    063d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf757453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb4283ab7b1b98a2b331
+    FAIL
+    9;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0a3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf79f0cd6e0f31b196f7a6630c519
+    "0x3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7, 0x57453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb"
+    13;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0e3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf757453e5a436763fb3f8f1ba772f0478daa1bd3d047d469ebd39b43143d6bc056339abbf7bc2e
+    "0x3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf7, 0x57453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb"
+    14;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    12
+    0f3d48eaeb8f7a9a37e65544f2be47d91c9cacd9774dab3bf757453e5a436763fb3f8f1ba772f0478daa1bd3d047d469eb964e5da7f2ef0457
+    FAIL
+    8;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    02000000000000000000000000000000000000000000000000810eab33
+    "0, 1"
+    4;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    0300000000000000000000000000000000000000000000000006
+    FAIL
+    1;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0a000000000000000000000000000000000000000000000000cf6d860e9f2ca63958f0c4
+    "0, 1"
+    11;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0b000000000000000000000000000000000000000000000000aeabdb38a6382d
+    FAIL
+    7;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    1
+    014972f0274733411c8f7ab6a348dd4789c2125faa86f3d956
+    FAIL
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    2
+    024972f0274733411c8f7ab6a348dd4789c2125faa86f3d956
+    FAIL
+    0;
+  "binpoly: 0x8000000000000000000000000000000000000000000000bb; binproj: 1, 1"
+    8
+    0a4972f0274733411c8f7ab6a348dd4789c2125faa86f3d956
+    FAIL
+    0;
+}