summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/test/shared.py19
-rw-r--r--scripts/test/wasm2js.py1
-rw-r--r--src/parser/wast-parser.cpp12
-rw-r--r--src/tools/wasm-shell.cpp3
-rw-r--r--src/wasm-interpreter.h13
-rw-r--r--src/wasm/literal.cpp3
-rw-r--r--test/spec/br_table.wast1593
-rw-r--r--test/spec/table_fill.wast222
-rw-r--r--test/spec/table_get.wast94
-rw-r--r--test/spec/table_grow.wast174
-rw-r--r--test/spec/table_set.wast129
11 files changed, 29 insertions, 2234 deletions
diff --git a/scripts/test/shared.py b/scripts/test/shared.py
index 6be7530c2..019d2b251 100644
--- a/scripts/test/shared.py
+++ b/scripts/test/shared.py
@@ -416,7 +416,6 @@ SPEC_TESTSUITE_TESTS_TO_SKIP = [
'align.wast', # Alignment bit 6 used by multi-memory
'binary.wast', # memory.grow reserved byte a LEB in multi-memory
'block.wast', # Requires block parameters
- 'br_table.wast', # Requires ref.extern wast constants
'bulk.wast', # Requires table.init abbreviation with implicit table
'comments.wast', # Issue with carriage returns being treated as newlines
'const.wast', # Hex float constant not recognized as out of range
@@ -429,7 +428,7 @@ SPEC_TESTSUITE_TESTS_TO_SKIP = [
'float_exprs.wast', # Adding 0 and NaN should give canonical NaN
'float_misc.wast', # Rounding wrong on f64.sqrt
'func.wast', # Duplicate parameter names not properly rejected
- 'global.wast', # Requires ref.extern wast constants
+ 'global.wast', # Globals allowed to refer to previous globals by GC
'if.wast', # Requires block parameters (on an if)
'imports.wast', # Requires wast `register` support
'linking.wast', # Requires wast `register` support
@@ -444,12 +443,12 @@ SPEC_TESTSUITE_TESTS_TO_SKIP = [
'try_table.wast', # Requires try_table interpretation
'br_on_non_null.wast', # Requires sending values on br_on_non_null
'br_on_null.wast', # Requires sending values on br_on_null
- 'local_init.wast', # Requires ref.extern wast constants
+ 'local_init.wast', # Requires local validation to respect unnamed blocks
'ref_func.wast', # Requires rejecting undeclared functions references
- 'ref_is_null.wast', # Requires ref.extern wast constants
+ 'ref_is_null.wast', # Requires ref.null wast constants
'ref_null.wast', # Requires ref.null wast constants
'return_call_indirect.wast', # Requires more precise unreachable validation
- 'select.wast', # Requires ref.extern wast constants
+ 'select.wast', # Requires ref.null wast constants
'table.wast', # Requires support for table default elements
'type-equivalence.wast', # Recursive types allowed by GC
'unreached-invalid.wast', # Requires more precise unreachable validation
@@ -458,20 +457,16 @@ SPEC_TESTSUITE_TESTS_TO_SKIP = [
'br_if.wast', # Requires more precise branch validation
'br_on_cast.wast', # Requires sending values on br_on_cast
'br_on_cast_fail.wast', # Requires sending values on br_on_cast_fail
- 'extern.wast', # Requires ref.extern wast constants
+ 'extern.wast', # Requires ref.host wast constants
'i31.wast', # Requires ref.i31 wast constants
- 'ref_cast.wast', # Requires ref.extern wast constants
- 'ref_test.wast', # Requires ref.extern wast constants
+ 'ref_cast.wast', # Requires host references to not be externalized i31refs
+ 'ref_test.wast', # Requires host references to not be externalized i31refs
'struct.wast', # Requires ref.struct wast constants
'type-rec.wast', # Requires wast `register` support
'type-subtyping.wast', # ShellExternalInterface::callTable does not handle subtyping
'call_indirect.wast', # Bug with 64-bit inline element segment parsing
'memory64.wast', # Multiple memories now allowed
- 'table_fill.wast', # Requires ref.extern wast constants
- 'table_get.wast', # Requires ref.extern wast constants
- 'table_grow.wast', # Requires ref.extern wast constants
'table_init.wast', # Requires support for elem.drop
- 'table_set.wast', # Requires ref.extern wast constants
'imports0.wast', # Requires wast `register` support
'imports2.wast', # Requires wast `register` support
'imports3.wast', # Requires wast `register` support
diff --git a/scripts/test/wasm2js.py b/scripts/test/wasm2js.py
index f7c9bd479..d716e5fe6 100644
--- a/scripts/test/wasm2js.py
+++ b/scripts/test/wasm2js.py
@@ -30,6 +30,7 @@ assert_tests = ['wasm2js.wast.asserts']
wasm2js_skipped_tests = [
'empty_imported_table.wast',
'br.wast', # depends on multivalue
+ 'br_table.wast', # needs support for externref in assert_return
]
diff --git a/src/parser/wast-parser.cpp b/src/parser/wast-parser.cpp
index a3a6c14ce..00269a577 100644
--- a/src/parser/wast-parser.cpp
+++ b/src/parser/wast-parser.cpp
@@ -25,7 +25,17 @@ using namespace std::string_view_literals;
namespace {
Result<Literal> const_(Lexer& in) {
- // TODO: handle `ref.extern n` as well.
+ if (in.takeSExprStart("ref.extern"sv)) {
+ auto n = in.takeI32();
+ if (!n) {
+ return in.err("expected host reference payload");
+ }
+ if (!in.takeRParen()) {
+ return in.err("expected end of ref.extern");
+ }
+ // Represent host references as externalized i31s.
+ return Literal::makeI31(*n, Unshared).externalize();
+ }
return parseConst(in);
}
diff --git a/src/tools/wasm-shell.cpp b/src/tools/wasm-shell.cpp
index 651857965..eda4facc9 100644
--- a/src/tools/wasm-shell.cpp
+++ b/src/tools/wasm-shell.cpp
@@ -318,7 +318,8 @@ struct Shell {
return Err{err.str()};
}
} else if (auto* ref = std::get_if<RefResult>(&expected)) {
- if (!val.type.isRef() || val.type.getHeapType() != ref->type) {
+ if (!val.type.isRef() ||
+ !HeapType::isSubType(val.type.getHeapType(), ref->type)) {
err << "expected " << ref->type << " reference, got " << val
<< atIndex();
return Err{err.str()};
diff --git a/src/wasm-interpreter.h b/src/wasm-interpreter.h
index 1bf135c40..cbd2b31d6 100644
--- a/src/wasm-interpreter.h
+++ b/src/wasm-interpreter.h
@@ -3172,20 +3172,17 @@ public:
}
auto info = getTableInstanceInfo(curr->table);
- Index tableSize = info.interface()->tableSize(info.name);
+ uint64_t tableSize = info.interface()->tableSize(info.name);
auto* table = info.instance->wasm.getTable(info.name);
Flow ret = Literal::makeFromInt64(tableSize, table->indexType);
Flow fail = Literal::makeFromInt64(-1, table->indexType);
- Index delta = deltaFlow.getSingleValue().geti32();
+ uint64_t delta = deltaFlow.getSingleValue().getUnsigned();
- if (tableSize >= uint32_t(-1) - delta) {
+ uint64_t newSize;
+ if (std::ckd_add(&newSize, tableSize, delta)) {
return fail;
}
- if (uint64_t(tableSize) + uint64_t(delta) > uint64_t(table->max)) {
- return fail;
- }
- Index newSize = tableSize + delta;
- if (newSize > WebLimitations::MaxTableSize) {
+ if (newSize > table->max || newSize > WebLimitations::MaxTableSize) {
return fail;
}
if (!info.interface()->growTable(
diff --git a/src/wasm/literal.cpp b/src/wasm/literal.cpp
index 650318be3..d60e2f8a9 100644
--- a/src/wasm/literal.cpp
+++ b/src/wasm/literal.cpp
@@ -463,6 +463,9 @@ bool Literal::operator==(const Literal& other) const {
if (type.getHeapType().isMaybeShared(HeapType::i31)) {
return i32 == other.i32;
}
+ if (type.getHeapType().isMaybeShared(HeapType::ext)) {
+ return internalize() == other.internalize();
+ }
WASM_UNREACHABLE("unexpected type");
}
WASM_UNREACHABLE("unexpected type");
diff --git a/test/spec/br_table.wast b/test/spec/br_table.wast
deleted file mode 100644
index 58abe38a4..000000000
--- a/test/spec/br_table.wast
+++ /dev/null
@@ -1,1593 +0,0 @@
-;; Test `br_table` operator
-
-(module
- ;; Auxiliary definition
- (func $dummy)
-
- (func (export "type-i32")
- (block (drop (i32.ctz (br_table 0 0 (i32.const 0)))))
- )
- (func (export "type-i64")
- (block (drop (i64.ctz (br_table 0 0 (i32.const 0)))))
- )
- (func (export "type-f32")
- (block (drop (f32.neg (br_table 0 0 (i32.const 0)))))
- )
- (func (export "type-f64")
- (block (drop (f64.neg (br_table 0 0 (i32.const 0)))))
- )
-
- (func (export "type-i32-value") (result i32)
- (block (result i32) (i32.ctz (br_table 0 0 (i32.const 1) (i32.const 0))))
- )
- (func (export "type-i64-value") (result i64)
- (block (result i64) (i64.ctz (br_table 0 0 (i64.const 2) (i32.const 0))))
- )
- (func (export "type-f32-value") (result f32)
- (block (result f32) (f32.neg (br_table 0 0 (f32.const 3) (i32.const 0))))
- )
- (func (export "type-f64-value") (result f64)
- (block (result f64) (f64.neg (br_table 0 0 (f64.const 4) (i32.const 0))))
- )
-
- (func (export "empty") (param i32) (result i32)
- (block (br_table 0 (local.get 0)) (return (i32.const 21)))
- (i32.const 22)
- )
- (func (export "empty-value") (param i32) (result i32)
- (block (result i32)
- (br_table 0 (i32.const 33) (local.get 0)) (i32.const 31)
- )
- )
-
- (func (export "singleton") (param i32) (result i32)
- (block
- (block
- (br_table 1 0 (local.get 0))
- (return (i32.const 21))
- )
- (return (i32.const 20))
- )
- (i32.const 22)
- )
-
- (func (export "singleton-value") (param i32) (result i32)
- (block (result i32)
- (drop
- (block (result i32)
- (br_table 0 1 (i32.const 33) (local.get 0))
- (return (i32.const 31))
- )
- )
- (i32.const 32)
- )
- )
-
- (func (export "multiple") (param i32) (result i32)
- (block
- (block
- (block
- (block
- (block
- (br_table 3 2 1 0 4 (local.get 0))
- (return (i32.const 99))
- )
- (return (i32.const 100))
- )
- (return (i32.const 101))
- )
- (return (i32.const 102))
- )
- (return (i32.const 103))
- )
- (i32.const 104)
- )
-
- (func (export "multiple-value") (param i32) (result i32)
- (local i32)
- (local.set 1 (block (result i32)
- (local.set 1 (block (result i32)
- (local.set 1 (block (result i32)
- (local.set 1 (block (result i32)
- (local.set 1 (block (result i32)
- (br_table 3 2 1 0 4 (i32.const 200) (local.get 0))
- (return (i32.add (local.get 1) (i32.const 99)))
- ))
- (return (i32.add (local.get 1) (i32.const 10)))
- ))
- (return (i32.add (local.get 1) (i32.const 11)))
- ))
- (return (i32.add (local.get 1) (i32.const 12)))
- ))
- (return (i32.add (local.get 1) (i32.const 13)))
- ))
- (i32.add (local.get 1) (i32.const 14))
- )
-
- (func (export "large") (param i32) (result i32)
- (block
- (block
- (br_table
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1
- (local.get 0)
- )
- (return (i32.const -1))
- )
- (return (i32.const 0))
- )
- (return (i32.const 1))
- )
-
- (func (export "as-block-first")
- (block (br_table 0 0 0 (i32.const 0)) (call $dummy))
- )
- (func (export "as-block-mid")
- (block (call $dummy) (br_table 0 0 0 (i32.const 0)) (call $dummy))
- )
- (func (export "as-block-last")
- (block (nop) (call $dummy) (br_table 0 0 0 (i32.const 0)))
- )
- (func (export "as-block-value") (result i32)
- (block (result i32)
- (nop) (call $dummy) (br_table 0 0 0 (i32.const 2) (i32.const 0))
- )
- )
-
- (func (export "as-loop-first") (result i32)
- (loop (result i32) (br_table 1 1 (i32.const 3) (i32.const 0)) (i32.const 1))
- )
- (func (export "as-loop-mid") (result i32)
- (loop (result i32)
- (call $dummy)
- (br_table 1 1 1 (i32.const 4) (i32.const -1))
- (i32.const 2)
- )
- )
- (func (export "as-loop-last") (result i32)
- (loop (result i32)
- (nop) (call $dummy) (br_table 1 1 1 (i32.const 5) (i32.const 1))
- )
- )
-
- (func (export "as-br-value") (result i32)
- (block (result i32) (br 0 (br_table 0 (i32.const 9) (i32.const 0))))
- )
-
- (func (export "as-br_if-cond")
- (block (br_if 0 (br_table 0 0 0 (i32.const 1))))
- )
- (func (export "as-br_if-value") (result i32)
- (block (result i32)
- (drop (br_if 0 (br_table 0 (i32.const 8) (i32.const 0)) (i32.const 1)))
- (i32.const 7)
- )
- )
- (func (export "as-br_if-value-cond") (result i32)
- (block (result i32)
- (drop (br_if 0 (i32.const 6) (br_table 0 0 (i32.const 9) (i32.const 0))))
- (i32.const 7)
- )
- )
-
- (func (export "as-br_table-index")
- (block (br_table 0 0 0 (br_table 0 (i32.const 1))))
- )
- (func (export "as-br_table-value") (result i32)
- (block (result i32)
- (br_table 0 0 0 (br_table 0 (i32.const 10) (i32.const 0)) (i32.const 1))
- (i32.const 7)
- )
- )
- (func (export "as-br_table-value-index") (result i32)
- (block (result i32)
- (br_table 0 0 (i32.const 6) (br_table 0 (i32.const 11) (i32.const 1)))
- (i32.const 7)
- )
- )
-
- (func (export "as-return-value") (result i64)
- (block (result i64) (return (br_table 0 (i64.const 7) (i32.const 0))))
- )
-
- (func (export "as-if-cond") (result i32)
- (block (result i32)
- (if (result i32)
- (br_table 0 (i32.const 2) (i32.const 0))
- (then (i32.const 0))
- (else (i32.const 1))
- )
- )
- )
- (func (export "as-if-then") (param i32 i32) (result i32)
- (block (result i32)
- (if (result i32)
- (local.get 0)
- (then (br_table 1 (i32.const 3) (i32.const 0)))
- (else (local.get 1))
- )
- )
- )
- (func (export "as-if-else") (param i32 i32) (result i32)
- (block (result i32)
- (if (result i32)
- (local.get 0)
- (then (local.get 1))
- (else (br_table 1 0 (i32.const 4) (i32.const 0)))
- )
- )
- )
-
- (func (export "as-select-first") (param i32 i32) (result i32)
- (block (result i32)
- (select
- (br_table 0 (i32.const 5) (i32.const 0)) (local.get 0) (local.get 1)
- )
- )
- )
- (func (export "as-select-second") (param i32 i32) (result i32)
- (block (result i32)
- (select
- (local.get 0) (br_table 0 (i32.const 6) (i32.const 1)) (local.get 1)
- )
- )
- )
- (func (export "as-select-cond") (result i32)
- (block (result i32)
- (select
- (i32.const 0) (i32.const 1) (br_table 0 (i32.const 7) (i32.const 1))
- )
- )
- )
-
- (func $f (param i32 i32 i32) (result i32) (i32.const -1))
- (func (export "as-call-first") (result i32)
- (block (result i32)
- (call $f
- (br_table 0 (i32.const 12) (i32.const 1)) (i32.const 2) (i32.const 3)
- )
- )
- )
- (func (export "as-call-mid") (result i32)
- (block (result i32)
- (call $f
- (i32.const 1) (br_table 0 (i32.const 13) (i32.const 1)) (i32.const 3)
- )
- )
- )
- (func (export "as-call-last") (result i32)
- (block (result i32)
- (call $f
- (i32.const 1) (i32.const 2) (br_table 0 (i32.const 14) (i32.const 1))
- )
- )
- )
-
- (type $sig (func (param i32 i32 i32) (result i32)))
- (table funcref (elem $f))
- (func (export "as-call_indirect-first") (result i32)
- (block (result i32)
- (call_indirect (type $sig)
- (br_table 0 (i32.const 20) (i32.const 1)) (i32.const 1) (i32.const 2)
- (i32.const 3)
- )
- )
- )
- (func (export "as-call_indirect-mid") (result i32)
- (block (result i32)
- (call_indirect (type $sig)
- (i32.const 0) (br_table 0 (i32.const 21) (i32.const 1)) (i32.const 2)
- (i32.const 3)
- )
- )
- )
- (func (export "as-call_indirect-last") (result i32)
- (block (result i32)
- (call_indirect (type $sig)
- (i32.const 0) (i32.const 1) (br_table 0 (i32.const 22) (i32.const 1))
- (i32.const 3)
- )
- )
- )
- (func (export "as-call_indirect-func") (result i32)
- (block (result i32)
- (call_indirect (type $sig)
- (i32.const 0) (i32.const 1) (i32.const 2)
- (br_table 0 (i32.const 23) (i32.const 1))
- )
- )
- )
-
- (func (export "as-local.set-value") (result i32)
- (local f32)
- (block (result i32)
- (local.set 0 (br_table 0 (i32.const 17) (i32.const 1)))
- (i32.const -1)
- )
- )
- (func (export "as-local.tee-value") (result i32)
- (local i32)
- (block (result i32)
- (local.set 0 (br_table 0 (i32.const 1) (i32.const 1)))
- (i32.const -1)
- )
- )
- (global $a (mut i32) (i32.const 10))
- (func (export "as-global.set-value") (result i32)
- (block (result i32)
- (global.set $a (br_table 0 (i32.const 1) (i32.const 1)))
- (i32.const -1)
- )
- )
-
- (memory 1)
- (func (export "as-load-address") (result f32)
- (block (result f32) (f32.load (br_table 0 (f32.const 1.7) (i32.const 1))))
- )
- (func (export "as-loadN-address") (result i64)
- (block (result i64) (i64.load8_s (br_table 0 (i64.const 30) (i32.const 1))))
- )
-
- (func (export "as-store-address") (result i32)
- (block (result i32)
- (f64.store (br_table 0 (i32.const 30) (i32.const 1)) (f64.const 7))
- (i32.const -1)
- )
- )
- (func (export "as-store-value") (result i32)
- (block (result i32)
- (i64.store (i32.const 2) (br_table 0 (i32.const 31) (i32.const 1)))
- (i32.const -1)
- )
- )
-
- (func (export "as-storeN-address") (result i32)
- (block (result i32)
- (i32.store8 (br_table 0 (i32.const 32) (i32.const 0)) (i32.const 7))
- (i32.const -1)
- )
- )
- (func (export "as-storeN-value") (result i32)
- (block (result i32)
- (i64.store16 (i32.const 2) (br_table 0 (i32.const 33) (i32.const 0)))
- (i32.const -1)
- )
- )
-
- (func (export "as-unary-operand") (result f32)
- (block (result f32) (f32.neg (br_table 0 (f32.const 3.4) (i32.const 0))))
- )
-
- (func (export "as-binary-left") (result i32)
- (block (result i32)
- (i32.add (br_table 0 0 (i32.const 3) (i32.const 0)) (i32.const 10))
- )
- )
- (func (export "as-binary-right") (result i64)
- (block (result i64)
- (i64.sub (i64.const 10) (br_table 0 (i64.const 45) (i32.const 0)))
- )
- )
-
- (func (export "as-test-operand") (result i32)
- (block (result i32) (i32.eqz (br_table 0 (i32.const 44) (i32.const 0))))
- )
-
- (func (export "as-compare-left") (result i32)
- (block (result i32)
- (f64.le (br_table 0 0 (i32.const 43) (i32.const 0)) (f64.const 10))
- )
- )
- (func (export "as-compare-right") (result i32)
- (block (result i32)
- (f32.ne (f32.const 10) (br_table 0 (i32.const 42) (i32.const 0)))
- )
- )
-
- (func (export "as-convert-operand") (result i32)
- (block (result i32)
- (i32.wrap_i64 (br_table 0 (i32.const 41) (i32.const 0)))
- )
- )
-
- (func (export "as-memory.grow-size") (result i32)
- (block (result i32) (memory.grow (br_table 0 (i32.const 40) (i32.const 0))))
- )
-
- (func (export "nested-block-value") (param i32) (result i32)
- (block (result i32)
- (drop (i32.const -1))
- (i32.add
- (i32.const 1)
- (block (result i32)
- (i32.add
- (i32.const 2)
- (block (result i32)
- (drop (i32.const 4))
- (i32.add
- (i32.const 8)
- (br_table 0 1 2 (i32.const 16) (local.get 0))
- )
- )
- )
- )
- )
- )
- )
-
- (func (export "nested-br-value") (param i32) (result i32)
- (block (result i32)
- (i32.add
- (i32.const 1)
- (block (result i32)
- (drop (i32.const 2))
- (drop
- (block (result i32)
- (drop (i32.const 4))
- (br 0 (br_table 2 1 0 (i32.const 8) (local.get 0)))
- )
- )
- (i32.const 16)
- )
- )
- )
- )
-
- (func (export "nested-br_if-value") (param i32) (result i32)
- (block (result i32)
- (i32.add
- (i32.const 1)
- (block (result i32)
- (drop (i32.const 2))
- (drop
- (block (result i32)
- (drop (i32.const 4))
- (drop
- (br_if 0
- (br_table 0 1 2 (i32.const 8) (local.get 0))
- (i32.const 1)
- )
- )
- (i32.const 32)
- )
- )
- (i32.const 16)
- )
- )
- )
- )
-
- (func (export "nested-br_if-value-cond") (param i32) (result i32)
- (block (result i32)
- (i32.add
- (i32.const 1)
- (block (result i32)
- (drop (i32.const 2))
- (drop
- (br_if 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0)))
- )
- (i32.const 16)
- )
- )
- )
- )
-
- (func (export "nested-br_table-value") (param i32) (result i32)
- (block (result i32)
- (i32.add
- (i32.const 1)
- (block (result i32)
- (drop (i32.const 2))
- (drop
- (block (result i32)
- (drop (i32.const 4))
- (br_table 0 (br_table 0 1 2 (i32.const 8) (local.get 0)) (i32.const 1))
- (i32.const 32)
- )
- )
- (i32.const 16)
- )
- )
- )
- )
-
- (func (export "nested-br_table-value-index") (param i32) (result i32)
- (block (result i32)
- (i32.add
- (i32.const 1)
- (block (result i32)
- (drop (i32.const 2))
- (br_table 0 (i32.const 4) (br_table 0 1 0 (i32.const 8) (local.get 0)))
- (i32.const 16)
- )
- )
- )
- )
-
- (func (export "nested-br_table-loop-block") (param i32) (result i32)
- (local.set 0
- (loop (result i32)
- (block
- (br_table 1 0 0 (local.get 0))
- )
- (i32.const 0)
- )
- )
- (loop (result i32)
- (block
- (br_table 0 1 1 (local.get 0))
- )
- (i32.const 3)
- )
- )
-)
-
-(assert_return (invoke "type-i32"))
-(assert_return (invoke "type-i64"))
-(assert_return (invoke "type-f32"))
-(assert_return (invoke "type-f64"))
-
-(assert_return (invoke "type-i32-value") (i32.const 1))
-(assert_return (invoke "type-i64-value") (i64.const 2))
-(assert_return (invoke "type-f32-value") (f32.const 3))
-(assert_return (invoke "type-f64-value") (f64.const 4))
-
-(assert_return (invoke "empty" (i32.const 0)) (i32.const 22))
-(assert_return (invoke "empty" (i32.const 1)) (i32.const 22))
-(assert_return (invoke "empty" (i32.const 11)) (i32.const 22))
-(assert_return (invoke "empty" (i32.const -1)) (i32.const 22))
-(assert_return (invoke "empty" (i32.const -100)) (i32.const 22))
-(assert_return (invoke "empty" (i32.const 0xffffffff)) (i32.const 22))
-
-(assert_return (invoke "empty-value" (i32.const 0)) (i32.const 33))
-(assert_return (invoke "empty-value" (i32.const 1)) (i32.const 33))
-(assert_return (invoke "empty-value" (i32.const 11)) (i32.const 33))
-(assert_return (invoke "empty-value" (i32.const -1)) (i32.const 33))
-(assert_return (invoke "empty-value" (i32.const -100)) (i32.const 33))
-(assert_return (invoke "empty-value" (i32.const 0xffffffff)) (i32.const 33))
-
-(assert_return (invoke "singleton" (i32.const 0)) (i32.const 22))
-(assert_return (invoke "singleton" (i32.const 1)) (i32.const 20))
-(assert_return (invoke "singleton" (i32.const 11)) (i32.const 20))
-(assert_return (invoke "singleton" (i32.const -1)) (i32.const 20))
-(assert_return (invoke "singleton" (i32.const -100)) (i32.const 20))
-(assert_return (invoke "singleton" (i32.const 0xffffffff)) (i32.const 20))
-
-(assert_return (invoke "singleton-value" (i32.const 0)) (i32.const 32))
-(assert_return (invoke "singleton-value" (i32.const 1)) (i32.const 33))
-(assert_return (invoke "singleton-value" (i32.const 11)) (i32.const 33))
-(assert_return (invoke "singleton-value" (i32.const -1)) (i32.const 33))
-(assert_return (invoke "singleton-value" (i32.const -100)) (i32.const 33))
-(assert_return (invoke "singleton-value" (i32.const 0xffffffff)) (i32.const 33))
-
-(assert_return (invoke "multiple" (i32.const 0)) (i32.const 103))
-(assert_return (invoke "multiple" (i32.const 1)) (i32.const 102))
-(assert_return (invoke "multiple" (i32.const 2)) (i32.const 101))
-(assert_return (invoke "multiple" (i32.const 3)) (i32.const 100))
-(assert_return (invoke "multiple" (i32.const 4)) (i32.const 104))
-(assert_return (invoke "multiple" (i32.const 5)) (i32.const 104))
-(assert_return (invoke "multiple" (i32.const 6)) (i32.const 104))
-(assert_return (invoke "multiple" (i32.const 10)) (i32.const 104))
-(assert_return (invoke "multiple" (i32.const -1)) (i32.const 104))
-(assert_return (invoke "multiple" (i32.const 0xffffffff)) (i32.const 104))
-
-(assert_return (invoke "multiple-value" (i32.const 0)) (i32.const 213))
-(assert_return (invoke "multiple-value" (i32.const 1)) (i32.const 212))
-(assert_return (invoke "multiple-value" (i32.const 2)) (i32.const 211))
-(assert_return (invoke "multiple-value" (i32.const 3)) (i32.const 210))
-(assert_return (invoke "multiple-value" (i32.const 4)) (i32.const 214))
-(assert_return (invoke "multiple-value" (i32.const 5)) (i32.const 214))
-(assert_return (invoke "multiple-value" (i32.const 6)) (i32.const 214))
-(assert_return (invoke "multiple-value" (i32.const 10)) (i32.const 214))
-(assert_return (invoke "multiple-value" (i32.const -1)) (i32.const 214))
-(assert_return (invoke "multiple-value" (i32.const 0xffffffff)) (i32.const 214))
-
-(assert_return (invoke "large" (i32.const 0)) (i32.const 0))
-(assert_return (invoke "large" (i32.const 1)) (i32.const 1))
-(assert_return (invoke "large" (i32.const 100)) (i32.const 0))
-(assert_return (invoke "large" (i32.const 101)) (i32.const 1))
-(assert_return (invoke "large" (i32.const 10000)) (i32.const 0))
-(assert_return (invoke "large" (i32.const 10001)) (i32.const 1))
-(assert_return (invoke "large" (i32.const 1000000)) (i32.const 1))
-(assert_return (invoke "large" (i32.const 1000001)) (i32.const 1))
-
-(assert_return (invoke "as-block-first"))
-(assert_return (invoke "as-block-mid"))
-(assert_return (invoke "as-block-last"))
-(assert_return (invoke "as-block-value") (i32.const 2))
-
-(assert_return (invoke "as-loop-first") (i32.const 3))
-(assert_return (invoke "as-loop-mid") (i32.const 4))
-(assert_return (invoke "as-loop-last") (i32.const 5))
-
-(assert_return (invoke "as-br-value") (i32.const 9))
-
-(assert_return (invoke "as-br_if-cond"))
-(assert_return (invoke "as-br_if-value") (i32.const 8))
-(assert_return (invoke "as-br_if-value-cond") (i32.const 9))
-
-(assert_return (invoke "as-br_table-index"))
-(assert_return (invoke "as-br_table-value") (i32.const 10))
-(assert_return (invoke "as-br_table-value-index") (i32.const 11))
-
-(assert_return (invoke "as-return-value") (i64.const 7))
-
-(assert_return (invoke "as-if-cond") (i32.const 2))
-(assert_return (invoke "as-if-then" (i32.const 1) (i32.const 6)) (i32.const 3))
-(assert_return (invoke "as-if-then" (i32.const 0) (i32.const 6)) (i32.const 6))
-(assert_return (invoke "as-if-else" (i32.const 0) (i32.const 6)) (i32.const 4))
-(assert_return (invoke "as-if-else" (i32.const 1) (i32.const 6)) (i32.const 6))
-
-(assert_return (invoke "as-select-first" (i32.const 0) (i32.const 6)) (i32.const 5))
-(assert_return (invoke "as-select-first" (i32.const 1) (i32.const 6)) (i32.const 5))
-(assert_return (invoke "as-select-second" (i32.const 0) (i32.const 6)) (i32.const 6))
-(assert_return (invoke "as-select-second" (i32.const 1) (i32.const 6)) (i32.const 6))
-(assert_return (invoke "as-select-cond") (i32.const 7))
-
-(assert_return (invoke "as-call-first") (i32.const 12))
-(assert_return (invoke "as-call-mid") (i32.const 13))
-(assert_return (invoke "as-call-last") (i32.const 14))
-
-(assert_return (invoke "as-call_indirect-first") (i32.const 20))
-(assert_return (invoke "as-call_indirect-mid") (i32.const 21))
-(assert_return (invoke "as-call_indirect-last") (i32.const 22))
-(assert_return (invoke "as-call_indirect-func") (i32.const 23))
-
-(assert_return (invoke "as-local.set-value") (i32.const 17))
-(assert_return (invoke "as-local.tee-value") (i32.const 1))
-(assert_return (invoke "as-global.set-value") (i32.const 1))
-
-(assert_return (invoke "as-load-address") (f32.const 1.7))
-(assert_return (invoke "as-loadN-address") (i64.const 30))
-
-(assert_return (invoke "as-store-address") (i32.const 30))
-(assert_return (invoke "as-store-value") (i32.const 31))
-(assert_return (invoke "as-storeN-address") (i32.const 32))
-(assert_return (invoke "as-storeN-value") (i32.const 33))
-
-(assert_return (invoke "as-unary-operand") (f32.const 3.4))
-
-(assert_return (invoke "as-binary-left") (i32.const 3))
-(assert_return (invoke "as-binary-right") (i64.const 45))
-
-(assert_return (invoke "as-test-operand") (i32.const 44))
-
-(assert_return (invoke "as-compare-left") (i32.const 43))
-(assert_return (invoke "as-compare-right") (i32.const 42))
-
-(assert_return (invoke "as-convert-operand") (i32.const 41))
-
-(assert_return (invoke "as-memory.grow-size") (i32.const 40))
-
-(assert_return (invoke "nested-block-value" (i32.const 0)) (i32.const 19))
-(assert_return (invoke "nested-block-value" (i32.const 1)) (i32.const 17))
-(assert_return (invoke "nested-block-value" (i32.const 2)) (i32.const 16))
-(assert_return (invoke "nested-block-value" (i32.const 10)) (i32.const 16))
-(assert_return (invoke "nested-block-value" (i32.const -1)) (i32.const 16))
-(assert_return (invoke "nested-block-value" (i32.const 100000)) (i32.const 16))
-
-(assert_return (invoke "nested-br-value" (i32.const 0)) (i32.const 8))
-(assert_return (invoke "nested-br-value" (i32.const 1)) (i32.const 9))
-(assert_return (invoke "nested-br-value" (i32.const 2)) (i32.const 17))
-(assert_return (invoke "nested-br-value" (i32.const 11)) (i32.const 17))
-(assert_return (invoke "nested-br-value" (i32.const -4)) (i32.const 17))
-(assert_return (invoke "nested-br-value" (i32.const 10213210)) (i32.const 17))
-
-(assert_return (invoke "nested-br_if-value" (i32.const 0)) (i32.const 17))
-(assert_return (invoke "nested-br_if-value" (i32.const 1)) (i32.const 9))
-(assert_return (invoke "nested-br_if-value" (i32.const 2)) (i32.const 8))
-(assert_return (invoke "nested-br_if-value" (i32.const 9)) (i32.const 8))
-(assert_return (invoke "nested-br_if-value" (i32.const -9)) (i32.const 8))
-(assert_return (invoke "nested-br_if-value" (i32.const 999999)) (i32.const 8))
-
-(assert_return (invoke "nested-br_if-value-cond" (i32.const 0)) (i32.const 9))
-(assert_return (invoke "nested-br_if-value-cond" (i32.const 1)) (i32.const 8))
-(assert_return (invoke "nested-br_if-value-cond" (i32.const 2)) (i32.const 9))
-(assert_return (invoke "nested-br_if-value-cond" (i32.const 3)) (i32.const 9))
-(assert_return (invoke "nested-br_if-value-cond" (i32.const -1000000)) (i32.const 9))
-(assert_return (invoke "nested-br_if-value-cond" (i32.const 9423975)) (i32.const 9))
-
-(assert_return (invoke "nested-br_table-value" (i32.const 0)) (i32.const 17))
-(assert_return (invoke "nested-br_table-value" (i32.const 1)) (i32.const 9))
-(assert_return (invoke "nested-br_table-value" (i32.const 2)) (i32.const 8))
-(assert_return (invoke "nested-br_table-value" (i32.const 9)) (i32.const 8))
-(assert_return (invoke "nested-br_table-value" (i32.const -9)) (i32.const 8))
-(assert_return (invoke "nested-br_table-value" (i32.const 999999)) (i32.const 8))
-
-(assert_return (invoke "nested-br_table-value-index" (i32.const 0)) (i32.const 9))
-(assert_return (invoke "nested-br_table-value-index" (i32.const 1)) (i32.const 8))
-(assert_return (invoke "nested-br_table-value-index" (i32.const 2)) (i32.const 9))
-(assert_return (invoke "nested-br_table-value-index" (i32.const 3)) (i32.const 9))
-(assert_return (invoke "nested-br_table-value-index" (i32.const -1000000)) (i32.const 9))
-(assert_return (invoke "nested-br_table-value-index" (i32.const 9423975)) (i32.const 9))
-
-(assert_return (invoke "nested-br_table-loop-block" (i32.const 1)) (i32.const 3))
-
-(assert_invalid
- (module (func $type-arg-void-vs-num (result i32)
- (block (br_table 0 (i32.const 1)) (i32.const 1))
- ))
- "type mismatch"
-)
-
-(assert_invalid
- (module (func $type-arg-empty-vs-num (result i32)
- (block (br_table 0) (i32.const 1))
- ))
- "type mismatch"
-)
-
-(assert_invalid
- (module (func $type-arg-void-vs-num (result i32)
- (block (result i32) (br_table 0 (nop) (i32.const 1)) (i32.const 1))
- ))
- "type mismatch"
-)
-(assert_invalid
- (module (func $type-arg-num-vs-num (result i32)
- (block (result i32)
- (br_table 0 0 0 (i64.const 1) (i32.const 1)) (i32.const 1)
- )
- ))
- "type mismatch"
-)
-(assert_invalid
- (module (func $type-arg-num-vs-arg-num
- (block
- (block (result f32)
- (br_table 0 1 (f32.const 0) (i32.const 0))
- )
- (drop)
- )
- ))
- "type mismatch"
-)
-
-(assert_invalid
- (module (func $type-index-void-vs-i32
- (block (br_table 0 0 0 (nop)))
- ))
- "type mismatch"
-)
-(assert_invalid
- (module (func $type-index-num-vs-i32
- (block (br_table 0 (i64.const 0)))
- ))
- "type mismatch"
-)
-(assert_invalid
- (module (func $type-arg-index-void-vs-i32 (result i32)
- (block (result i32) (br_table 0 0 (i32.const 0) (nop)) (i32.const 1))
- ))
- "type mismatch"
-)
-(assert_invalid
- (module (func $type-arg-void-vs-num-nested (result i32)
- (block (result i32) (i32.const 0) (block (br_table 1 (i32.const 0))))
- ))
- "type mismatch"
-)
-(assert_invalid
- (module (func $type-arg-index-num-vs-i32 (result i32)
- (block (result i32)
- (br_table 0 0 (i32.const 0) (i64.const 0)) (i32.const 1)
- )
- ))
- "type mismatch"
-)
-
-(assert_invalid
- (module (func $type-arg-void-vs-num (result i32)
- (block (br_table 0 (i32.const 1)) (i32.const 1))
- ))
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (func $type-arg-index-empty-in-then
- (block
- (i32.const 0) (i32.const 0)
- (if (result i32) (then (br_table 0)))
- )
- (i32.eqz) (drop)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (func $type-arg-value-empty-in-then
- (block
- (i32.const 0) (i32.const 0)
- (if (result i32) (then (br_table 0 (i32.const 1))))
- )
- (i32.eqz) (drop)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (func $type-arg-index-empty-in-return
- (block (result i32)
- (return (br_table 0))
- )
- (i32.eqz) (drop)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (func $type-arg-value-empty-in-return
- (block (result i32)
- (return (br_table 0 (i32.const 1)))
- )
- (i32.eqz) (drop)
- )
- )
- "type mismatch"
-)
-
-
-(assert_invalid
- (module (func $unbound-label
- (block (br_table 2 1 (i32.const 1)))
- ))
- "unknown label"
-)
-(assert_invalid
- (module (func $unbound-nested-label
- (block (block (br_table 0 5 (i32.const 1))))
- ))
- "unknown label"
-)
-(assert_invalid
- (module (func $large-label
- (block (br_table 0 0x10000001 0 (i32.const 1)))
- ))
- "unknown label"
-)
-
-(assert_invalid
- (module (func $unbound-label-default
- (block (br_table 1 2 (i32.const 1)))
- ))
- "unknown label"
-)
-(assert_invalid
- (module (func $unbound-nested-label-default
- (block (block (br_table 0 5 (i32.const 1))))
- ))
- "unknown label"
-)
-(assert_invalid
- (module (func $large-label-default
- (block (br_table 0 0 0x10000001 (i32.const 1)))
- ))
- "unknown label"
-)
-
diff --git a/test/spec/table_fill.wast b/test/spec/table_fill.wast
deleted file mode 100644
index 5471e2e23..000000000
--- a/test/spec/table_fill.wast
+++ /dev/null
@@ -1,222 +0,0 @@
-(module
- (table $t 10 externref)
-
- (func (export "fill") (param $i i32) (param $r externref) (param $n i32)
- (table.fill $t (local.get $i) (local.get $r) (local.get $n))
- )
-
- (func (export "fill-abbrev") (param $i i32) (param $r externref) (param $n i32)
- (table.fill (local.get $i) (local.get $r) (local.get $n))
- )
-
- (func (export "get") (param $i i32) (result externref)
- (table.get $t (local.get $i))
- )
-
- (table $t64 i64 10 externref)
-
- (func (export "fill-t64") (param $i i64) (param $r externref) (param $n i64)
- (table.fill $t64 (local.get $i) (local.get $r) (local.get $n))
- )
-
- (func (export "get-t64") (param $i i64) (result externref)
- (table.get $t64 (local.get $i))
- )
-)
-
-(assert_return (invoke "get" (i32.const 1)) (ref.null extern))
-(assert_return (invoke "get" (i32.const 2)) (ref.null extern))
-(assert_return (invoke "get" (i32.const 3)) (ref.null extern))
-(assert_return (invoke "get" (i32.const 4)) (ref.null extern))
-(assert_return (invoke "get" (i32.const 5)) (ref.null extern))
-
-;; (assert_return (invoke "fill" (i32.const 2) (ref.extern 1) (i32.const 3)))
-(assert_return (invoke "get" (i32.const 1)) (ref.null extern))
-;; (assert_return (invoke "get" (i32.const 2)) (ref.extern 1))
-;; (assert_return (invoke "get" (i32.const 3)) (ref.extern 1))
-;; (assert_return (invoke "get" (i32.const 4)) (ref.extern 1))
-(assert_return (invoke "get" (i32.const 5)) (ref.null extern))
-
-;; (assert_return (invoke "fill" (i32.const 4) (ref.extern 2) (i32.const 2)))
-;; (assert_return (invoke "get" (i32.const 3)) (ref.extern 1))
-;; (assert_return (invoke "get" (i32.const 4)) (ref.extern 2))
-;; (assert_return (invoke "get" (i32.const 5)) (ref.extern 2))
-(assert_return (invoke "get" (i32.const 6)) (ref.null extern))
-
-;; (assert_return (invoke "fill" (i32.const 4) (ref.extern 3) (i32.const 0)))
-;; (assert_return (invoke "get" (i32.const 3)) (ref.extern 1))
-;; (assert_return (invoke "get" (i32.const 4)) (ref.extern 2))
-;; (assert_return (invoke "get" (i32.const 5)) (ref.extern 2))
-
-;; (assert_return (invoke "fill" (i32.const 8) (ref.extern 4) (i32.const 2)))
-(assert_return (invoke "get" (i32.const 7)) (ref.null extern))
-;; (assert_return (invoke "get" (i32.const 8)) (ref.extern 4))
-;; (assert_return (invoke "get" (i32.const 9)) (ref.extern 4))
-
-(assert_return (invoke "fill-abbrev" (i32.const 9) (ref.null extern) (i32.const 1)))
-;; (assert_return (invoke "get" (i32.const 8)) (ref.extern 4))
-(assert_return (invoke "get" (i32.const 9)) (ref.null extern))
-
-;; (assert_return (invoke "fill" (i32.const 10) (ref.extern 5) (i32.const 0)))
-(assert_return (invoke "get" (i32.const 9)) (ref.null extern))
-
-;; (assert_trap
-;; (invoke "fill" (i32.const 8) (ref.extern 6) (i32.const 3))
-;; "out of bounds table access"
-;;)
-(assert_return (invoke "get" (i32.const 7)) (ref.null extern))
-;;(assert_return (invoke "get" (i32.const 8)) (ref.extern 4))
-(assert_return (invoke "get" (i32.const 9)) (ref.null extern))
-
-(assert_trap
- (invoke "fill" (i32.const 11) (ref.null extern) (i32.const 0))
- "out of bounds table access"
-)
-
-(assert_trap
- (invoke "fill" (i32.const 11) (ref.null extern) (i32.const 10))
- "out of bounds table access"
-)
-
-;; Same as above but for t64
-
-(assert_return (invoke "get-t64" (i64.const 1)) (ref.null extern))
-(assert_return (invoke "get-t64" (i64.const 2)) (ref.null extern))
-(assert_return (invoke "get-t64" (i64.const 3)) (ref.null extern))
-(assert_return (invoke "get-t64" (i64.const 4)) (ref.null extern))
-(assert_return (invoke "get-t64" (i64.const 5)) (ref.null extern))
-
-;; (assert_return (invoke "fill-t64" (i64.const 2) (ref.extern 1) (i64.const 3)))
-(assert_return (invoke "get-t64" (i64.const 1)) (ref.null extern))
-;; (assert_return (invoke "get-t64" (i64.const 2)) (ref.extern 1))
-;; (assert_return (invoke "get-t64" (i64.const 3)) (ref.extern 1))
-;; (assert_return (invoke "get-t64" (i64.const 4)) (ref.extern 1))
-(assert_return (invoke "get-t64" (i64.const 5)) (ref.null extern))
-
-;; (assert_return (invoke "fill-t64" (i64.const 4) (ref.extern 2) (i64.const 2)))
-;; (assert_return (invoke "get-t64" (i64.const 3)) (ref.extern 1))
-;; (assert_return (invoke "get-t64" (i64.const 4)) (ref.extern 2))
-;; (assert_return (invoke "get-t64" (i64.const 5)) (ref.extern 2))
-(assert_return (invoke "get-t64" (i64.const 6)) (ref.null extern))
-
-;; (assert_return (invoke "fill-t64" (i64.const 4) (ref.extern 3) (i64.const 0)))
-;; (assert_return (invoke "get-t64" (i64.const 3)) (ref.extern 1))
-;; (assert_return (invoke "get-t64" (i64.const 4)) (ref.extern 2))
-;; (assert_return (invoke "get-t64" (i64.const 5)) (ref.extern 2))
-
-;; (assert_return (invoke "fill-t64" (i64.const 8) (ref.extern 4) (i64.const 2)))
-(assert_return (invoke "get-t64" (i64.const 7)) (ref.null extern))
-;; (assert_return (invoke "get-t64" (i64.const 8)) (ref.extern 4))
-;; (assert_return (invoke "get-t64" (i64.const 9)) (ref.extern 4))
-
-(assert_return (invoke "fill-t64" (i64.const 9) (ref.null extern) (i64.const 1)))
-;; (assert_return (invoke "get-t64" (i64.const 8)) (ref.extern 4))
-(assert_return (invoke "get-t64" (i64.const 9)) (ref.null extern))
-
-;; (assert_return (invoke "fill-t64" (i64.const 10) (ref.extern 5) (i64.const 0)))
-(assert_return (invoke "get-t64" (i64.const 9)) (ref.null extern))
-
-;; (assert_trap
-;; (invoke "fill-t64" (i64.const 8) (ref.extern 6) (i64.const 3))
-;; "out of bounds table access"
-;; )
-(assert_return (invoke "get-t64" (i64.const 7)) (ref.null extern))
-;; (assert_return (invoke "get-t64" (i64.const 8)) (ref.extern 4))
-(assert_return (invoke "get-t64" (i64.const 9)) (ref.null extern))
-
-(assert_trap
- (invoke "fill-t64" (i64.const 11) (ref.null extern) (i64.const 0))
- "out of bounds table access"
-)
-
-(assert_trap
- (invoke "fill-t64" (i64.const 11) (ref.null extern) (i64.const 10))
- "out of bounds table access"
-)
-
-;; Type errors
-
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-index-value-length-empty-vs-i32-i32
- (table.fill $t)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-index-empty-vs-i32
- (table.fill $t (ref.null extern) (i32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-value-empty-vs
- (table.fill $t (i32.const 1) (i32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-length-empty-vs-i32
- (table.fill $t (i32.const 1) (ref.null extern))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 externref)
- (func $type-index-f32-vs-i32
- (table.fill $t (f32.const 1) (ref.null extern) (i32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 funcref)
- (func $type-value-vs-funcref (param $r externref)
- (table.fill $t (i32.const 1) (local.get $r) (i32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 externref)
- (func $type-length-f32-vs-i32
- (table.fill $t (i32.const 1) (ref.null extern) (f32.const 1))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t1 1 externref)
- (table $t2 1 funcref)
- (func $type-value-externref-vs-funcref-multi (param $r externref)
- (table.fill $t2 (i32.const 0) (local.get $r) (i32.const 1))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t 1 externref)
- (func $type-result-empty-vs-num (result i32)
- (table.fill $t (i32.const 0) (ref.null extern) (i32.const 1))
- )
- )
- "type mismatch"
-)
diff --git a/test/spec/table_get.wast b/test/spec/table_get.wast
deleted file mode 100644
index cc24ba3ec..000000000
--- a/test/spec/table_get.wast
+++ /dev/null
@@ -1,94 +0,0 @@
-(module
- (table $t2 2 externref)
- (table $t3 3 funcref)
- (table $t64 i64 3 funcref)
- (elem (table $t3) (i32.const 1) func $dummy)
- (func $dummy)
-
- (func (export "init")
- ;; (table.set $t2 (i32.const 1) (local.get $r))
- (table.set $t3 (i32.const 2) (table.get $t3 (i32.const 1)))
- )
-
- (func (export "get-externref") (param $i i32) (result externref)
- (table.get (local.get $i))
- )
- (func $f3 (export "get-funcref") (param $i i32) (result funcref)
- (table.get $t3 (local.get $i))
- )
- (func $f4 (export "get-funcref-t64") (param $i i64) (result funcref)
- (table.get $t64 (local.get $i))
- )
-
- (func (export "is_null-funcref") (param $i i32) (result i32)
- (ref.is_null (call $f3 (local.get $i)))
- )
-)
-
-;; (invoke "init" (ref.extern 1))
-(invoke "init")
-
-(assert_return (invoke "get-externref" (i32.const 0)) (ref.null extern))
-;; (assert_return (invoke "get-externref" (i32.const 1)) (ref.extern 1))
-
-(assert_return (invoke "get-funcref" (i32.const 0)) (ref.null func))
-(assert_return (invoke "get-funcref-t64" (i64.const 0)) (ref.null func))
-(assert_return (invoke "is_null-funcref" (i32.const 1)) (i32.const 0))
-(assert_return (invoke "is_null-funcref" (i32.const 2)) (i32.const 0))
-
-(assert_trap (invoke "get-externref" (i32.const 2)) "out of bounds table access")
-(assert_trap (invoke "get-funcref" (i32.const 3)) "out of bounds table access")
-(assert_trap (invoke "get-externref" (i32.const -1)) "out of bounds table access")
-(assert_trap (invoke "get-funcref" (i32.const -1)) "out of bounds table access")
-
-
-;; Type errors
-
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-index-empty-vs-i32 (result externref)
- (table.get $t)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-index-f32-vs-i32 (result externref)
- (table.get $t (f32.const 1))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-result-externref-vs-empty
- (table.get $t (i32.const 0))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-result-externref-vs-funcref (result funcref)
- (table.get $t (i32.const 1))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t1 1 funcref)
- (table $t2 1 externref)
- (func $type-result-externref-vs-funcref-multi (result funcref)
- (table.get $t2 (i32.const 0))
- )
- )
- "type mismatch"
-)
diff --git a/test/spec/table_grow.wast b/test/spec/table_grow.wast
deleted file mode 100644
index a3a25b071..000000000
--- a/test/spec/table_grow.wast
+++ /dev/null
@@ -1,174 +0,0 @@
-(module
- (table $t 0 externref)
-
- (func (export "get") (param $i i32) (result externref) (table.get $t (local.get $i)))
- (func (export "set") (param $i i32) (param $r externref) (table.set $t (local.get $i) (local.get $r)))
-
- (func (export "grow") (param $sz i32) (param $init externref) (result i32)
- (table.grow $t (local.get $init) (local.get $sz))
- )
- (func (export "size") (result i32) (table.size $t))
-)
-
-(assert_return (invoke "size") (i32.const 0))
-;; (assert_trap (invoke "set" (i32.const 0) (ref.extern 2)) "out of bounds table access")
-(assert_trap (invoke "get" (i32.const 0)) "out of bounds table access")
-
-(assert_return (invoke "grow" (i32.const 1) (ref.null extern)) (i32.const 0))
-(assert_return (invoke "size") (i32.const 1))
-(assert_return (invoke "get" (i32.const 0)) (ref.null extern))
-;; (assert_return (invoke "set" (i32.const 0) (ref.extern 2)))
-;; (assert_return (invoke "get" (i32.const 0)) (ref.extern 2))
-;; (assert_trap (invoke "set" (i32.const 1) (ref.extern 2)) "out of bounds table access")
-;; (assert_trap (invoke "get" (i32.const 1)) "out of bounds table access")
-
-;; (assert_return (invoke "grow" (i32.const 4) (ref.extern 3)) (i32.const 1))
-;; (assert_return (invoke "size") (i32.const 5))
-;; (assert_return (invoke "get" (i32.const 0)) (ref.extern 2))
-;; (assert_return (invoke "set" (i32.const 0) (ref.extern 2)))
-;; (assert_return (invoke "get" (i32.const 0)) (ref.extern 2))
-;; (assert_return (invoke "get" (i32.const 1)) (ref.extern 3))
-;; (assert_return (invoke "get" (i32.const 4)) (ref.extern 3))
-;; (assert_return (invoke "set" (i32.const 4) (ref.extern 4)))
-;; (assert_return (invoke "get" (i32.const 4)) (ref.extern 4))
-;; (assert_trap (invoke "set" (i32.const 5) (ref.extern 2)) "out of bounds table access")
-;; (assert_trap (invoke "get" (i32.const 5)) "out of bounds table access")
-
-
-;; Reject growing to size outside i32 value range
-;; TODO: parse error
-;; (module
-;; (table $t 0x10 funcref)
-;; (elem declare func $f)
-;; (func $f (export "grow") (result i32)
-;; (table.grow $t (ref.func $f) (i32.const 0xffff_fff0))
-;; )
-;; )
-
-;; (assert_return (invoke "grow") (i32.const -1))
-
-
-(module
- (table $t 0 externref)
- (func (export "grow") (param i32) (result i32)
- (table.grow $t (ref.null extern) (local.get 0))
- )
-)
-
-(assert_return (invoke "grow" (i32.const 0)) (i32.const 0))
-(assert_return (invoke "grow" (i32.const 1)) (i32.const 0))
-(assert_return (invoke "grow" (i32.const 0)) (i32.const 1))
-(assert_return (invoke "grow" (i32.const 2)) (i32.const 1))
-(assert_return (invoke "grow" (i32.const 800)) (i32.const 3))
-
-
-(module
- (table $t 0 10 externref)
- (func (export "grow") (param i32) (result i32)
- (table.grow $t (ref.null extern) (local.get 0))
- )
-)
-
-(assert_return (invoke "grow" (i32.const 0)) (i32.const 0))
-(assert_return (invoke "grow" (i32.const 1)) (i32.const 0))
-(assert_return (invoke "grow" (i32.const 1)) (i32.const 1))
-(assert_return (invoke "grow" (i32.const 2)) (i32.const 2))
-(assert_return (invoke "grow" (i32.const 6)) (i32.const 4))
-(assert_return (invoke "grow" (i32.const 0)) (i32.const 10))
-(assert_return (invoke "grow" (i32.const 1)) (i32.const -1))
-(assert_return (invoke "grow" (i32.const 0x10000)) (i32.const -1))
-
-
-(module
- (table $t 10 funcref)
- (func (export "grow") (param i32) (result i32)
- (table.grow $t (ref.null func) (local.get 0))
- )
- (elem declare func 1)
- (func (export "check-table-null") (param i32 i32) (result funcref)
- (local funcref)
- (local.set 2 (ref.func 1))
- (block
- (loop
- (local.set 2 (table.get $t (local.get 0)))
- (br_if 1 (i32.eqz (ref.is_null (local.get 2))))
- (br_if 1 (i32.ge_u (local.get 0) (local.get 1)))
- (local.set 0 (i32.add (local.get 0) (i32.const 1)))
- (br_if 0 (i32.le_u (local.get 0) (local.get 1)))
- )
- )
- (local.get 2)
- )
-)
-
-(assert_return (invoke "check-table-null" (i32.const 0) (i32.const 9)) (ref.null func))
-(assert_return (invoke "grow" (i32.const 10)) (i32.const 10))
-(assert_return (invoke "check-table-null" (i32.const 0) (i32.const 19)) (ref.null func))
-
-
-;; Type errors
-
-(assert_invalid
- (module
- (table $t 0 externref)
- (func $type-init-size-empty-vs-i32-externref (result i32)
- (table.grow $t)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 externref)
- (func $type-size-empty-vs-i32 (result i32)
- (table.grow $t (ref.null extern))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 externref)
- (func $type-init-empty-vs-externref (result i32)
- (table.grow $t (i32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 externref)
- (func $type-size-f32-vs-i32 (result i32)
- (table.grow $t (ref.null extern) (f32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 0 funcref)
- (func $type-init-externref-vs-funcref (param $r externref) (result i32)
- (table.grow $t (local.get $r) (i32.const 1))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t 1 externref)
- (func $type-result-i32-vs-empty
- (table.grow $t (ref.null extern) (i32.const 0))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 1 externref)
- (func $type-result-i32-vs-f32 (result f32)
- (table.grow $t (ref.null extern) (i32.const 0))
- )
- )
- "type mismatch"
-)
diff --git a/test/spec/table_set.wast b/test/spec/table_set.wast
deleted file mode 100644
index 7ec3fc6c2..000000000
--- a/test/spec/table_set.wast
+++ /dev/null
@@ -1,129 +0,0 @@
-(module
- (table $t2 1 externref)
- (table $t3 2 funcref)
- (table $t64 i64 2 funcref)
- (elem (table $t3) (i32.const 1) func $dummy)
- (func $dummy)
-
- (func (export "get-externref") (param $i i32) (result externref)
- (table.get $t2 (local.get $i))
- )
- (func $f3 (export "get-funcref") (param $i i32) (result funcref)
- (table.get $t3 (local.get $i))
- )
- (func $f4 (export "get-funcref-t64") (param $i i64) (result funcref)
- (table.get $t64 (local.get $i))
- )
-
- (func (export "set-externref") (param $i i32) (param $r externref)
- (table.set (local.get $i) (local.get $r))
- )
- (func (export "set-funcref") (param $i i32) (param $r funcref)
- (table.set $t3 (local.get $i) (local.get $r))
- )
- (func (export "set-funcref-from") (param $i i32) (param $j i32)
- (table.set $t3 (local.get $i) (table.get $t3 (local.get $j)))
- )
- (func (export "set-funcref-t64") (param $i i64) (param $r funcref)
- (table.set $t64 (local.get $i) (local.get $r))
- )
-
- (func (export "is_null-funcref") (param $i i32) (result i32)
- (ref.is_null (call $f3 (local.get $i)))
- )
-)
-
-(assert_return (invoke "get-externref" (i32.const 0)) (ref.null extern))
-;; (assert_return (invoke "set-externref" (i32.const 0) (ref.extern 1)))
-;; (assert_return (invoke "get-externref" (i32.const 0)) (ref.extern 1))
-(assert_return (invoke "set-externref" (i32.const 0) (ref.null extern)))
-(assert_return (invoke "get-externref" (i32.const 0)) (ref.null extern))
-
-(assert_return (invoke "set-funcref-t64" (i64.const 0) (ref.null func)))
-(assert_return (invoke "get-funcref-t64" (i64.const 0)) (ref.null func))
-
-(assert_return (invoke "get-funcref" (i32.const 0)) (ref.null func))
-(assert_return (invoke "set-funcref-from" (i32.const 0) (i32.const 1)))
-(assert_return (invoke "is_null-funcref" (i32.const 0)) (i32.const 0))
-(assert_return (invoke "set-funcref" (i32.const 0) (ref.null func)))
-(assert_return (invoke "get-funcref" (i32.const 0)) (ref.null func))
-
-(assert_trap (invoke "set-externref" (i32.const 2) (ref.null extern)) "out of bounds table access")
-(assert_trap (invoke "set-funcref" (i32.const 3) (ref.null func)) "out of bounds table access")
-(assert_trap (invoke "set-externref" (i32.const -1) (ref.null extern)) "out of bounds table access")
-(assert_trap (invoke "set-funcref" (i32.const -1) (ref.null func)) "out of bounds table access")
-
-;; (assert_trap (invoke "set-externref" (i32.const 2) (ref.extern 0)) "out of bounds table access")
-(assert_trap (invoke "set-funcref-from" (i32.const 3) (i32.const 1)) "out of bounds table access")
-;; (assert_trap (invoke "set-externref" (i32.const -1) (ref.extern 0)) "out of bounds table access")
-(assert_trap (invoke "set-funcref-from" (i32.const -1) (i32.const 1)) "out of bounds table access")
-
-
-;; Type errors
-
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-index-value-empty-vs-i32-externref
- (table.set $t)
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-index-empty-vs-i32
- (table.set $t (ref.null extern))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-value-empty-vs-externref
- (table.set $t (i32.const 1))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-size-f32-vs-i32
- (table.set $t (f32.const 1) (ref.null extern))
- )
- )
- "type mismatch"
-)
-(assert_invalid
- (module
- (table $t 10 funcref)
- (func $type-value-externref-vs-funcref (param $r externref)
- (table.set $t (i32.const 1) (local.get $r))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t1 1 externref)
- (table $t2 1 funcref)
- (func $type-value-externref-vs-funcref-multi (param $r externref)
- (table.set $t2 (i32.const 0) (local.get $r))
- )
- )
- "type mismatch"
-)
-
-(assert_invalid
- (module
- (table $t 10 externref)
- (func $type-result-empty-vs-num (result i32)
- (table.set $t (i32.const 0) (ref.null extern))
- )
- )
- "type mismatch"
-)