diff --git a/ivtest/gold/sv_foreach9-vvp-stdout.gold b/ivtest/gold/sv_foreach9-vvp-stdout.gold new file mode 100644 index 000000000..6061fe463 --- /dev/null +++ b/ivtest/gold/sv_foreach9-vvp-stdout.gold @@ -0,0 +1,2310 @@ + 0 4 0 0 2 + 0 4 0 0 1 + 0 4 0 0 0 + 0 4 0 1 2 + 0 4 0 1 1 + 0 4 0 1 0 + 0 4 1 0 2 + 0 4 1 0 1 + 0 4 1 0 0 + 0 4 1 1 2 + 0 4 1 1 1 + 0 4 1 1 0 + 0 4 2 0 2 + 0 4 2 0 1 + 0 4 2 0 0 + 0 4 2 1 2 + 0 4 2 1 1 + 0 4 2 1 0 + 0 4 3 0 2 + 0 4 3 0 1 + 0 4 3 0 0 + 0 4 3 1 2 + 0 4 3 1 1 + 0 4 3 1 0 + 0 4 4 0 2 + 0 4 4 0 1 + 0 4 4 0 0 + 0 4 4 1 2 + 0 4 4 1 1 + 0 4 4 1 0 + 0 4 5 0 2 + 0 4 5 0 1 + 0 4 5 0 0 + 0 4 5 1 2 + 0 4 5 1 1 + 0 4 5 1 0 + 0 4 6 0 2 + 0 4 6 0 1 + 0 4 6 0 0 + 0 4 6 1 2 + 0 4 6 1 1 + 0 4 6 1 0 + 0 4 7 0 2 + 0 4 7 0 1 + 0 4 7 0 0 + 0 4 7 1 2 + 0 4 7 1 1 + 0 4 7 1 0 + 0 4 8 0 2 + 0 4 8 0 1 + 0 4 8 0 0 + 0 4 8 1 2 + 0 4 8 1 1 + 0 4 8 1 0 + 0 4 9 0 2 + 0 4 9 0 1 + 0 4 9 0 0 + 0 4 9 1 2 + 0 4 9 1 1 + 0 4 9 1 0 + 0 4 10 0 2 + 0 4 10 0 1 + 0 4 10 0 0 + 0 4 10 1 2 + 0 4 10 1 1 + 0 4 10 1 0 + 0 3 0 0 2 + 0 3 0 0 1 + 0 3 0 0 0 + 0 3 0 1 2 + 0 3 0 1 1 + 0 3 0 1 0 + 0 3 1 0 2 + 0 3 1 0 1 + 0 3 1 0 0 + 0 3 1 1 2 + 0 3 1 1 1 + 0 3 1 1 0 + 0 3 2 0 2 + 0 3 2 0 1 + 0 3 2 0 0 + 0 3 2 1 2 + 0 3 2 1 1 + 0 3 2 1 0 + 0 3 3 0 2 + 0 3 3 0 1 + 0 3 3 0 0 + 0 3 3 1 2 + 0 3 3 1 1 + 0 3 3 1 0 + 0 3 4 0 2 + 0 3 4 0 1 + 0 3 4 0 0 + 0 3 4 1 2 + 0 3 4 1 1 + 0 3 4 1 0 + 0 3 5 0 2 + 0 3 5 0 1 + 0 3 5 0 0 + 0 3 5 1 2 + 0 3 5 1 1 + 0 3 5 1 0 + 0 3 6 0 2 + 0 3 6 0 1 + 0 3 6 0 0 + 0 3 6 1 2 + 0 3 6 1 1 + 0 3 6 1 0 + 0 3 7 0 2 + 0 3 7 0 1 + 0 3 7 0 0 + 0 3 7 1 2 + 0 3 7 1 1 + 0 3 7 1 0 + 0 3 8 0 2 + 0 3 8 0 1 + 0 3 8 0 0 + 0 3 8 1 2 + 0 3 8 1 1 + 0 3 8 1 0 + 0 3 9 0 2 + 0 3 9 0 1 + 0 3 9 0 0 + 0 3 9 1 2 + 0 3 9 1 1 + 0 3 9 1 0 + 0 3 10 0 2 + 0 3 10 0 1 + 0 3 10 0 0 + 0 3 10 1 2 + 0 3 10 1 1 + 0 3 10 1 0 + 0 2 0 0 2 + 0 2 0 0 1 + 0 2 0 0 0 + 0 2 0 1 2 + 0 2 0 1 1 + 0 2 0 1 0 + 0 2 1 0 2 + 0 2 1 0 1 + 0 2 1 0 0 + 0 2 1 1 2 + 0 2 1 1 1 + 0 2 1 1 0 + 0 2 2 0 2 + 0 2 2 0 1 + 0 2 2 0 0 + 0 2 2 1 2 + 0 2 2 1 1 + 0 2 2 1 0 + 0 2 3 0 2 + 0 2 3 0 1 + 0 2 3 0 0 + 0 2 3 1 2 + 0 2 3 1 1 + 0 2 3 1 0 + 0 2 4 0 2 + 0 2 4 0 1 + 0 2 4 0 0 + 0 2 4 1 2 + 0 2 4 1 1 + 0 2 4 1 0 + 0 2 5 0 2 + 0 2 5 0 1 + 0 2 5 0 0 + 0 2 5 1 2 + 0 2 5 1 1 + 0 2 5 1 0 + 0 2 6 0 2 + 0 2 6 0 1 + 0 2 6 0 0 + 0 2 6 1 2 + 0 2 6 1 1 + 0 2 6 1 0 + 0 2 7 0 2 + 0 2 7 0 1 + 0 2 7 0 0 + 0 2 7 1 2 + 0 2 7 1 1 + 0 2 7 1 0 + 0 2 8 0 2 + 0 2 8 0 1 + 0 2 8 0 0 + 0 2 8 1 2 + 0 2 8 1 1 + 0 2 8 1 0 + 0 2 9 0 2 + 0 2 9 0 1 + 0 2 9 0 0 + 0 2 9 1 2 + 0 2 9 1 1 + 0 2 9 1 0 + 0 2 10 0 2 + 0 2 10 0 1 + 0 2 10 0 0 + 0 2 10 1 2 + 0 2 10 1 1 + 0 2 10 1 0 + 0 1 0 0 2 + 0 1 0 0 1 + 0 1 0 0 0 + 0 1 0 1 2 + 0 1 0 1 1 + 0 1 0 1 0 + 0 1 1 0 2 + 0 1 1 0 1 + 0 1 1 0 0 + 0 1 1 1 2 + 0 1 1 1 1 + 0 1 1 1 0 + 0 1 2 0 2 + 0 1 2 0 1 + 0 1 2 0 0 + 0 1 2 1 2 + 0 1 2 1 1 + 0 1 2 1 0 + 0 1 3 0 2 + 0 1 3 0 1 + 0 1 3 0 0 + 0 1 3 1 2 + 0 1 3 1 1 + 0 1 3 1 0 + 0 1 4 0 2 + 0 1 4 0 1 + 0 1 4 0 0 + 0 1 4 1 2 + 0 1 4 1 1 + 0 1 4 1 0 + 0 1 5 0 2 + 0 1 5 0 1 + 0 1 5 0 0 + 0 1 5 1 2 + 0 1 5 1 1 + 0 1 5 1 0 + 0 1 6 0 2 + 0 1 6 0 1 + 0 1 6 0 0 + 0 1 6 1 2 + 0 1 6 1 1 + 0 1 6 1 0 + 0 1 7 0 2 + 0 1 7 0 1 + 0 1 7 0 0 + 0 1 7 1 2 + 0 1 7 1 1 + 0 1 7 1 0 + 0 1 8 0 2 + 0 1 8 0 1 + 0 1 8 0 0 + 0 1 8 1 2 + 0 1 8 1 1 + 0 1 8 1 0 + 0 1 9 0 2 + 0 1 9 0 1 + 0 1 9 0 0 + 0 1 9 1 2 + 0 1 9 1 1 + 0 1 9 1 0 + 0 1 10 0 2 + 0 1 10 0 1 + 0 1 10 0 0 + 0 1 10 1 2 + 0 1 10 1 1 + 0 1 10 1 0 + 0 0 0 0 2 + 0 0 0 0 1 + 0 0 0 0 0 + 0 0 0 1 2 + 0 0 0 1 1 + 0 0 0 1 0 + 0 0 1 0 2 + 0 0 1 0 1 + 0 0 1 0 0 + 0 0 1 1 2 + 0 0 1 1 1 + 0 0 1 1 0 + 0 0 2 0 2 + 0 0 2 0 1 + 0 0 2 0 0 + 0 0 2 1 2 + 0 0 2 1 1 + 0 0 2 1 0 + 0 0 3 0 2 + 0 0 3 0 1 + 0 0 3 0 0 + 0 0 3 1 2 + 0 0 3 1 1 + 0 0 3 1 0 + 0 0 4 0 2 + 0 0 4 0 1 + 0 0 4 0 0 + 0 0 4 1 2 + 0 0 4 1 1 + 0 0 4 1 0 + 0 0 5 0 2 + 0 0 5 0 1 + 0 0 5 0 0 + 0 0 5 1 2 + 0 0 5 1 1 + 0 0 5 1 0 + 0 0 6 0 2 + 0 0 6 0 1 + 0 0 6 0 0 + 0 0 6 1 2 + 0 0 6 1 1 + 0 0 6 1 0 + 0 0 7 0 2 + 0 0 7 0 1 + 0 0 7 0 0 + 0 0 7 1 2 + 0 0 7 1 1 + 0 0 7 1 0 + 0 0 8 0 2 + 0 0 8 0 1 + 0 0 8 0 0 + 0 0 8 1 2 + 0 0 8 1 1 + 0 0 8 1 0 + 0 0 9 0 2 + 0 0 9 0 1 + 0 0 9 0 0 + 0 0 9 1 2 + 0 0 9 1 1 + 0 0 9 1 0 + 0 0 10 0 2 + 0 0 10 0 1 + 0 0 10 0 0 + 0 0 10 1 2 + 0 0 10 1 1 + 0 0 10 1 0 + 1 4 0 0 2 + 1 4 0 0 1 + 1 4 0 0 0 + 1 4 0 1 2 + 1 4 0 1 1 + 1 4 0 1 0 + 1 4 1 0 2 + 1 4 1 0 1 + 1 4 1 0 0 + 1 4 1 1 2 + 1 4 1 1 1 + 1 4 1 1 0 + 1 4 2 0 2 + 1 4 2 0 1 + 1 4 2 0 0 + 1 4 2 1 2 + 1 4 2 1 1 + 1 4 2 1 0 + 1 4 3 0 2 + 1 4 3 0 1 + 1 4 3 0 0 + 1 4 3 1 2 + 1 4 3 1 1 + 1 4 3 1 0 + 1 4 4 0 2 + 1 4 4 0 1 + 1 4 4 0 0 + 1 4 4 1 2 + 1 4 4 1 1 + 1 4 4 1 0 + 1 4 5 0 2 + 1 4 5 0 1 + 1 4 5 0 0 + 1 4 5 1 2 + 1 4 5 1 1 + 1 4 5 1 0 + 1 4 6 0 2 + 1 4 6 0 1 + 1 4 6 0 0 + 1 4 6 1 2 + 1 4 6 1 1 + 1 4 6 1 0 + 1 4 7 0 2 + 1 4 7 0 1 + 1 4 7 0 0 + 1 4 7 1 2 + 1 4 7 1 1 + 1 4 7 1 0 + 1 4 8 0 2 + 1 4 8 0 1 + 1 4 8 0 0 + 1 4 8 1 2 + 1 4 8 1 1 + 1 4 8 1 0 + 1 4 9 0 2 + 1 4 9 0 1 + 1 4 9 0 0 + 1 4 9 1 2 + 1 4 9 1 1 + 1 4 9 1 0 + 1 4 10 0 2 + 1 4 10 0 1 + 1 4 10 0 0 + 1 4 10 1 2 + 1 4 10 1 1 + 1 4 10 1 0 + 1 3 0 0 2 + 1 3 0 0 1 + 1 3 0 0 0 + 1 3 0 1 2 + 1 3 0 1 1 + 1 3 0 1 0 + 1 3 1 0 2 + 1 3 1 0 1 + 1 3 1 0 0 + 1 3 1 1 2 + 1 3 1 1 1 + 1 3 1 1 0 + 1 3 2 0 2 + 1 3 2 0 1 + 1 3 2 0 0 + 1 3 2 1 2 + 1 3 2 1 1 + 1 3 2 1 0 + 1 3 3 0 2 + 1 3 3 0 1 + 1 3 3 0 0 + 1 3 3 1 2 + 1 3 3 1 1 + 1 3 3 1 0 + 1 3 4 0 2 + 1 3 4 0 1 + 1 3 4 0 0 + 1 3 4 1 2 + 1 3 4 1 1 + 1 3 4 1 0 + 1 3 5 0 2 + 1 3 5 0 1 + 1 3 5 0 0 + 1 3 5 1 2 + 1 3 5 1 1 + 1 3 5 1 0 + 1 3 6 0 2 + 1 3 6 0 1 + 1 3 6 0 0 + 1 3 6 1 2 + 1 3 6 1 1 + 1 3 6 1 0 + 1 3 7 0 2 + 1 3 7 0 1 + 1 3 7 0 0 + 1 3 7 1 2 + 1 3 7 1 1 + 1 3 7 1 0 + 1 3 8 0 2 + 1 3 8 0 1 + 1 3 8 0 0 + 1 3 8 1 2 + 1 3 8 1 1 + 1 3 8 1 0 + 1 3 9 0 2 + 1 3 9 0 1 + 1 3 9 0 0 + 1 3 9 1 2 + 1 3 9 1 1 + 1 3 9 1 0 + 1 3 10 0 2 + 1 3 10 0 1 + 1 3 10 0 0 + 1 3 10 1 2 + 1 3 10 1 1 + 1 3 10 1 0 + 1 2 0 0 2 + 1 2 0 0 1 + 1 2 0 0 0 + 1 2 0 1 2 + 1 2 0 1 1 + 1 2 0 1 0 + 1 2 1 0 2 + 1 2 1 0 1 + 1 2 1 0 0 + 1 2 1 1 2 + 1 2 1 1 1 + 1 2 1 1 0 + 1 2 2 0 2 + 1 2 2 0 1 + 1 2 2 0 0 + 1 2 2 1 2 + 1 2 2 1 1 + 1 2 2 1 0 + 1 2 3 0 2 + 1 2 3 0 1 + 1 2 3 0 0 + 1 2 3 1 2 + 1 2 3 1 1 + 1 2 3 1 0 + 1 2 4 0 2 + 1 2 4 0 1 + 1 2 4 0 0 + 1 2 4 1 2 + 1 2 4 1 1 + 1 2 4 1 0 + 1 2 5 0 2 + 1 2 5 0 1 + 1 2 5 0 0 + 1 2 5 1 2 + 1 2 5 1 1 + 1 2 5 1 0 + 1 2 6 0 2 + 1 2 6 0 1 + 1 2 6 0 0 + 1 2 6 1 2 + 1 2 6 1 1 + 1 2 6 1 0 + 1 2 7 0 2 + 1 2 7 0 1 + 1 2 7 0 0 + 1 2 7 1 2 + 1 2 7 1 1 + 1 2 7 1 0 + 1 2 8 0 2 + 1 2 8 0 1 + 1 2 8 0 0 + 1 2 8 1 2 + 1 2 8 1 1 + 1 2 8 1 0 + 1 2 9 0 2 + 1 2 9 0 1 + 1 2 9 0 0 + 1 2 9 1 2 + 1 2 9 1 1 + 1 2 9 1 0 + 1 2 10 0 2 + 1 2 10 0 1 + 1 2 10 0 0 + 1 2 10 1 2 + 1 2 10 1 1 + 1 2 10 1 0 + 1 1 0 0 2 + 1 1 0 0 1 + 1 1 0 0 0 + 1 1 0 1 2 + 1 1 0 1 1 + 1 1 0 1 0 + 1 1 1 0 2 + 1 1 1 0 1 + 1 1 1 0 0 + 1 1 1 1 2 + 1 1 1 1 1 + 1 1 1 1 0 + 1 1 2 0 2 + 1 1 2 0 1 + 1 1 2 0 0 + 1 1 2 1 2 + 1 1 2 1 1 + 1 1 2 1 0 + 1 1 3 0 2 + 1 1 3 0 1 + 1 1 3 0 0 + 1 1 3 1 2 + 1 1 3 1 1 + 1 1 3 1 0 + 1 1 4 0 2 + 1 1 4 0 1 + 1 1 4 0 0 + 1 1 4 1 2 + 1 1 4 1 1 + 1 1 4 1 0 + 1 1 5 0 2 + 1 1 5 0 1 + 1 1 5 0 0 + 1 1 5 1 2 + 1 1 5 1 1 + 1 1 5 1 0 + 1 1 6 0 2 + 1 1 6 0 1 + 1 1 6 0 0 + 1 1 6 1 2 + 1 1 6 1 1 + 1 1 6 1 0 + 1 1 7 0 2 + 1 1 7 0 1 + 1 1 7 0 0 + 1 1 7 1 2 + 1 1 7 1 1 + 1 1 7 1 0 + 1 1 8 0 2 + 1 1 8 0 1 + 1 1 8 0 0 + 1 1 8 1 2 + 1 1 8 1 1 + 1 1 8 1 0 + 1 1 9 0 2 + 1 1 9 0 1 + 1 1 9 0 0 + 1 1 9 1 2 + 1 1 9 1 1 + 1 1 9 1 0 + 1 1 10 0 2 + 1 1 10 0 1 + 1 1 10 0 0 + 1 1 10 1 2 + 1 1 10 1 1 + 1 1 10 1 0 + 1 0 0 0 2 + 1 0 0 0 1 + 1 0 0 0 0 + 1 0 0 1 2 + 1 0 0 1 1 + 1 0 0 1 0 + 1 0 1 0 2 + 1 0 1 0 1 + 1 0 1 0 0 + 1 0 1 1 2 + 1 0 1 1 1 + 1 0 1 1 0 + 1 0 2 0 2 + 1 0 2 0 1 + 1 0 2 0 0 + 1 0 2 1 2 + 1 0 2 1 1 + 1 0 2 1 0 + 1 0 3 0 2 + 1 0 3 0 1 + 1 0 3 0 0 + 1 0 3 1 2 + 1 0 3 1 1 + 1 0 3 1 0 + 1 0 4 0 2 + 1 0 4 0 1 + 1 0 4 0 0 + 1 0 4 1 2 + 1 0 4 1 1 + 1 0 4 1 0 + 1 0 5 0 2 + 1 0 5 0 1 + 1 0 5 0 0 + 1 0 5 1 2 + 1 0 5 1 1 + 1 0 5 1 0 + 1 0 6 0 2 + 1 0 6 0 1 + 1 0 6 0 0 + 1 0 6 1 2 + 1 0 6 1 1 + 1 0 6 1 0 + 1 0 7 0 2 + 1 0 7 0 1 + 1 0 7 0 0 + 1 0 7 1 2 + 1 0 7 1 1 + 1 0 7 1 0 + 1 0 8 0 2 + 1 0 8 0 1 + 1 0 8 0 0 + 1 0 8 1 2 + 1 0 8 1 1 + 1 0 8 1 0 + 1 0 9 0 2 + 1 0 9 0 1 + 1 0 9 0 0 + 1 0 9 1 2 + 1 0 9 1 1 + 1 0 9 1 0 + 1 0 10 0 2 + 1 0 10 0 1 + 1 0 10 0 0 + 1 0 10 1 2 + 1 0 10 1 1 + 1 0 10 1 0 + 2 4 0 0 2 + 2 4 0 0 1 + 2 4 0 0 0 + 2 4 0 1 2 + 2 4 0 1 1 + 2 4 0 1 0 + 2 4 1 0 2 + 2 4 1 0 1 + 2 4 1 0 0 + 2 4 1 1 2 + 2 4 1 1 1 + 2 4 1 1 0 + 2 4 2 0 2 + 2 4 2 0 1 + 2 4 2 0 0 + 2 4 2 1 2 + 2 4 2 1 1 + 2 4 2 1 0 + 2 4 3 0 2 + 2 4 3 0 1 + 2 4 3 0 0 + 2 4 3 1 2 + 2 4 3 1 1 + 2 4 3 1 0 + 2 4 4 0 2 + 2 4 4 0 1 + 2 4 4 0 0 + 2 4 4 1 2 + 2 4 4 1 1 + 2 4 4 1 0 + 2 4 5 0 2 + 2 4 5 0 1 + 2 4 5 0 0 + 2 4 5 1 2 + 2 4 5 1 1 + 2 4 5 1 0 + 2 4 6 0 2 + 2 4 6 0 1 + 2 4 6 0 0 + 2 4 6 1 2 + 2 4 6 1 1 + 2 4 6 1 0 + 2 4 7 0 2 + 2 4 7 0 1 + 2 4 7 0 0 + 2 4 7 1 2 + 2 4 7 1 1 + 2 4 7 1 0 + 2 4 8 0 2 + 2 4 8 0 1 + 2 4 8 0 0 + 2 4 8 1 2 + 2 4 8 1 1 + 2 4 8 1 0 + 2 4 9 0 2 + 2 4 9 0 1 + 2 4 9 0 0 + 2 4 9 1 2 + 2 4 9 1 1 + 2 4 9 1 0 + 2 4 10 0 2 + 2 4 10 0 1 + 2 4 10 0 0 + 2 4 10 1 2 + 2 4 10 1 1 + 2 4 10 1 0 + 2 3 0 0 2 + 2 3 0 0 1 + 2 3 0 0 0 + 2 3 0 1 2 + 2 3 0 1 1 + 2 3 0 1 0 + 2 3 1 0 2 + 2 3 1 0 1 + 2 3 1 0 0 + 2 3 1 1 2 + 2 3 1 1 1 + 2 3 1 1 0 + 2 3 2 0 2 + 2 3 2 0 1 + 2 3 2 0 0 + 2 3 2 1 2 + 2 3 2 1 1 + 2 3 2 1 0 + 2 3 3 0 2 + 2 3 3 0 1 + 2 3 3 0 0 + 2 3 3 1 2 + 2 3 3 1 1 + 2 3 3 1 0 + 2 3 4 0 2 + 2 3 4 0 1 + 2 3 4 0 0 + 2 3 4 1 2 + 2 3 4 1 1 + 2 3 4 1 0 + 2 3 5 0 2 + 2 3 5 0 1 + 2 3 5 0 0 + 2 3 5 1 2 + 2 3 5 1 1 + 2 3 5 1 0 + 2 3 6 0 2 + 2 3 6 0 1 + 2 3 6 0 0 + 2 3 6 1 2 + 2 3 6 1 1 + 2 3 6 1 0 + 2 3 7 0 2 + 2 3 7 0 1 + 2 3 7 0 0 + 2 3 7 1 2 + 2 3 7 1 1 + 2 3 7 1 0 + 2 3 8 0 2 + 2 3 8 0 1 + 2 3 8 0 0 + 2 3 8 1 2 + 2 3 8 1 1 + 2 3 8 1 0 + 2 3 9 0 2 + 2 3 9 0 1 + 2 3 9 0 0 + 2 3 9 1 2 + 2 3 9 1 1 + 2 3 9 1 0 + 2 3 10 0 2 + 2 3 10 0 1 + 2 3 10 0 0 + 2 3 10 1 2 + 2 3 10 1 1 + 2 3 10 1 0 + 2 2 0 0 2 + 2 2 0 0 1 + 2 2 0 0 0 + 2 2 0 1 2 + 2 2 0 1 1 + 2 2 0 1 0 + 2 2 1 0 2 + 2 2 1 0 1 + 2 2 1 0 0 + 2 2 1 1 2 + 2 2 1 1 1 + 2 2 1 1 0 + 2 2 2 0 2 + 2 2 2 0 1 + 2 2 2 0 0 + 2 2 2 1 2 + 2 2 2 1 1 + 2 2 2 1 0 + 2 2 3 0 2 + 2 2 3 0 1 + 2 2 3 0 0 + 2 2 3 1 2 + 2 2 3 1 1 + 2 2 3 1 0 + 2 2 4 0 2 + 2 2 4 0 1 + 2 2 4 0 0 + 2 2 4 1 2 + 2 2 4 1 1 + 2 2 4 1 0 + 2 2 5 0 2 + 2 2 5 0 1 + 2 2 5 0 0 + 2 2 5 1 2 + 2 2 5 1 1 + 2 2 5 1 0 + 2 2 6 0 2 + 2 2 6 0 1 + 2 2 6 0 0 + 2 2 6 1 2 + 2 2 6 1 1 + 2 2 6 1 0 + 2 2 7 0 2 + 2 2 7 0 1 + 2 2 7 0 0 + 2 2 7 1 2 + 2 2 7 1 1 + 2 2 7 1 0 + 2 2 8 0 2 + 2 2 8 0 1 + 2 2 8 0 0 + 2 2 8 1 2 + 2 2 8 1 1 + 2 2 8 1 0 + 2 2 9 0 2 + 2 2 9 0 1 + 2 2 9 0 0 + 2 2 9 1 2 + 2 2 9 1 1 + 2 2 9 1 0 + 2 2 10 0 2 + 2 2 10 0 1 + 2 2 10 0 0 + 2 2 10 1 2 + 2 2 10 1 1 + 2 2 10 1 0 + 2 1 0 0 2 + 2 1 0 0 1 + 2 1 0 0 0 + 2 1 0 1 2 + 2 1 0 1 1 + 2 1 0 1 0 + 2 1 1 0 2 + 2 1 1 0 1 + 2 1 1 0 0 + 2 1 1 1 2 + 2 1 1 1 1 + 2 1 1 1 0 + 2 1 2 0 2 + 2 1 2 0 1 + 2 1 2 0 0 + 2 1 2 1 2 + 2 1 2 1 1 + 2 1 2 1 0 + 2 1 3 0 2 + 2 1 3 0 1 + 2 1 3 0 0 + 2 1 3 1 2 + 2 1 3 1 1 + 2 1 3 1 0 + 2 1 4 0 2 + 2 1 4 0 1 + 2 1 4 0 0 + 2 1 4 1 2 + 2 1 4 1 1 + 2 1 4 1 0 + 2 1 5 0 2 + 2 1 5 0 1 + 2 1 5 0 0 + 2 1 5 1 2 + 2 1 5 1 1 + 2 1 5 1 0 + 2 1 6 0 2 + 2 1 6 0 1 + 2 1 6 0 0 + 2 1 6 1 2 + 2 1 6 1 1 + 2 1 6 1 0 + 2 1 7 0 2 + 2 1 7 0 1 + 2 1 7 0 0 + 2 1 7 1 2 + 2 1 7 1 1 + 2 1 7 1 0 + 2 1 8 0 2 + 2 1 8 0 1 + 2 1 8 0 0 + 2 1 8 1 2 + 2 1 8 1 1 + 2 1 8 1 0 + 2 1 9 0 2 + 2 1 9 0 1 + 2 1 9 0 0 + 2 1 9 1 2 + 2 1 9 1 1 + 2 1 9 1 0 + 2 1 10 0 2 + 2 1 10 0 1 + 2 1 10 0 0 + 2 1 10 1 2 + 2 1 10 1 1 + 2 1 10 1 0 + 2 0 0 0 2 + 2 0 0 0 1 + 2 0 0 0 0 + 2 0 0 1 2 + 2 0 0 1 1 + 2 0 0 1 0 + 2 0 1 0 2 + 2 0 1 0 1 + 2 0 1 0 0 + 2 0 1 1 2 + 2 0 1 1 1 + 2 0 1 1 0 + 2 0 2 0 2 + 2 0 2 0 1 + 2 0 2 0 0 + 2 0 2 1 2 + 2 0 2 1 1 + 2 0 2 1 0 + 2 0 3 0 2 + 2 0 3 0 1 + 2 0 3 0 0 + 2 0 3 1 2 + 2 0 3 1 1 + 2 0 3 1 0 + 2 0 4 0 2 + 2 0 4 0 1 + 2 0 4 0 0 + 2 0 4 1 2 + 2 0 4 1 1 + 2 0 4 1 0 + 2 0 5 0 2 + 2 0 5 0 1 + 2 0 5 0 0 + 2 0 5 1 2 + 2 0 5 1 1 + 2 0 5 1 0 + 2 0 6 0 2 + 2 0 6 0 1 + 2 0 6 0 0 + 2 0 6 1 2 + 2 0 6 1 1 + 2 0 6 1 0 + 2 0 7 0 2 + 2 0 7 0 1 + 2 0 7 0 0 + 2 0 7 1 2 + 2 0 7 1 1 + 2 0 7 1 0 + 2 0 8 0 2 + 2 0 8 0 1 + 2 0 8 0 0 + 2 0 8 1 2 + 2 0 8 1 1 + 2 0 8 1 0 + 2 0 9 0 2 + 2 0 9 0 1 + 2 0 9 0 0 + 2 0 9 1 2 + 2 0 9 1 1 + 2 0 9 1 0 + 2 0 10 0 2 + 2 0 10 0 1 + 2 0 10 0 0 + 2 0 10 1 2 + 2 0 10 1 1 + 2 0 10 1 0 + 3 4 0 0 2 + 3 4 0 0 1 + 3 4 0 0 0 + 3 4 0 1 2 + 3 4 0 1 1 + 3 4 0 1 0 + 3 4 1 0 2 + 3 4 1 0 1 + 3 4 1 0 0 + 3 4 1 1 2 + 3 4 1 1 1 + 3 4 1 1 0 + 3 4 2 0 2 + 3 4 2 0 1 + 3 4 2 0 0 + 3 4 2 1 2 + 3 4 2 1 1 + 3 4 2 1 0 + 3 4 3 0 2 + 3 4 3 0 1 + 3 4 3 0 0 + 3 4 3 1 2 + 3 4 3 1 1 + 3 4 3 1 0 + 3 4 4 0 2 + 3 4 4 0 1 + 3 4 4 0 0 + 3 4 4 1 2 + 3 4 4 1 1 + 3 4 4 1 0 + 3 4 5 0 2 + 3 4 5 0 1 + 3 4 5 0 0 + 3 4 5 1 2 + 3 4 5 1 1 + 3 4 5 1 0 + 3 4 6 0 2 + 3 4 6 0 1 + 3 4 6 0 0 + 3 4 6 1 2 + 3 4 6 1 1 + 3 4 6 1 0 + 3 4 7 0 2 + 3 4 7 0 1 + 3 4 7 0 0 + 3 4 7 1 2 + 3 4 7 1 1 + 3 4 7 1 0 + 3 4 8 0 2 + 3 4 8 0 1 + 3 4 8 0 0 + 3 4 8 1 2 + 3 4 8 1 1 + 3 4 8 1 0 + 3 4 9 0 2 + 3 4 9 0 1 + 3 4 9 0 0 + 3 4 9 1 2 + 3 4 9 1 1 + 3 4 9 1 0 + 3 4 10 0 2 + 3 4 10 0 1 + 3 4 10 0 0 + 3 4 10 1 2 + 3 4 10 1 1 + 3 4 10 1 0 + 3 3 0 0 2 + 3 3 0 0 1 + 3 3 0 0 0 + 3 3 0 1 2 + 3 3 0 1 1 + 3 3 0 1 0 + 3 3 1 0 2 + 3 3 1 0 1 + 3 3 1 0 0 + 3 3 1 1 2 + 3 3 1 1 1 + 3 3 1 1 0 + 3 3 2 0 2 + 3 3 2 0 1 + 3 3 2 0 0 + 3 3 2 1 2 + 3 3 2 1 1 + 3 3 2 1 0 + 3 3 3 0 2 + 3 3 3 0 1 + 3 3 3 0 0 + 3 3 3 1 2 + 3 3 3 1 1 + 3 3 3 1 0 + 3 3 4 0 2 + 3 3 4 0 1 + 3 3 4 0 0 + 3 3 4 1 2 + 3 3 4 1 1 + 3 3 4 1 0 + 3 3 5 0 2 + 3 3 5 0 1 + 3 3 5 0 0 + 3 3 5 1 2 + 3 3 5 1 1 + 3 3 5 1 0 + 3 3 6 0 2 + 3 3 6 0 1 + 3 3 6 0 0 + 3 3 6 1 2 + 3 3 6 1 1 + 3 3 6 1 0 + 3 3 7 0 2 + 3 3 7 0 1 + 3 3 7 0 0 + 3 3 7 1 2 + 3 3 7 1 1 + 3 3 7 1 0 + 3 3 8 0 2 + 3 3 8 0 1 + 3 3 8 0 0 + 3 3 8 1 2 + 3 3 8 1 1 + 3 3 8 1 0 + 3 3 9 0 2 + 3 3 9 0 1 + 3 3 9 0 0 + 3 3 9 1 2 + 3 3 9 1 1 + 3 3 9 1 0 + 3 3 10 0 2 + 3 3 10 0 1 + 3 3 10 0 0 + 3 3 10 1 2 + 3 3 10 1 1 + 3 3 10 1 0 + 3 2 0 0 2 + 3 2 0 0 1 + 3 2 0 0 0 + 3 2 0 1 2 + 3 2 0 1 1 + 3 2 0 1 0 + 3 2 1 0 2 + 3 2 1 0 1 + 3 2 1 0 0 + 3 2 1 1 2 + 3 2 1 1 1 + 3 2 1 1 0 + 3 2 2 0 2 + 3 2 2 0 1 + 3 2 2 0 0 + 3 2 2 1 2 + 3 2 2 1 1 + 3 2 2 1 0 + 3 2 3 0 2 + 3 2 3 0 1 + 3 2 3 0 0 + 3 2 3 1 2 + 3 2 3 1 1 + 3 2 3 1 0 + 3 2 4 0 2 + 3 2 4 0 1 + 3 2 4 0 0 + 3 2 4 1 2 + 3 2 4 1 1 + 3 2 4 1 0 + 3 2 5 0 2 + 3 2 5 0 1 + 3 2 5 0 0 + 3 2 5 1 2 + 3 2 5 1 1 + 3 2 5 1 0 + 3 2 6 0 2 + 3 2 6 0 1 + 3 2 6 0 0 + 3 2 6 1 2 + 3 2 6 1 1 + 3 2 6 1 0 + 3 2 7 0 2 + 3 2 7 0 1 + 3 2 7 0 0 + 3 2 7 1 2 + 3 2 7 1 1 + 3 2 7 1 0 + 3 2 8 0 2 + 3 2 8 0 1 + 3 2 8 0 0 + 3 2 8 1 2 + 3 2 8 1 1 + 3 2 8 1 0 + 3 2 9 0 2 + 3 2 9 0 1 + 3 2 9 0 0 + 3 2 9 1 2 + 3 2 9 1 1 + 3 2 9 1 0 + 3 2 10 0 2 + 3 2 10 0 1 + 3 2 10 0 0 + 3 2 10 1 2 + 3 2 10 1 1 + 3 2 10 1 0 + 3 1 0 0 2 + 3 1 0 0 1 + 3 1 0 0 0 + 3 1 0 1 2 + 3 1 0 1 1 + 3 1 0 1 0 + 3 1 1 0 2 + 3 1 1 0 1 + 3 1 1 0 0 + 3 1 1 1 2 + 3 1 1 1 1 + 3 1 1 1 0 + 3 1 2 0 2 + 3 1 2 0 1 + 3 1 2 0 0 + 3 1 2 1 2 + 3 1 2 1 1 + 3 1 2 1 0 + 3 1 3 0 2 + 3 1 3 0 1 + 3 1 3 0 0 + 3 1 3 1 2 + 3 1 3 1 1 + 3 1 3 1 0 + 3 1 4 0 2 + 3 1 4 0 1 + 3 1 4 0 0 + 3 1 4 1 2 + 3 1 4 1 1 + 3 1 4 1 0 + 3 1 5 0 2 + 3 1 5 0 1 + 3 1 5 0 0 + 3 1 5 1 2 + 3 1 5 1 1 + 3 1 5 1 0 + 3 1 6 0 2 + 3 1 6 0 1 + 3 1 6 0 0 + 3 1 6 1 2 + 3 1 6 1 1 + 3 1 6 1 0 + 3 1 7 0 2 + 3 1 7 0 1 + 3 1 7 0 0 + 3 1 7 1 2 + 3 1 7 1 1 + 3 1 7 1 0 + 3 1 8 0 2 + 3 1 8 0 1 + 3 1 8 0 0 + 3 1 8 1 2 + 3 1 8 1 1 + 3 1 8 1 0 + 3 1 9 0 2 + 3 1 9 0 1 + 3 1 9 0 0 + 3 1 9 1 2 + 3 1 9 1 1 + 3 1 9 1 0 + 3 1 10 0 2 + 3 1 10 0 1 + 3 1 10 0 0 + 3 1 10 1 2 + 3 1 10 1 1 + 3 1 10 1 0 + 3 0 0 0 2 + 3 0 0 0 1 + 3 0 0 0 0 + 3 0 0 1 2 + 3 0 0 1 1 + 3 0 0 1 0 + 3 0 1 0 2 + 3 0 1 0 1 + 3 0 1 0 0 + 3 0 1 1 2 + 3 0 1 1 1 + 3 0 1 1 0 + 3 0 2 0 2 + 3 0 2 0 1 + 3 0 2 0 0 + 3 0 2 1 2 + 3 0 2 1 1 + 3 0 2 1 0 + 3 0 3 0 2 + 3 0 3 0 1 + 3 0 3 0 0 + 3 0 3 1 2 + 3 0 3 1 1 + 3 0 3 1 0 + 3 0 4 0 2 + 3 0 4 0 1 + 3 0 4 0 0 + 3 0 4 1 2 + 3 0 4 1 1 + 3 0 4 1 0 + 3 0 5 0 2 + 3 0 5 0 1 + 3 0 5 0 0 + 3 0 5 1 2 + 3 0 5 1 1 + 3 0 5 1 0 + 3 0 6 0 2 + 3 0 6 0 1 + 3 0 6 0 0 + 3 0 6 1 2 + 3 0 6 1 1 + 3 0 6 1 0 + 3 0 7 0 2 + 3 0 7 0 1 + 3 0 7 0 0 + 3 0 7 1 2 + 3 0 7 1 1 + 3 0 7 1 0 + 3 0 8 0 2 + 3 0 8 0 1 + 3 0 8 0 0 + 3 0 8 1 2 + 3 0 8 1 1 + 3 0 8 1 0 + 3 0 9 0 2 + 3 0 9 0 1 + 3 0 9 0 0 + 3 0 9 1 2 + 3 0 9 1 1 + 3 0 9 1 0 + 3 0 10 0 2 + 3 0 10 0 1 + 3 0 10 0 0 + 3 0 10 1 2 + 3 0 10 1 1 + 3 0 10 1 0 + 4 4 0 0 2 + 4 4 0 0 1 + 4 4 0 0 0 + 4 4 0 1 2 + 4 4 0 1 1 + 4 4 0 1 0 + 4 4 1 0 2 + 4 4 1 0 1 + 4 4 1 0 0 + 4 4 1 1 2 + 4 4 1 1 1 + 4 4 1 1 0 + 4 4 2 0 2 + 4 4 2 0 1 + 4 4 2 0 0 + 4 4 2 1 2 + 4 4 2 1 1 + 4 4 2 1 0 + 4 4 3 0 2 + 4 4 3 0 1 + 4 4 3 0 0 + 4 4 3 1 2 + 4 4 3 1 1 + 4 4 3 1 0 + 4 4 4 0 2 + 4 4 4 0 1 + 4 4 4 0 0 + 4 4 4 1 2 + 4 4 4 1 1 + 4 4 4 1 0 + 4 4 5 0 2 + 4 4 5 0 1 + 4 4 5 0 0 + 4 4 5 1 2 + 4 4 5 1 1 + 4 4 5 1 0 + 4 4 6 0 2 + 4 4 6 0 1 + 4 4 6 0 0 + 4 4 6 1 2 + 4 4 6 1 1 + 4 4 6 1 0 + 4 4 7 0 2 + 4 4 7 0 1 + 4 4 7 0 0 + 4 4 7 1 2 + 4 4 7 1 1 + 4 4 7 1 0 + 4 4 8 0 2 + 4 4 8 0 1 + 4 4 8 0 0 + 4 4 8 1 2 + 4 4 8 1 1 + 4 4 8 1 0 + 4 4 9 0 2 + 4 4 9 0 1 + 4 4 9 0 0 + 4 4 9 1 2 + 4 4 9 1 1 + 4 4 9 1 0 + 4 4 10 0 2 + 4 4 10 0 1 + 4 4 10 0 0 + 4 4 10 1 2 + 4 4 10 1 1 + 4 4 10 1 0 + 4 3 0 0 2 + 4 3 0 0 1 + 4 3 0 0 0 + 4 3 0 1 2 + 4 3 0 1 1 + 4 3 0 1 0 + 4 3 1 0 2 + 4 3 1 0 1 + 4 3 1 0 0 + 4 3 1 1 2 + 4 3 1 1 1 + 4 3 1 1 0 + 4 3 2 0 2 + 4 3 2 0 1 + 4 3 2 0 0 + 4 3 2 1 2 + 4 3 2 1 1 + 4 3 2 1 0 + 4 3 3 0 2 + 4 3 3 0 1 + 4 3 3 0 0 + 4 3 3 1 2 + 4 3 3 1 1 + 4 3 3 1 0 + 4 3 4 0 2 + 4 3 4 0 1 + 4 3 4 0 0 + 4 3 4 1 2 + 4 3 4 1 1 + 4 3 4 1 0 + 4 3 5 0 2 + 4 3 5 0 1 + 4 3 5 0 0 + 4 3 5 1 2 + 4 3 5 1 1 + 4 3 5 1 0 + 4 3 6 0 2 + 4 3 6 0 1 + 4 3 6 0 0 + 4 3 6 1 2 + 4 3 6 1 1 + 4 3 6 1 0 + 4 3 7 0 2 + 4 3 7 0 1 + 4 3 7 0 0 + 4 3 7 1 2 + 4 3 7 1 1 + 4 3 7 1 0 + 4 3 8 0 2 + 4 3 8 0 1 + 4 3 8 0 0 + 4 3 8 1 2 + 4 3 8 1 1 + 4 3 8 1 0 + 4 3 9 0 2 + 4 3 9 0 1 + 4 3 9 0 0 + 4 3 9 1 2 + 4 3 9 1 1 + 4 3 9 1 0 + 4 3 10 0 2 + 4 3 10 0 1 + 4 3 10 0 0 + 4 3 10 1 2 + 4 3 10 1 1 + 4 3 10 1 0 + 4 2 0 0 2 + 4 2 0 0 1 + 4 2 0 0 0 + 4 2 0 1 2 + 4 2 0 1 1 + 4 2 0 1 0 + 4 2 1 0 2 + 4 2 1 0 1 + 4 2 1 0 0 + 4 2 1 1 2 + 4 2 1 1 1 + 4 2 1 1 0 + 4 2 2 0 2 + 4 2 2 0 1 + 4 2 2 0 0 + 4 2 2 1 2 + 4 2 2 1 1 + 4 2 2 1 0 + 4 2 3 0 2 + 4 2 3 0 1 + 4 2 3 0 0 + 4 2 3 1 2 + 4 2 3 1 1 + 4 2 3 1 0 + 4 2 4 0 2 + 4 2 4 0 1 + 4 2 4 0 0 + 4 2 4 1 2 + 4 2 4 1 1 + 4 2 4 1 0 + 4 2 5 0 2 + 4 2 5 0 1 + 4 2 5 0 0 + 4 2 5 1 2 + 4 2 5 1 1 + 4 2 5 1 0 + 4 2 6 0 2 + 4 2 6 0 1 + 4 2 6 0 0 + 4 2 6 1 2 + 4 2 6 1 1 + 4 2 6 1 0 + 4 2 7 0 2 + 4 2 7 0 1 + 4 2 7 0 0 + 4 2 7 1 2 + 4 2 7 1 1 + 4 2 7 1 0 + 4 2 8 0 2 + 4 2 8 0 1 + 4 2 8 0 0 + 4 2 8 1 2 + 4 2 8 1 1 + 4 2 8 1 0 + 4 2 9 0 2 + 4 2 9 0 1 + 4 2 9 0 0 + 4 2 9 1 2 + 4 2 9 1 1 + 4 2 9 1 0 + 4 2 10 0 2 + 4 2 10 0 1 + 4 2 10 0 0 + 4 2 10 1 2 + 4 2 10 1 1 + 4 2 10 1 0 + 4 1 0 0 2 + 4 1 0 0 1 + 4 1 0 0 0 + 4 1 0 1 2 + 4 1 0 1 1 + 4 1 0 1 0 + 4 1 1 0 2 + 4 1 1 0 1 + 4 1 1 0 0 + 4 1 1 1 2 + 4 1 1 1 1 + 4 1 1 1 0 + 4 1 2 0 2 + 4 1 2 0 1 + 4 1 2 0 0 + 4 1 2 1 2 + 4 1 2 1 1 + 4 1 2 1 0 + 4 1 3 0 2 + 4 1 3 0 1 + 4 1 3 0 0 + 4 1 3 1 2 + 4 1 3 1 1 + 4 1 3 1 0 + 4 1 4 0 2 + 4 1 4 0 1 + 4 1 4 0 0 + 4 1 4 1 2 + 4 1 4 1 1 + 4 1 4 1 0 + 4 1 5 0 2 + 4 1 5 0 1 + 4 1 5 0 0 + 4 1 5 1 2 + 4 1 5 1 1 + 4 1 5 1 0 + 4 1 6 0 2 + 4 1 6 0 1 + 4 1 6 0 0 + 4 1 6 1 2 + 4 1 6 1 1 + 4 1 6 1 0 + 4 1 7 0 2 + 4 1 7 0 1 + 4 1 7 0 0 + 4 1 7 1 2 + 4 1 7 1 1 + 4 1 7 1 0 + 4 1 8 0 2 + 4 1 8 0 1 + 4 1 8 0 0 + 4 1 8 1 2 + 4 1 8 1 1 + 4 1 8 1 0 + 4 1 9 0 2 + 4 1 9 0 1 + 4 1 9 0 0 + 4 1 9 1 2 + 4 1 9 1 1 + 4 1 9 1 0 + 4 1 10 0 2 + 4 1 10 0 1 + 4 1 10 0 0 + 4 1 10 1 2 + 4 1 10 1 1 + 4 1 10 1 0 + 4 0 0 0 2 + 4 0 0 0 1 + 4 0 0 0 0 + 4 0 0 1 2 + 4 0 0 1 1 + 4 0 0 1 0 + 4 0 1 0 2 + 4 0 1 0 1 + 4 0 1 0 0 + 4 0 1 1 2 + 4 0 1 1 1 + 4 0 1 1 0 + 4 0 2 0 2 + 4 0 2 0 1 + 4 0 2 0 0 + 4 0 2 1 2 + 4 0 2 1 1 + 4 0 2 1 0 + 4 0 3 0 2 + 4 0 3 0 1 + 4 0 3 0 0 + 4 0 3 1 2 + 4 0 3 1 1 + 4 0 3 1 0 + 4 0 4 0 2 + 4 0 4 0 1 + 4 0 4 0 0 + 4 0 4 1 2 + 4 0 4 1 1 + 4 0 4 1 0 + 4 0 5 0 2 + 4 0 5 0 1 + 4 0 5 0 0 + 4 0 5 1 2 + 4 0 5 1 1 + 4 0 5 1 0 + 4 0 6 0 2 + 4 0 6 0 1 + 4 0 6 0 0 + 4 0 6 1 2 + 4 0 6 1 1 + 4 0 6 1 0 + 4 0 7 0 2 + 4 0 7 0 1 + 4 0 7 0 0 + 4 0 7 1 2 + 4 0 7 1 1 + 4 0 7 1 0 + 4 0 8 0 2 + 4 0 8 0 1 + 4 0 8 0 0 + 4 0 8 1 2 + 4 0 8 1 1 + 4 0 8 1 0 + 4 0 9 0 2 + 4 0 9 0 1 + 4 0 9 0 0 + 4 0 9 1 2 + 4 0 9 1 1 + 4 0 9 1 0 + 4 0 10 0 2 + 4 0 10 0 1 + 4 0 10 0 0 + 4 0 10 1 2 + 4 0 10 1 1 + 4 0 10 1 0 + 5 4 0 0 2 + 5 4 0 0 1 + 5 4 0 0 0 + 5 4 0 1 2 + 5 4 0 1 1 + 5 4 0 1 0 + 5 4 1 0 2 + 5 4 1 0 1 + 5 4 1 0 0 + 5 4 1 1 2 + 5 4 1 1 1 + 5 4 1 1 0 + 5 4 2 0 2 + 5 4 2 0 1 + 5 4 2 0 0 + 5 4 2 1 2 + 5 4 2 1 1 + 5 4 2 1 0 + 5 4 3 0 2 + 5 4 3 0 1 + 5 4 3 0 0 + 5 4 3 1 2 + 5 4 3 1 1 + 5 4 3 1 0 + 5 4 4 0 2 + 5 4 4 0 1 + 5 4 4 0 0 + 5 4 4 1 2 + 5 4 4 1 1 + 5 4 4 1 0 + 5 4 5 0 2 + 5 4 5 0 1 + 5 4 5 0 0 + 5 4 5 1 2 + 5 4 5 1 1 + 5 4 5 1 0 + 5 4 6 0 2 + 5 4 6 0 1 + 5 4 6 0 0 + 5 4 6 1 2 + 5 4 6 1 1 + 5 4 6 1 0 + 5 4 7 0 2 + 5 4 7 0 1 + 5 4 7 0 0 + 5 4 7 1 2 + 5 4 7 1 1 + 5 4 7 1 0 + 5 4 8 0 2 + 5 4 8 0 1 + 5 4 8 0 0 + 5 4 8 1 2 + 5 4 8 1 1 + 5 4 8 1 0 + 5 4 9 0 2 + 5 4 9 0 1 + 5 4 9 0 0 + 5 4 9 1 2 + 5 4 9 1 1 + 5 4 9 1 0 + 5 4 10 0 2 + 5 4 10 0 1 + 5 4 10 0 0 + 5 4 10 1 2 + 5 4 10 1 1 + 5 4 10 1 0 + 5 3 0 0 2 + 5 3 0 0 1 + 5 3 0 0 0 + 5 3 0 1 2 + 5 3 0 1 1 + 5 3 0 1 0 + 5 3 1 0 2 + 5 3 1 0 1 + 5 3 1 0 0 + 5 3 1 1 2 + 5 3 1 1 1 + 5 3 1 1 0 + 5 3 2 0 2 + 5 3 2 0 1 + 5 3 2 0 0 + 5 3 2 1 2 + 5 3 2 1 1 + 5 3 2 1 0 + 5 3 3 0 2 + 5 3 3 0 1 + 5 3 3 0 0 + 5 3 3 1 2 + 5 3 3 1 1 + 5 3 3 1 0 + 5 3 4 0 2 + 5 3 4 0 1 + 5 3 4 0 0 + 5 3 4 1 2 + 5 3 4 1 1 + 5 3 4 1 0 + 5 3 5 0 2 + 5 3 5 0 1 + 5 3 5 0 0 + 5 3 5 1 2 + 5 3 5 1 1 + 5 3 5 1 0 + 5 3 6 0 2 + 5 3 6 0 1 + 5 3 6 0 0 + 5 3 6 1 2 + 5 3 6 1 1 + 5 3 6 1 0 + 5 3 7 0 2 + 5 3 7 0 1 + 5 3 7 0 0 + 5 3 7 1 2 + 5 3 7 1 1 + 5 3 7 1 0 + 5 3 8 0 2 + 5 3 8 0 1 + 5 3 8 0 0 + 5 3 8 1 2 + 5 3 8 1 1 + 5 3 8 1 0 + 5 3 9 0 2 + 5 3 9 0 1 + 5 3 9 0 0 + 5 3 9 1 2 + 5 3 9 1 1 + 5 3 9 1 0 + 5 3 10 0 2 + 5 3 10 0 1 + 5 3 10 0 0 + 5 3 10 1 2 + 5 3 10 1 1 + 5 3 10 1 0 + 5 2 0 0 2 + 5 2 0 0 1 + 5 2 0 0 0 + 5 2 0 1 2 + 5 2 0 1 1 + 5 2 0 1 0 + 5 2 1 0 2 + 5 2 1 0 1 + 5 2 1 0 0 + 5 2 1 1 2 + 5 2 1 1 1 + 5 2 1 1 0 + 5 2 2 0 2 + 5 2 2 0 1 + 5 2 2 0 0 + 5 2 2 1 2 + 5 2 2 1 1 + 5 2 2 1 0 + 5 2 3 0 2 + 5 2 3 0 1 + 5 2 3 0 0 + 5 2 3 1 2 + 5 2 3 1 1 + 5 2 3 1 0 + 5 2 4 0 2 + 5 2 4 0 1 + 5 2 4 0 0 + 5 2 4 1 2 + 5 2 4 1 1 + 5 2 4 1 0 + 5 2 5 0 2 + 5 2 5 0 1 + 5 2 5 0 0 + 5 2 5 1 2 + 5 2 5 1 1 + 5 2 5 1 0 + 5 2 6 0 2 + 5 2 6 0 1 + 5 2 6 0 0 + 5 2 6 1 2 + 5 2 6 1 1 + 5 2 6 1 0 + 5 2 7 0 2 + 5 2 7 0 1 + 5 2 7 0 0 + 5 2 7 1 2 + 5 2 7 1 1 + 5 2 7 1 0 + 5 2 8 0 2 + 5 2 8 0 1 + 5 2 8 0 0 + 5 2 8 1 2 + 5 2 8 1 1 + 5 2 8 1 0 + 5 2 9 0 2 + 5 2 9 0 1 + 5 2 9 0 0 + 5 2 9 1 2 + 5 2 9 1 1 + 5 2 9 1 0 + 5 2 10 0 2 + 5 2 10 0 1 + 5 2 10 0 0 + 5 2 10 1 2 + 5 2 10 1 1 + 5 2 10 1 0 + 5 1 0 0 2 + 5 1 0 0 1 + 5 1 0 0 0 + 5 1 0 1 2 + 5 1 0 1 1 + 5 1 0 1 0 + 5 1 1 0 2 + 5 1 1 0 1 + 5 1 1 0 0 + 5 1 1 1 2 + 5 1 1 1 1 + 5 1 1 1 0 + 5 1 2 0 2 + 5 1 2 0 1 + 5 1 2 0 0 + 5 1 2 1 2 + 5 1 2 1 1 + 5 1 2 1 0 + 5 1 3 0 2 + 5 1 3 0 1 + 5 1 3 0 0 + 5 1 3 1 2 + 5 1 3 1 1 + 5 1 3 1 0 + 5 1 4 0 2 + 5 1 4 0 1 + 5 1 4 0 0 + 5 1 4 1 2 + 5 1 4 1 1 + 5 1 4 1 0 + 5 1 5 0 2 + 5 1 5 0 1 + 5 1 5 0 0 + 5 1 5 1 2 + 5 1 5 1 1 + 5 1 5 1 0 + 5 1 6 0 2 + 5 1 6 0 1 + 5 1 6 0 0 + 5 1 6 1 2 + 5 1 6 1 1 + 5 1 6 1 0 + 5 1 7 0 2 + 5 1 7 0 1 + 5 1 7 0 0 + 5 1 7 1 2 + 5 1 7 1 1 + 5 1 7 1 0 + 5 1 8 0 2 + 5 1 8 0 1 + 5 1 8 0 0 + 5 1 8 1 2 + 5 1 8 1 1 + 5 1 8 1 0 + 5 1 9 0 2 + 5 1 9 0 1 + 5 1 9 0 0 + 5 1 9 1 2 + 5 1 9 1 1 + 5 1 9 1 0 + 5 1 10 0 2 + 5 1 10 0 1 + 5 1 10 0 0 + 5 1 10 1 2 + 5 1 10 1 1 + 5 1 10 1 0 + 5 0 0 0 2 + 5 0 0 0 1 + 5 0 0 0 0 + 5 0 0 1 2 + 5 0 0 1 1 + 5 0 0 1 0 + 5 0 1 0 2 + 5 0 1 0 1 + 5 0 1 0 0 + 5 0 1 1 2 + 5 0 1 1 1 + 5 0 1 1 0 + 5 0 2 0 2 + 5 0 2 0 1 + 5 0 2 0 0 + 5 0 2 1 2 + 5 0 2 1 1 + 5 0 2 1 0 + 5 0 3 0 2 + 5 0 3 0 1 + 5 0 3 0 0 + 5 0 3 1 2 + 5 0 3 1 1 + 5 0 3 1 0 + 5 0 4 0 2 + 5 0 4 0 1 + 5 0 4 0 0 + 5 0 4 1 2 + 5 0 4 1 1 + 5 0 4 1 0 + 5 0 5 0 2 + 5 0 5 0 1 + 5 0 5 0 0 + 5 0 5 1 2 + 5 0 5 1 1 + 5 0 5 1 0 + 5 0 6 0 2 + 5 0 6 0 1 + 5 0 6 0 0 + 5 0 6 1 2 + 5 0 6 1 1 + 5 0 6 1 0 + 5 0 7 0 2 + 5 0 7 0 1 + 5 0 7 0 0 + 5 0 7 1 2 + 5 0 7 1 1 + 5 0 7 1 0 + 5 0 8 0 2 + 5 0 8 0 1 + 5 0 8 0 0 + 5 0 8 1 2 + 5 0 8 1 1 + 5 0 8 1 0 + 5 0 9 0 2 + 5 0 9 0 1 + 5 0 9 0 0 + 5 0 9 1 2 + 5 0 9 1 1 + 5 0 9 1 0 + 5 0 10 0 2 + 5 0 10 0 1 + 5 0 10 0 0 + 5 0 10 1 2 + 5 0 10 1 1 + 5 0 10 1 0 + 6 4 0 0 2 + 6 4 0 0 1 + 6 4 0 0 0 + 6 4 0 1 2 + 6 4 0 1 1 + 6 4 0 1 0 + 6 4 1 0 2 + 6 4 1 0 1 + 6 4 1 0 0 + 6 4 1 1 2 + 6 4 1 1 1 + 6 4 1 1 0 + 6 4 2 0 2 + 6 4 2 0 1 + 6 4 2 0 0 + 6 4 2 1 2 + 6 4 2 1 1 + 6 4 2 1 0 + 6 4 3 0 2 + 6 4 3 0 1 + 6 4 3 0 0 + 6 4 3 1 2 + 6 4 3 1 1 + 6 4 3 1 0 + 6 4 4 0 2 + 6 4 4 0 1 + 6 4 4 0 0 + 6 4 4 1 2 + 6 4 4 1 1 + 6 4 4 1 0 + 6 4 5 0 2 + 6 4 5 0 1 + 6 4 5 0 0 + 6 4 5 1 2 + 6 4 5 1 1 + 6 4 5 1 0 + 6 4 6 0 2 + 6 4 6 0 1 + 6 4 6 0 0 + 6 4 6 1 2 + 6 4 6 1 1 + 6 4 6 1 0 + 6 4 7 0 2 + 6 4 7 0 1 + 6 4 7 0 0 + 6 4 7 1 2 + 6 4 7 1 1 + 6 4 7 1 0 + 6 4 8 0 2 + 6 4 8 0 1 + 6 4 8 0 0 + 6 4 8 1 2 + 6 4 8 1 1 + 6 4 8 1 0 + 6 4 9 0 2 + 6 4 9 0 1 + 6 4 9 0 0 + 6 4 9 1 2 + 6 4 9 1 1 + 6 4 9 1 0 + 6 4 10 0 2 + 6 4 10 0 1 + 6 4 10 0 0 + 6 4 10 1 2 + 6 4 10 1 1 + 6 4 10 1 0 + 6 3 0 0 2 + 6 3 0 0 1 + 6 3 0 0 0 + 6 3 0 1 2 + 6 3 0 1 1 + 6 3 0 1 0 + 6 3 1 0 2 + 6 3 1 0 1 + 6 3 1 0 0 + 6 3 1 1 2 + 6 3 1 1 1 + 6 3 1 1 0 + 6 3 2 0 2 + 6 3 2 0 1 + 6 3 2 0 0 + 6 3 2 1 2 + 6 3 2 1 1 + 6 3 2 1 0 + 6 3 3 0 2 + 6 3 3 0 1 + 6 3 3 0 0 + 6 3 3 1 2 + 6 3 3 1 1 + 6 3 3 1 0 + 6 3 4 0 2 + 6 3 4 0 1 + 6 3 4 0 0 + 6 3 4 1 2 + 6 3 4 1 1 + 6 3 4 1 0 + 6 3 5 0 2 + 6 3 5 0 1 + 6 3 5 0 0 + 6 3 5 1 2 + 6 3 5 1 1 + 6 3 5 1 0 + 6 3 6 0 2 + 6 3 6 0 1 + 6 3 6 0 0 + 6 3 6 1 2 + 6 3 6 1 1 + 6 3 6 1 0 + 6 3 7 0 2 + 6 3 7 0 1 + 6 3 7 0 0 + 6 3 7 1 2 + 6 3 7 1 1 + 6 3 7 1 0 + 6 3 8 0 2 + 6 3 8 0 1 + 6 3 8 0 0 + 6 3 8 1 2 + 6 3 8 1 1 + 6 3 8 1 0 + 6 3 9 0 2 + 6 3 9 0 1 + 6 3 9 0 0 + 6 3 9 1 2 + 6 3 9 1 1 + 6 3 9 1 0 + 6 3 10 0 2 + 6 3 10 0 1 + 6 3 10 0 0 + 6 3 10 1 2 + 6 3 10 1 1 + 6 3 10 1 0 + 6 2 0 0 2 + 6 2 0 0 1 + 6 2 0 0 0 + 6 2 0 1 2 + 6 2 0 1 1 + 6 2 0 1 0 + 6 2 1 0 2 + 6 2 1 0 1 + 6 2 1 0 0 + 6 2 1 1 2 + 6 2 1 1 1 + 6 2 1 1 0 + 6 2 2 0 2 + 6 2 2 0 1 + 6 2 2 0 0 + 6 2 2 1 2 + 6 2 2 1 1 + 6 2 2 1 0 + 6 2 3 0 2 + 6 2 3 0 1 + 6 2 3 0 0 + 6 2 3 1 2 + 6 2 3 1 1 + 6 2 3 1 0 + 6 2 4 0 2 + 6 2 4 0 1 + 6 2 4 0 0 + 6 2 4 1 2 + 6 2 4 1 1 + 6 2 4 1 0 + 6 2 5 0 2 + 6 2 5 0 1 + 6 2 5 0 0 + 6 2 5 1 2 + 6 2 5 1 1 + 6 2 5 1 0 + 6 2 6 0 2 + 6 2 6 0 1 + 6 2 6 0 0 + 6 2 6 1 2 + 6 2 6 1 1 + 6 2 6 1 0 + 6 2 7 0 2 + 6 2 7 0 1 + 6 2 7 0 0 + 6 2 7 1 2 + 6 2 7 1 1 + 6 2 7 1 0 + 6 2 8 0 2 + 6 2 8 0 1 + 6 2 8 0 0 + 6 2 8 1 2 + 6 2 8 1 1 + 6 2 8 1 0 + 6 2 9 0 2 + 6 2 9 0 1 + 6 2 9 0 0 + 6 2 9 1 2 + 6 2 9 1 1 + 6 2 9 1 0 + 6 2 10 0 2 + 6 2 10 0 1 + 6 2 10 0 0 + 6 2 10 1 2 + 6 2 10 1 1 + 6 2 10 1 0 + 6 1 0 0 2 + 6 1 0 0 1 + 6 1 0 0 0 + 6 1 0 1 2 + 6 1 0 1 1 + 6 1 0 1 0 + 6 1 1 0 2 + 6 1 1 0 1 + 6 1 1 0 0 + 6 1 1 1 2 + 6 1 1 1 1 + 6 1 1 1 0 + 6 1 2 0 2 + 6 1 2 0 1 + 6 1 2 0 0 + 6 1 2 1 2 + 6 1 2 1 1 + 6 1 2 1 0 + 6 1 3 0 2 + 6 1 3 0 1 + 6 1 3 0 0 + 6 1 3 1 2 + 6 1 3 1 1 + 6 1 3 1 0 + 6 1 4 0 2 + 6 1 4 0 1 + 6 1 4 0 0 + 6 1 4 1 2 + 6 1 4 1 1 + 6 1 4 1 0 + 6 1 5 0 2 + 6 1 5 0 1 + 6 1 5 0 0 + 6 1 5 1 2 + 6 1 5 1 1 + 6 1 5 1 0 + 6 1 6 0 2 + 6 1 6 0 1 + 6 1 6 0 0 + 6 1 6 1 2 + 6 1 6 1 1 + 6 1 6 1 0 + 6 1 7 0 2 + 6 1 7 0 1 + 6 1 7 0 0 + 6 1 7 1 2 + 6 1 7 1 1 + 6 1 7 1 0 + 6 1 8 0 2 + 6 1 8 0 1 + 6 1 8 0 0 + 6 1 8 1 2 + 6 1 8 1 1 + 6 1 8 1 0 + 6 1 9 0 2 + 6 1 9 0 1 + 6 1 9 0 0 + 6 1 9 1 2 + 6 1 9 1 1 + 6 1 9 1 0 + 6 1 10 0 2 + 6 1 10 0 1 + 6 1 10 0 0 + 6 1 10 1 2 + 6 1 10 1 1 + 6 1 10 1 0 + 6 0 0 0 2 + 6 0 0 0 1 + 6 0 0 0 0 + 6 0 0 1 2 + 6 0 0 1 1 + 6 0 0 1 0 + 6 0 1 0 2 + 6 0 1 0 1 + 6 0 1 0 0 + 6 0 1 1 2 + 6 0 1 1 1 + 6 0 1 1 0 + 6 0 2 0 2 + 6 0 2 0 1 + 6 0 2 0 0 + 6 0 2 1 2 + 6 0 2 1 1 + 6 0 2 1 0 + 6 0 3 0 2 + 6 0 3 0 1 + 6 0 3 0 0 + 6 0 3 1 2 + 6 0 3 1 1 + 6 0 3 1 0 + 6 0 4 0 2 + 6 0 4 0 1 + 6 0 4 0 0 + 6 0 4 1 2 + 6 0 4 1 1 + 6 0 4 1 0 + 6 0 5 0 2 + 6 0 5 0 1 + 6 0 5 0 0 + 6 0 5 1 2 + 6 0 5 1 1 + 6 0 5 1 0 + 6 0 6 0 2 + 6 0 6 0 1 + 6 0 6 0 0 + 6 0 6 1 2 + 6 0 6 1 1 + 6 0 6 1 0 + 6 0 7 0 2 + 6 0 7 0 1 + 6 0 7 0 0 + 6 0 7 1 2 + 6 0 7 1 1 + 6 0 7 1 0 + 6 0 8 0 2 + 6 0 8 0 1 + 6 0 8 0 0 + 6 0 8 1 2 + 6 0 8 1 1 + 6 0 8 1 0 + 6 0 9 0 2 + 6 0 9 0 1 + 6 0 9 0 0 + 6 0 9 1 2 + 6 0 9 1 1 + 6 0 9 1 0 + 6 0 10 0 2 + 6 0 10 0 1 + 6 0 10 0 0 + 6 0 10 1 2 + 6 0 10 1 1 + 6 0 10 1 0 diff --git a/ivtest/ivltests/sv_foreach10.v b/ivtest/ivltests/sv_foreach10.v new file mode 100644 index 000000000..1376ed982 --- /dev/null +++ b/ivtest/ivltests/sv_foreach10.v @@ -0,0 +1,40 @@ +// Check that foreach counts from $left to $right for dynamic arrays and queues. + +module test; + + logic d[]; + logic q[$]; + + initial begin + bit failed; + int exp_idx; + + failed = 1'b0; + + // Dynamic arrays and queues always count from 0 to $size - 1 + d = '{0, 0}; + exp_idx = 0; + foreach(d[idx]) begin + if (idx !== exp_idx) begin + $display("FAILED: Expected %0d, got %0d", exp_idx, idx); + failed = 1'b1; + end + exp_idx++; + end + + q = '{0, 0, 0}; + exp_idx = 0; + foreach(q[idx]) begin + if (idx !== exp_idx) begin + $display("FAILED: Expected %0d, got %0d", exp_idx, idx); + failed = 1'b1; + end + exp_idx++; + end + + if (!failed) begin + $display("PASSED"); + end + end + +endmodule diff --git a/ivtest/ivltests/sv_foreach9.v b/ivtest/ivltests/sv_foreach9.v new file mode 100644 index 000000000..8e717ef21 --- /dev/null +++ b/ivtest/ivltests/sv_foreach9.v @@ -0,0 +1,13 @@ +// Check that foreach counts from $left to $right for static arrays. + +module test; + + logic [0:1][2:0] x[0:6][4:0][11]; + + initial begin + foreach(x[i,j,k,l,n]) begin + $display(i, j, k, l, n); + end + end + +endmodule diff --git a/ivtest/regress-vvp.list b/ivtest/regress-vvp.list index 77c7917eb..b1cc5750d 100644 --- a/ivtest/regress-vvp.list +++ b/ivtest/regress-vvp.list @@ -33,3 +33,5 @@ pr903 vvp_tests/pr903.json pr903-vlog95 vvp_tests/pr903-vlog95.json struct_packed_write_read vvp_tests/struct_packed_write_read.json struct_packed_write_read2 vvp_tests/struct_packed_write_read2.json +sv_foreach9 vvp_tests/sv_foreach9.json +sv_foreach10 vvp_tests/sv_foreach10.json diff --git a/ivtest/vvp_tests/sv_foreach10.json b/ivtest/vvp_tests/sv_foreach10.json new file mode 100644 index 000000000..ac0bf2aa8 --- /dev/null +++ b/ivtest/vvp_tests/sv_foreach10.json @@ -0,0 +1,5 @@ +{ + "type" : "normal", + "source" : "sv_foreach10.v", + "iverilog-args" : [ "-g2009" ] +} diff --git a/ivtest/vvp_tests/sv_foreach9.json b/ivtest/vvp_tests/sv_foreach9.json new file mode 100644 index 000000000..d1437abee --- /dev/null +++ b/ivtest/vvp_tests/sv_foreach9.json @@ -0,0 +1,6 @@ +{ + "type" : "normal", + "source" : "sv_foreach9.v", + "iverilog-args" : [ "-g2009" ], + "gold" : "sv_foreach9" +}