1 # Generated by tools/generators/hash_gen.py; do not edit by hand. 2 import Base 3 import ../../../src/crypto/sha/state.bend as S256 4 import ../../../src/crypto/sha/core.bend as C256 5 import ../../../src/crypto/sha/sha256.bend as SHA256 6 import ../../../src/crypto/sha512/types.bend as T512 7 import ../../../src/crypto/sha512/core.bend as C512 8 import ../../../src/crypto/keccak/types.bend as TK 9 import ../../../src/crypto/keccak/permutation.bend as P 10 import ../../../src/crypto/sha3/core.bend as C3 11 import ../../../src/crypto/hash.bend as H 12 import ../sha/conformance.bend as SC 13 import ./lists.bend as L 14 15 # The incremental hasher equals the one-shot hash for every split of the input 16 # (the invariant of HACL*'s Hacl.Streaming.Functor, without its ghost state): 17 # with G the algorithm's block loop over a byte list, a hasher whose state is 18 # (s, buf) after the chunks so far satisfies, for every continuation z, 19 # 20 # G(chunks so far ++ z, initial) == G(buf ++ z, s). 21 # 22 # absorbX_inv: one call of the block reader keeps it; foldX_inv: every update 23 # keeps it; incrementalX: digest pads buf with the total length, which is the 24 # one-shot padding of the whole message (z = the padding). The round 25 # parameter q (48, 64, 24) stays a variable in every lemma that unfolds a block. 26 27 # ---------------------------------------------------------------- SHA-256 (FIPS 180-4) 28 29 def st256(st: H.Sha256State) -> S256.State: 30 match st: 31 case H.St256{s, b}: 32 s 33 34 def buf256(st: H.Sha256State) -> List<&2, U32>: 35 match st: 36 case H.St256{s, b}: 37 b 38 39 law absorb256_inv: 40 for +fuel: Nat 41 for +bytes: List<&2, U32> 42 for +q: Nat 43 for +s: S256.State 44 for +z: List<&2, U32> 45 {C256.block_bytes(List.append(&2, U32, bytes, z), q, C256.round_constants(), s) == C256.block_bytes(List.append(&2, U32, buf256(H.absorb256(fuel, H.read256_0(bytes), bytes, q, s)), z), q, C256.round_constants(), st256(H.absorb256(fuel, H.read256_0(bytes), bytes, q, s))) : S256.State} 46 47 def absorb256_inv(fuel, bytes, q, s, z): 48 match fuel: 49 case 0n: 50 {==} 51 case 1n+p: 52 match bytes: 53 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> rest: 54 +fast = C256.fips_compress16(C256.pack(b0, b1, b2, b3), C256.pack(b4, b5, b6, b7), C256.pack(b8, b9, b10, b11), C256.pack(b12, b13, b14, b15), C256.pack(b16, b17, b18, b19), C256.pack(b20, b21, b22, b23), C256.pack(b24, b25, b26, b27), C256.pack(b28, b29, b30, b31), C256.pack(b32, b33, b34, b35), C256.pack(b36, b37, b38, b39), C256.pack(b40, b41, b42, b43), C256.pack(b44, b45, b46, b47), C256.pack(b48, b49, b50, b51), C256.pack(b52, b53, b54, b55), C256.pack(b56, b57, b58, b59), C256.pack(b60, b61, b62, b63), q, s) 55 %SC.fips16_correct(C256.pack(b0, b1, b2, b3), C256.pack(b4, b5, b6, b7), C256.pack(b8, b9, b10, b11), C256.pack(b12, b13, b14, b15), C256.pack(b16, b17, b18, b19), C256.pack(b20, b21, b22, b23), C256.pack(b24, b25, b26, b27), C256.pack(b28, b29, b30, b31), C256.pack(b32, b33, b34, b35), C256.pack(b36, b37, b38, b39), C256.pack(b40, b41, b42, b43), C256.pack(b44, b45, b46, b47), C256.pack(b48, b49, b50, b51), C256.pack(b52, b53, b54, b55), C256.pack(b56, b57, b58, b59), C256.pack(b60, b61, b62, b63), q, s) : 56 {C256.block_bytes(List.append(&2, U32, rest, z), q, C256.round_constants(), _) == C256.block_bytes(List.append(&2, U32, buf256(H.absorb256(p, H.read256_0(rest), rest, q, fast)), z), q, C256.round_constants(), st256(H.absorb256(p, H.read256_0(rest), rest, q, fast))) : S256.State} 57 absorb256_inv(p, rest, q, fast, z) 58 case Nil{}: 59 {==} 60 case b0 <> Nil{}: 61 {==} 62 case b0 <> b1 <> Nil{}: 63 {==} 64 case b0 <> b1 <> b2 <> Nil{}: 65 {==} 66 case b0 <> b1 <> b2 <> b3 <> Nil{}: 67 {==} 68 case b0 <> b1 <> b2 <> b3 <> b4 <> Nil{}: 69 {==} 70 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> Nil{}: 71 {==} 72 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> Nil{}: 73 {==} 74 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> Nil{}: 75 {==} 76 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> Nil{}: 77 {==} 78 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> Nil{}: 79 {==} 80 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> Nil{}: 81 {==} 82 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> Nil{}: 83 {==} 84 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> Nil{}: 85 {==} 86 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> Nil{}: 87 {==} 88 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> Nil{}: 89 {==} 90 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> Nil{}: 91 {==} 92 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> Nil{}: 93 {==} 94 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> Nil{}: 95 {==} 96 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> Nil{}: 97 {==} 98 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> Nil{}: 99 {==} 100 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> Nil{}: 101 {==} 102 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> Nil{}: 103 {==} 104 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> Nil{}: 105 {==} 106 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> Nil{}: 107 {==} 108 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> Nil{}: 109 {==} 110 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> Nil{}: 111 {==} 112 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> Nil{}: 113 {==} 114 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> Nil{}: 115 {==} 116 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> Nil{}: 117 {==} 118 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> Nil{}: 119 {==} 120 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> Nil{}: 121 {==} 122 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> Nil{}: 123 {==} 124 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> Nil{}: 125 {==} 126 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> Nil{}: 127 {==} 128 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> Nil{}: 129 {==} 130 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> Nil{}: 131 {==} 132 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> Nil{}: 133 {==} 134 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> Nil{}: 135 {==} 136 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> Nil{}: 137 {==} 138 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> Nil{}: 139 {==} 140 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> Nil{}: 141 {==} 142 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> Nil{}: 143 {==} 144 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> Nil{}: 145 {==} 146 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> Nil{}: 147 {==} 148 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> Nil{}: 149 {==} 150 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> Nil{}: 151 {==} 152 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> Nil{}: 153 {==} 154 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> Nil{}: 155 {==} 156 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> Nil{}: 157 {==} 158 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> Nil{}: 159 {==} 160 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> Nil{}: 161 {==} 162 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> Nil{}: 163 {==} 164 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> Nil{}: 165 {==} 166 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> Nil{}: 167 {==} 168 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> Nil{}: 169 {==} 170 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> Nil{}: 171 {==} 172 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> Nil{}: 173 {==} 174 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> Nil{}: 175 {==} 176 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> Nil{}: 177 {==} 178 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> Nil{}: 179 {==} 180 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> Nil{}: 181 {==} 182 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> Nil{}: 183 {==} 184 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> Nil{}: 185 {==} 186 187 law step256_inv: 188 for +st: H.Sha256State 189 for +xs: List<&2, U32> 190 for +q: Nat 191 for +z: List<&2, U32> 192 {C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), xs), z), q, C256.round_constants(), st256(st)) == C256.block_bytes(List.append(&2, U32, buf256(H.step256(st, xs, q)), z), q, C256.round_constants(), st256(H.step256(st, xs, q))) : S256.State} 193 194 def step256_inv(st, xs, q, z): 195 match st: 196 case H.St256{s, buf}: 197 absorb256_inv(List.length(&2, U32, List.append(&2, U32, buf, xs)), List.append(&2, U32, buf, xs), q, s, z) 198 199 # The state after each chunk in turn. 200 def fold256(cs: List<&2, List<&2, U32>>, +q: Nat, st: H.Sha256State) -> H.Sha256State: 201 match cs: 202 case Nil{}: 203 st 204 case c <> ct: 205 fold256(ct, q, H.step256(st, c, q)) 206 207 law fold256_inv: 208 for +cs: List<&2, List<&2, U32>> 209 for +q: Nat 210 for +st: H.Sha256State 211 for +z: List<&2, U32> 212 {C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), List.concat(&2, U32, cs)), z), q, C256.round_constants(), st256(st)) == C256.block_bytes(List.append(&2, U32, buf256(fold256(cs, q, st)), z), q, C256.round_constants(), st256(fold256(cs, q, st))) : S256.State} 213 214 def fold256_inv(cs, q, st, z): 215 match cs: 216 case Nil{}: 217 %L.append_nil(buf256(st)) : 218 {C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), Nil{}), z), q, C256.round_constants(), st256(st)) == C256.block_bytes(List.append(&2, U32, _, z), q, C256.round_constants(), st256(st)) : S256.State} 219 {==} 220 case c <> ct: 221 +st2 = H.step256(st, c, q) 222 +m = List.concat(&2, U32, ct) 223 Equal.trans(S256.State, 224 C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), z), q, C256.round_constants(), st256(st)), 225 C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st)), 226 C256.block_bytes(List.append(&2, U32, buf256(fold256(ct, q, st2)), z), q, C256.round_constants(), st256(fold256(ct, q, st2))), 227 Equal.cong(List<&2, U32>, S256.State, t => C256.block_bytes(t, q, C256.round_constants(), st256(st)), 228 List.append(&2, U32, List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)), 229 Equal.trans(List<&2, U32>, List.append(&2, U32, List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, List.append(&2, U32, buf256(st), c), m), z), List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)), 230 Equal.cong(List<&2, U32>, List<&2, U32>, t => List.append(&2, U32, t, z), 231 List.append(&2, U32, buf256(st), List.append(&2, U32, c, m)), List.append(&2, U32, List.append(&2, U32, buf256(st), c), m), L.append_assoc_rev(buf256(st), c, m)), 232 L.append_assoc(List.append(&2, U32, buf256(st), c), m, z))), 233 Equal.trans(S256.State, C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st), c), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st)), C256.block_bytes(List.append(&2, U32, buf256(st2), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st2)), C256.block_bytes(List.append(&2, U32, buf256(fold256(ct, q, st2)), z), q, C256.round_constants(), st256(fold256(ct, q, st2))), 234 step256_inv(st, c, q, List.append(&2, U32, m, z)), 235 Equal.trans(S256.State, C256.block_bytes(List.append(&2, U32, buf256(st2), List.append(&2, U32, m, z)), q, C256.round_constants(), st256(st2)), C256.block_bytes(List.append(&2, U32, List.append(&2, U32, buf256(st2), m), z), q, C256.round_constants(), st256(st2)), C256.block_bytes(List.append(&2, U32, buf256(fold256(ct, q, st2)), z), q, C256.round_constants(), st256(fold256(ct, q, st2))), 236 Equal.cong(List<&2, U32>, S256.State, t => C256.block_bytes(t, q, C256.round_constants(), st256(st2)), 237 List.append(&2, U32, buf256(st2), List.append(&2, U32, m, z)), List.append(&2, U32, List.append(&2, U32, buf256(st2), m), z), L.append_assoc_rev(buf256(st2), m, z)), 238 fold256_inv(ct, q, st2, z)))) 239 240 law state256: 241 for +cs: List<&2, List<&2, U32>> 242 for +st: H.Sha256State 243 for +len: Nat 244 {H.fold(cs, H.Sha256H{st, len}) == H.Sha256H{fold256(cs, 48n, st), Nat.add(len, List.length(&2, U32, List.concat(&2, U32, cs)))} : H.Hasher} 245 246 def state256(cs, st, len): 247 match cs: 248 case Nil{}: 249 Equal.cong(Nat, H.Hasher, t => H.Sha256H{st, t}, len, Nat.add(len, 0n), 250 Equal.sym(Nat, Nat.add(len, 0n), len, L.add_zero(len))) 251 case c <> ct: 252 +m = List.concat(&2, U32, ct) 253 %L.add_length(len, c, m) : 254 {H.fold(c <> ct, H.Sha256H{st, len}) == H.Sha256H{fold256(ct, 48n, H.step256(st, c, 48n)), _} : H.Hasher} 255 state256(ct, H.step256(st, c, 48n), Nat.add(len, List.length(&2, U32, c))) 256 257 law finish256_eta: 258 for +st: H.Sha256State 259 for +len: Nat 260 for +q: Nat 261 {H.finish256(st, len, q) == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, buf256(st), C256.suffix(len)), q, C256.round_constants(), st256(st)))) : List<&2, U32>} 262 263 def finish256_eta(st, len, q): 264 match st: 265 case H.St256{s, buf}: 266 {==} 267 268 # digest(update_all(new, chunks)) is the padded block loop over concat(chunks). 269 law incremental256: 270 for +cs: List<&2, List<&2, U32>> 271 {H.digest(H.update_all(H.new_sha256(), cs)) == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, List.concat(&2, U32, cs), C256.suffix(List.length(&2, U32, List.concat(&2, U32, cs)))), 48n, C256.round_constants(), C256.initial()))) : List<&2, U32>} 272 273 def incremental256(cs): 274 +m = List.concat(&2, U32, cs) 275 +qs = fold256(cs, 48n, H.St256{C256.initial(), Nil{}}) 276 %Equal.sym(H.Hasher, H.fold(cs, H.Sha256H{H.St256{C256.initial(), Nil{}}, 0n}), H.Sha256H{qs, List.length(&2, U32, m)}, 277 state256(cs, H.St256{C256.initial(), Nil{}}, 0n)) : 278 {H.digest(_) == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, List.concat(&2, U32, cs), C256.suffix(List.length(&2, U32, List.concat(&2, U32, cs)))), 48n, C256.round_constants(), C256.initial()))) : List<&2, U32>} 279 %Equal.sym(List<&2, U32>, H.finish256(qs, List.length(&2, U32, m), 48n), SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, buf256(qs), C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), st256(qs)))), 280 finish256_eta(qs, List.length(&2, U32, m), 48n)) : 281 {_ == SHA256.digest_bytes(C256.digest(C256.block_bytes(List.append(&2, U32, List.concat(&2, U32, cs), C256.suffix(List.length(&2, U32, List.concat(&2, U32, cs)))), 48n, C256.round_constants(), C256.initial()))) : List<&2, U32>} 282 Equal.cong(S256.State, List<&2, U32>, t => SHA256.digest_bytes(C256.digest(t)), 283 C256.block_bytes(List.append(&2, U32, buf256(qs), C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), st256(qs)), C256.block_bytes(List.append(&2, U32, m, C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), C256.initial()), 284 Equal.sym(S256.State, C256.block_bytes(List.append(&2, U32, m, C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), C256.initial()), C256.block_bytes(List.append(&2, U32, buf256(qs), C256.suffix(List.length(&2, U32, m))), 48n, C256.round_constants(), st256(qs)), fold256_inv(cs, 48n, H.St256{C256.initial(), Nil{}}, C256.suffix(List.length(&2, U32, m))))) 285 286 # ---------------------------------------------------------------- SHA-512 (FIPS 180-4) 287 288 def st512(st: H.Sha512State) -> T512.State: 289 match st: 290 case H.St512{s, b}: 291 s 292 293 def buf512(st: H.Sha512State) -> List<&2, U32>: 294 match st: 295 case H.St512{s, b}: 296 b 297 298 law absorb512_inv: 299 for +fuel: Nat 300 for +bytes: List<&2, U32> 301 for +q: Nat 302 for +s: T512.State 303 for +z: List<&2, U32> 304 {C512.blocks(C512.lanes(List.append(&2, U32, bytes, z)), q, C512.round_constants(), s) == C512.blocks(C512.lanes(List.append(&2, U32, buf512(H.absorb512(fuel, H.read512_0(bytes), bytes, q, s)), z)), q, C512.round_constants(), st512(H.absorb512(fuel, H.read512_0(bytes), bytes, q, s))) : T512.State} 305 306 def absorb512_inv(fuel, bytes, q, s, z): 307 match fuel: 308 case 0n: 309 {==} 310 case 1n+p: 311 match bytes: 312 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> rest: 313 absorb512_inv(p, rest, q, C512.compress16(T512.W{C512.pack(b0, b1, b2, b3), C512.pack(b4, b5, b6, b7)}, T512.W{C512.pack(b8, b9, b10, b11), C512.pack(b12, b13, b14, b15)}, T512.W{C512.pack(b16, b17, b18, b19), C512.pack(b20, b21, b22, b23)}, T512.W{C512.pack(b24, b25, b26, b27), C512.pack(b28, b29, b30, b31)}, T512.W{C512.pack(b32, b33, b34, b35), C512.pack(b36, b37, b38, b39)}, T512.W{C512.pack(b40, b41, b42, b43), C512.pack(b44, b45, b46, b47)}, T512.W{C512.pack(b48, b49, b50, b51), C512.pack(b52, b53, b54, b55)}, T512.W{C512.pack(b56, b57, b58, b59), C512.pack(b60, b61, b62, b63)}, T512.W{C512.pack(b64, b65, b66, b67), C512.pack(b68, b69, b70, b71)}, T512.W{C512.pack(b72, b73, b74, b75), C512.pack(b76, b77, b78, b79)}, T512.W{C512.pack(b80, b81, b82, b83), C512.pack(b84, b85, b86, b87)}, T512.W{C512.pack(b88, b89, b90, b91), C512.pack(b92, b93, b94, b95)}, T512.W{C512.pack(b96, b97, b98, b99), C512.pack(b100, b101, b102, b103)}, T512.W{C512.pack(b104, b105, b106, b107), C512.pack(b108, b109, b110, b111)}, T512.W{C512.pack(b112, b113, b114, b115), C512.pack(b116, b117, b118, b119)}, T512.W{C512.pack(b120, b121, b122, b123), C512.pack(b124, b125, b126, b127)}, q, C512.round_constants(), s), z) 314 case Nil{}: 315 {==} 316 case b0 <> Nil{}: 317 {==} 318 case b0 <> b1 <> Nil{}: 319 {==} 320 case b0 <> b1 <> b2 <> Nil{}: 321 {==} 322 case b0 <> b1 <> b2 <> b3 <> Nil{}: 323 {==} 324 case b0 <> b1 <> b2 <> b3 <> b4 <> Nil{}: 325 {==} 326 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> Nil{}: 327 {==} 328 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> Nil{}: 329 {==} 330 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> Nil{}: 331 {==} 332 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> Nil{}: 333 {==} 334 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> Nil{}: 335 {==} 336 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> Nil{}: 337 {==} 338 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> Nil{}: 339 {==} 340 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> Nil{}: 341 {==} 342 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> Nil{}: 343 {==} 344 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> Nil{}: 345 {==} 346 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> Nil{}: 347 {==} 348 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> Nil{}: 349 {==} 350 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> Nil{}: 351 {==} 352 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> Nil{}: 353 {==} 354 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> Nil{}: 355 {==} 356 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> Nil{}: 357 {==} 358 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> Nil{}: 359 {==} 360 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> Nil{}: 361 {==} 362 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> Nil{}: 363 {==} 364 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> Nil{}: 365 {==} 366 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> Nil{}: 367 {==} 368 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> Nil{}: 369 {==} 370 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> Nil{}: 371 {==} 372 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> Nil{}: 373 {==} 374 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> Nil{}: 375 {==} 376 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> Nil{}: 377 {==} 378 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> Nil{}: 379 {==} 380 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> Nil{}: 381 {==} 382 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> Nil{}: 383 {==} 384 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> Nil{}: 385 {==} 386 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> Nil{}: 387 {==} 388 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> Nil{}: 389 {==} 390 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> Nil{}: 391 {==} 392 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> Nil{}: 393 {==} 394 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> Nil{}: 395 {==} 396 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> Nil{}: 397 {==} 398 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> Nil{}: 399 {==} 400 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> Nil{}: 401 {==} 402 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> Nil{}: 403 {==} 404 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> Nil{}: 405 {==} 406 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> Nil{}: 407 {==} 408 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> Nil{}: 409 {==} 410 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> Nil{}: 411 {==} 412 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> Nil{}: 413 {==} 414 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> Nil{}: 415 {==} 416 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> Nil{}: 417 {==} 418 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> Nil{}: 419 {==} 420 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> Nil{}: 421 {==} 422 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> Nil{}: 423 {==} 424 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> Nil{}: 425 {==} 426 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> Nil{}: 427 {==} 428 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> Nil{}: 429 {==} 430 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> Nil{}: 431 {==} 432 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> Nil{}: 433 {==} 434 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> Nil{}: 435 {==} 436 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> Nil{}: 437 {==} 438 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> Nil{}: 439 {==} 440 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> Nil{}: 441 {==} 442 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> Nil{}: 443 {==} 444 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> Nil{}: 445 {==} 446 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> Nil{}: 447 {==} 448 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> Nil{}: 449 {==} 450 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> Nil{}: 451 {==} 452 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> Nil{}: 453 {==} 454 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> Nil{}: 455 {==} 456 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> Nil{}: 457 {==} 458 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> Nil{}: 459 {==} 460 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> Nil{}: 461 {==} 462 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> Nil{}: 463 {==} 464 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> Nil{}: 465 {==} 466 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> Nil{}: 467 {==} 468 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> Nil{}: 469 {==} 470 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> Nil{}: 471 {==} 472 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> Nil{}: 473 {==} 474 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> Nil{}: 475 {==} 476 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> Nil{}: 477 {==} 478 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> Nil{}: 479 {==} 480 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> Nil{}: 481 {==} 482 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> Nil{}: 483 {==} 484 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> Nil{}: 485 {==} 486 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> Nil{}: 487 {==} 488 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> Nil{}: 489 {==} 490 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> Nil{}: 491 {==} 492 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> Nil{}: 493 {==} 494 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> Nil{}: 495 {==} 496 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> Nil{}: 497 {==} 498 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> Nil{}: 499 {==} 500 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> Nil{}: 501 {==} 502 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> Nil{}: 503 {==} 504 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> Nil{}: 505 {==} 506 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> Nil{}: 507 {==} 508 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> Nil{}: 509 {==} 510 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> Nil{}: 511 {==} 512 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> Nil{}: 513 {==} 514 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> Nil{}: 515 {==} 516 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> Nil{}: 517 {==} 518 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> Nil{}: 519 {==} 520 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> Nil{}: 521 {==} 522 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> Nil{}: 523 {==} 524 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> Nil{}: 525 {==} 526 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> Nil{}: 527 {==} 528 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> Nil{}: 529 {==} 530 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> Nil{}: 531 {==} 532 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> Nil{}: 533 {==} 534 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> Nil{}: 535 {==} 536 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> Nil{}: 537 {==} 538 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> Nil{}: 539 {==} 540 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> Nil{}: 541 {==} 542 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> Nil{}: 543 {==} 544 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> Nil{}: 545 {==} 546 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> Nil{}: 547 {==} 548 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> Nil{}: 549 {==} 550 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> Nil{}: 551 {==} 552 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> Nil{}: 553 {==} 554 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> Nil{}: 555 {==} 556 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> Nil{}: 557 {==} 558 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> Nil{}: 559 {==} 560 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> Nil{}: 561 {==} 562 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> Nil{}: 563 {==} 564 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> Nil{}: 565 {==} 566 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> Nil{}: 567 {==} 568 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> Nil{}: 569 {==} 570 571 law step512_inv: 572 for +st: H.Sha512State 573 for +xs: List<&2, U32> 574 for +q: Nat 575 for +z: List<&2, U32> 576 {C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), xs), z)), q, C512.round_constants(), st512(st)) == C512.blocks(C512.lanes(List.append(&2, U32, buf512(H.step512(st, xs, q)), z)), q, C512.round_constants(), st512(H.step512(st, xs, q))) : T512.State} 577 578 def step512_inv(st, xs, q, z): 579 match st: 580 case H.St512{s, buf}: 581 absorb512_inv(List.length(&2, U32, List.append(&2, U32, buf, xs)), List.append(&2, U32, buf, xs), q, s, z) 582 583 # The state after each chunk in turn. 584 def fold512(cs: List<&2, List<&2, U32>>, +q: Nat, st: H.Sha512State) -> H.Sha512State: 585 match cs: 586 case Nil{}: 587 st 588 case c <> ct: 589 fold512(ct, q, H.step512(st, c, q)) 590 591 law fold512_inv: 592 for +cs: List<&2, List<&2, U32>> 593 for +q: Nat 594 for +st: H.Sha512State 595 for +z: List<&2, U32> 596 {C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), List.concat(&2, U32, cs)), z)), q, C512.round_constants(), st512(st)) == C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(cs, q, st)), z)), q, C512.round_constants(), st512(fold512(cs, q, st))) : T512.State} 597 598 def fold512_inv(cs, q, st, z): 599 match cs: 600 case Nil{}: 601 %L.append_nil(buf512(st)) : 602 {C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), Nil{}), z)), q, C512.round_constants(), st512(st)) == C512.blocks(C512.lanes(List.append(&2, U32, _, z)), q, C512.round_constants(), st512(st)) : T512.State} 603 {==} 604 case c <> ct: 605 +st2 = H.step512(st, c, q) 606 +m = List.concat(&2, U32, ct) 607 Equal.trans(T512.State, 608 C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), z)), q, C512.round_constants(), st512(st)), 609 C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st)), 610 C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(ct, q, st2)), z)), q, C512.round_constants(), st512(fold512(ct, q, st2))), 611 Equal.cong(List<&2, U32>, T512.State, t => C512.blocks(C512.lanes(t), q, C512.round_constants(), st512(st)), 612 List.append(&2, U32, List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z)), 613 Equal.trans(List<&2, U32>, List.append(&2, U32, List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, List.append(&2, U32, buf512(st), c), m), z), List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z)), 614 Equal.cong(List<&2, U32>, List<&2, U32>, t => List.append(&2, U32, t, z), 615 List.append(&2, U32, buf512(st), List.append(&2, U32, c, m)), List.append(&2, U32, List.append(&2, U32, buf512(st), c), m), L.append_assoc_rev(buf512(st), c, m)), 616 L.append_assoc(List.append(&2, U32, buf512(st), c), m, z))), 617 Equal.trans(T512.State, C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st), c), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st)), C512.blocks(C512.lanes(List.append(&2, U32, buf512(st2), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st2)), C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(ct, q, st2)), z)), q, C512.round_constants(), st512(fold512(ct, q, st2))), 618 step512_inv(st, c, q, List.append(&2, U32, m, z)), 619 Equal.trans(T512.State, C512.blocks(C512.lanes(List.append(&2, U32, buf512(st2), List.append(&2, U32, m, z))), q, C512.round_constants(), st512(st2)), C512.blocks(C512.lanes(List.append(&2, U32, List.append(&2, U32, buf512(st2), m), z)), q, C512.round_constants(), st512(st2)), C512.blocks(C512.lanes(List.append(&2, U32, buf512(fold512(ct, q, st2)), z)), q, C512.round_constants(), st512(fold512(ct, q, st2))), 620 Equal.cong(List<&2, U32>, T512.State, t => C512.blocks(C512.lanes(t), q, C512.round_constants(), st512(st2)), 621 List.append(&2, U32, buf512(st2), List.append(&2, U32, m, z)), List.append(&2, U32, List.append(&2, U32, buf512(st2), m), z), L.append_assoc_rev(buf512(st2), m, z)), 622 fold512_inv(ct, q, st2, z)))) 623 624 law state512: 625 for +cs: List<&2, List<&2, U32>> 626 for +st: H.Sha512State 627 for +len: Nat 628 {H.fold(cs, H.Sha512H{st, len}) == H.Sha512H{fold512(cs, 64n, st), Nat.add(len, List.length(&2, U32, List.concat(&2, U32, cs)))} : H.Hasher} 629 630 def state512(cs, st, len): 631 match cs: 632 case Nil{}: 633 Equal.cong(Nat, H.Hasher, t => H.Sha512H{st, t}, len, Nat.add(len, 0n), 634 Equal.sym(Nat, Nat.add(len, 0n), len, L.add_zero(len))) 635 case c <> ct: 636 +m = List.concat(&2, U32, ct) 637 %L.add_length(len, c, m) : 638 {H.fold(c <> ct, H.Sha512H{st, len}) == H.Sha512H{fold512(ct, 64n, H.step512(st, c, 64n)), _} : H.Hasher} 639 state512(ct, H.step512(st, c, 64n), Nat.add(len, List.length(&2, U32, c))) 640 641 law finish512_eta: 642 for +st: H.Sha512State 643 for +len: Nat 644 for +q: Nat 645 {H.finish512(st, len, q) == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, buf512(st), C512.suffix(len))), q, C512.round_constants(), st512(st))) : List<&2, U32>} 646 647 def finish512_eta(st, len, q): 648 match st: 649 case H.St512{s, buf}: 650 {==} 651 652 # digest(update_all(new, chunks)) is the padded block loop over concat(chunks). 653 law incremental512: 654 for +cs: List<&2, List<&2, U32>> 655 {H.digest(H.update_all(H.new_sha512(), cs)) == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C512.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 64n, C512.round_constants(), C512.initial())) : List<&2, U32>} 656 657 def incremental512(cs): 658 +m = List.concat(&2, U32, cs) 659 +qs = fold512(cs, 64n, H.St512{C512.initial(), Nil{}}) 660 %Equal.sym(H.Hasher, H.fold(cs, H.Sha512H{H.St512{C512.initial(), Nil{}}, 0n}), H.Sha512H{qs, List.length(&2, U32, m)}, 661 state512(cs, H.St512{C512.initial(), Nil{}}, 0n)) : 662 {H.digest(_) == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C512.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 64n, C512.round_constants(), C512.initial())) : List<&2, U32>} 663 %Equal.sym(List<&2, U32>, H.finish512(qs, List.length(&2, U32, m), 64n), C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, buf512(qs), C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), st512(qs))), 664 finish512_eta(qs, List.length(&2, U32, m), 64n)) : 665 {_ == C512.digest_bytes(C512.blocks(C512.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C512.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 64n, C512.round_constants(), C512.initial())) : List<&2, U32>} 666 Equal.cong(T512.State, List<&2, U32>, t => C512.digest_bytes(t), 667 C512.blocks(C512.lanes(List.append(&2, U32, buf512(qs), C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), st512(qs)), C512.blocks(C512.lanes(List.append(&2, U32, m, C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), C512.initial()), 668 Equal.sym(T512.State, C512.blocks(C512.lanes(List.append(&2, U32, m, C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), C512.initial()), C512.blocks(C512.lanes(List.append(&2, U32, buf512(qs), C512.suffix(List.length(&2, U32, m)))), 64n, C512.round_constants(), st512(qs)), fold512_inv(cs, 64n, H.St512{C512.initial(), Nil{}}, C512.suffix(List.length(&2, U32, m))))) 669 670 # ---------------------------------------------------------------- SHA3-256 (FIPS 202) 671 672 def st3(st: H.Sha3State) -> TK.State: 673 match st: 674 case H.St3{s, b}: 675 s 676 677 def buf3(st: H.Sha3State) -> List<&2, U32>: 678 match st: 679 case H.St3{s, b}: 680 b 681 682 law absorb3_inv: 683 for +fuel: Nat 684 for +bytes: List<&2, U32> 685 for +q: Nat 686 for +s: TK.State 687 for +z: List<&2, U32> 688 {C3.absorb(C3.lanes(List.append(&2, U32, bytes, z)), q, s) == C3.absorb(C3.lanes(List.append(&2, U32, buf3(H.absorb3(fuel, H.read3_0(bytes), bytes, q, s)), z)), q, st3(H.absorb3(fuel, H.read3_0(bytes), bytes, q, s))) : TK.State} 689 690 def absorb3_inv(fuel, bytes, q, s, z): 691 match fuel: 692 case 0n: 693 {==} 694 case 1n+p: 695 match bytes: 696 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> b133 <> b134 <> b135 <> rest: 697 absorb3_inv(p, rest, q, P.rounds(q, 0n, C3.inject(s, TK.W{C3.pack(b0, b1, b2, b3), C3.pack(b4, b5, b6, b7)}, TK.W{C3.pack(b8, b9, b10, b11), C3.pack(b12, b13, b14, b15)}, TK.W{C3.pack(b16, b17, b18, b19), C3.pack(b20, b21, b22, b23)}, TK.W{C3.pack(b24, b25, b26, b27), C3.pack(b28, b29, b30, b31)}, TK.W{C3.pack(b32, b33, b34, b35), C3.pack(b36, b37, b38, b39)}, TK.W{C3.pack(b40, b41, b42, b43), C3.pack(b44, b45, b46, b47)}, TK.W{C3.pack(b48, b49, b50, b51), C3.pack(b52, b53, b54, b55)}, TK.W{C3.pack(b56, b57, b58, b59), C3.pack(b60, b61, b62, b63)}, TK.W{C3.pack(b64, b65, b66, b67), C3.pack(b68, b69, b70, b71)}, TK.W{C3.pack(b72, b73, b74, b75), C3.pack(b76, b77, b78, b79)}, TK.W{C3.pack(b80, b81, b82, b83), C3.pack(b84, b85, b86, b87)}, TK.W{C3.pack(b88, b89, b90, b91), C3.pack(b92, b93, b94, b95)}, TK.W{C3.pack(b96, b97, b98, b99), C3.pack(b100, b101, b102, b103)}, TK.W{C3.pack(b104, b105, b106, b107), C3.pack(b108, b109, b110, b111)}, TK.W{C3.pack(b112, b113, b114, b115), C3.pack(b116, b117, b118, b119)}, TK.W{C3.pack(b120, b121, b122, b123), C3.pack(b124, b125, b126, b127)}, TK.W{C3.pack(b128, b129, b130, b131), C3.pack(b132, b133, b134, b135)})), z) 698 case Nil{}: 699 {==} 700 case b0 <> Nil{}: 701 {==} 702 case b0 <> b1 <> Nil{}: 703 {==} 704 case b0 <> b1 <> b2 <> Nil{}: 705 {==} 706 case b0 <> b1 <> b2 <> b3 <> Nil{}: 707 {==} 708 case b0 <> b1 <> b2 <> b3 <> b4 <> Nil{}: 709 {==} 710 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> Nil{}: 711 {==} 712 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> Nil{}: 713 {==} 714 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> Nil{}: 715 {==} 716 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> Nil{}: 717 {==} 718 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> Nil{}: 719 {==} 720 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> Nil{}: 721 {==} 722 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> Nil{}: 723 {==} 724 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> Nil{}: 725 {==} 726 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> Nil{}: 727 {==} 728 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> Nil{}: 729 {==} 730 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> Nil{}: 731 {==} 732 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> Nil{}: 733 {==} 734 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> Nil{}: 735 {==} 736 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> Nil{}: 737 {==} 738 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> Nil{}: 739 {==} 740 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> Nil{}: 741 {==} 742 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> Nil{}: 743 {==} 744 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> Nil{}: 745 {==} 746 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> Nil{}: 747 {==} 748 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> Nil{}: 749 {==} 750 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> Nil{}: 751 {==} 752 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> Nil{}: 753 {==} 754 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> Nil{}: 755 {==} 756 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> Nil{}: 757 {==} 758 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> Nil{}: 759 {==} 760 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> Nil{}: 761 {==} 762 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> Nil{}: 763 {==} 764 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> Nil{}: 765 {==} 766 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> Nil{}: 767 {==} 768 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> Nil{}: 769 {==} 770 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> Nil{}: 771 {==} 772 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> Nil{}: 773 {==} 774 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> Nil{}: 775 {==} 776 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> Nil{}: 777 {==} 778 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> Nil{}: 779 {==} 780 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> Nil{}: 781 {==} 782 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> Nil{}: 783 {==} 784 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> Nil{}: 785 {==} 786 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> Nil{}: 787 {==} 788 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> Nil{}: 789 {==} 790 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> Nil{}: 791 {==} 792 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> Nil{}: 793 {==} 794 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> Nil{}: 795 {==} 796 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> Nil{}: 797 {==} 798 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> Nil{}: 799 {==} 800 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> Nil{}: 801 {==} 802 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> Nil{}: 803 {==} 804 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> Nil{}: 805 {==} 806 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> Nil{}: 807 {==} 808 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> Nil{}: 809 {==} 810 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> Nil{}: 811 {==} 812 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> Nil{}: 813 {==} 814 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> Nil{}: 815 {==} 816 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> Nil{}: 817 {==} 818 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> Nil{}: 819 {==} 820 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> Nil{}: 821 {==} 822 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> Nil{}: 823 {==} 824 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> Nil{}: 825 {==} 826 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> Nil{}: 827 {==} 828 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> Nil{}: 829 {==} 830 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> Nil{}: 831 {==} 832 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> Nil{}: 833 {==} 834 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> Nil{}: 835 {==} 836 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> Nil{}: 837 {==} 838 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> Nil{}: 839 {==} 840 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> Nil{}: 841 {==} 842 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> Nil{}: 843 {==} 844 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> Nil{}: 845 {==} 846 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> Nil{}: 847 {==} 848 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> Nil{}: 849 {==} 850 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> Nil{}: 851 {==} 852 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> Nil{}: 853 {==} 854 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> Nil{}: 855 {==} 856 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> Nil{}: 857 {==} 858 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> Nil{}: 859 {==} 860 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> Nil{}: 861 {==} 862 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> Nil{}: 863 {==} 864 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> Nil{}: 865 {==} 866 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> Nil{}: 867 {==} 868 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> Nil{}: 869 {==} 870 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> Nil{}: 871 {==} 872 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> Nil{}: 873 {==} 874 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> Nil{}: 875 {==} 876 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> Nil{}: 877 {==} 878 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> Nil{}: 879 {==} 880 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> Nil{}: 881 {==} 882 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> Nil{}: 883 {==} 884 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> Nil{}: 885 {==} 886 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> Nil{}: 887 {==} 888 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> Nil{}: 889 {==} 890 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> Nil{}: 891 {==} 892 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> Nil{}: 893 {==} 894 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> Nil{}: 895 {==} 896 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> Nil{}: 897 {==} 898 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> Nil{}: 899 {==} 900 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> Nil{}: 901 {==} 902 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> Nil{}: 903 {==} 904 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> Nil{}: 905 {==} 906 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> Nil{}: 907 {==} 908 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> Nil{}: 909 {==} 910 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> Nil{}: 911 {==} 912 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> Nil{}: 913 {==} 914 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> Nil{}: 915 {==} 916 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> Nil{}: 917 {==} 918 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> Nil{}: 919 {==} 920 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> Nil{}: 921 {==} 922 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> Nil{}: 923 {==} 924 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> Nil{}: 925 {==} 926 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> Nil{}: 927 {==} 928 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> Nil{}: 929 {==} 930 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> Nil{}: 931 {==} 932 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> Nil{}: 933 {==} 934 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> Nil{}: 935 {==} 936 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> Nil{}: 937 {==} 938 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> Nil{}: 939 {==} 940 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> Nil{}: 941 {==} 942 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> Nil{}: 943 {==} 944 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> Nil{}: 945 {==} 946 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> Nil{}: 947 {==} 948 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> Nil{}: 949 {==} 950 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> Nil{}: 951 {==} 952 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> Nil{}: 953 {==} 954 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> Nil{}: 955 {==} 956 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> Nil{}: 957 {==} 958 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> Nil{}: 959 {==} 960 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> Nil{}: 961 {==} 962 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> Nil{}: 963 {==} 964 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> Nil{}: 965 {==} 966 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> b133 <> Nil{}: 967 {==} 968 case b0 <> b1 <> b2 <> b3 <> b4 <> b5 <> b6 <> b7 <> b8 <> b9 <> b10 <> b11 <> b12 <> b13 <> b14 <> b15 <> b16 <> b17 <> b18 <> b19 <> b20 <> b21 <> b22 <> b23 <> b24 <> b25 <> b26 <> b27 <> b28 <> b29 <> b30 <> b31 <> b32 <> b33 <> b34 <> b35 <> b36 <> b37 <> b38 <> b39 <> b40 <> b41 <> b42 <> b43 <> b44 <> b45 <> b46 <> b47 <> b48 <> b49 <> b50 <> b51 <> b52 <> b53 <> b54 <> b55 <> b56 <> b57 <> b58 <> b59 <> b60 <> b61 <> b62 <> b63 <> b64 <> b65 <> b66 <> b67 <> b68 <> b69 <> b70 <> b71 <> b72 <> b73 <> b74 <> b75 <> b76 <> b77 <> b78 <> b79 <> b80 <> b81 <> b82 <> b83 <> b84 <> b85 <> b86 <> b87 <> b88 <> b89 <> b90 <> b91 <> b92 <> b93 <> b94 <> b95 <> b96 <> b97 <> b98 <> b99 <> b100 <> b101 <> b102 <> b103 <> b104 <> b105 <> b106 <> b107 <> b108 <> b109 <> b110 <> b111 <> b112 <> b113 <> b114 <> b115 <> b116 <> b117 <> b118 <> b119 <> b120 <> b121 <> b122 <> b123 <> b124 <> b125 <> b126 <> b127 <> b128 <> b129 <> b130 <> b131 <> b132 <> b133 <> b134 <> Nil{}: 969 {==} 970 971 law step3_inv: 972 for +st: H.Sha3State 973 for +xs: List<&2, U32> 974 for +q: Nat 975 for +z: List<&2, U32> 976 {C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), xs), z)), q, st3(st)) == C3.absorb(C3.lanes(List.append(&2, U32, buf3(H.step3(st, xs, q)), z)), q, st3(H.step3(st, xs, q))) : TK.State} 977 978 def step3_inv(st, xs, q, z): 979 match st: 980 case H.St3{s, buf}: 981 absorb3_inv(List.length(&2, U32, List.append(&2, U32, buf, xs)), List.append(&2, U32, buf, xs), q, s, z) 982 983 # The state after each chunk in turn. 984 def fold3(cs: List<&2, List<&2, U32>>, +q: Nat, st: H.Sha3State) -> H.Sha3State: 985 match cs: 986 case Nil{}: 987 st 988 case c <> ct: 989 fold3(ct, q, H.step3(st, c, q)) 990 991 law fold3_inv: 992 for +cs: List<&2, List<&2, U32>> 993 for +q: Nat 994 for +st: H.Sha3State 995 for +z: List<&2, U32> 996 {C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), List.concat(&2, U32, cs)), z)), q, st3(st)) == C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(cs, q, st)), z)), q, st3(fold3(cs, q, st))) : TK.State} 997 998 def fold3_inv(cs, q, st, z): 999 match cs: 1000 case Nil{}: 1001 %L.append_nil(buf3(st)) : 1002 {C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), Nil{}), z)), q, st3(st)) == C3.absorb(C3.lanes(List.append(&2, U32, _, z)), q, st3(st)) : TK.State} 1003 {==} 1004 case c <> ct: 1005 +st2 = H.step3(st, c, q) 1006 +m = List.concat(&2, U32, ct) 1007 Equal.trans(TK.State, 1008 C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), z)), q, st3(st)), 1009 C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z))), q, st3(st)), 1010 C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(ct, q, st2)), z)), q, st3(fold3(ct, q, st2))), 1011 Equal.cong(List<&2, U32>, TK.State, t => C3.absorb(C3.lanes(t), q, st3(st)), 1012 List.append(&2, U32, List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z)), 1013 Equal.trans(List<&2, U32>, List.append(&2, U32, List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), z), List.append(&2, U32, List.append(&2, U32, List.append(&2, U32, buf3(st), c), m), z), List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z)), 1014 Equal.cong(List<&2, U32>, List<&2, U32>, t => List.append(&2, U32, t, z), 1015 List.append(&2, U32, buf3(st), List.append(&2, U32, c, m)), List.append(&2, U32, List.append(&2, U32, buf3(st), c), m), L.append_assoc_rev(buf3(st), c, m)), 1016 L.append_assoc(List.append(&2, U32, buf3(st), c), m, z))), 1017 Equal.trans(TK.State, C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st), c), List.append(&2, U32, m, z))), q, st3(st)), C3.absorb(C3.lanes(List.append(&2, U32, buf3(st2), List.append(&2, U32, m, z))), q, st3(st2)), C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(ct, q, st2)), z)), q, st3(fold3(ct, q, st2))), 1018 step3_inv(st, c, q, List.append(&2, U32, m, z)), 1019 Equal.trans(TK.State, C3.absorb(C3.lanes(List.append(&2, U32, buf3(st2), List.append(&2, U32, m, z))), q, st3(st2)), C3.absorb(C3.lanes(List.append(&2, U32, List.append(&2, U32, buf3(st2), m), z)), q, st3(st2)), C3.absorb(C3.lanes(List.append(&2, U32, buf3(fold3(ct, q, st2)), z)), q, st3(fold3(ct, q, st2))), 1020 Equal.cong(List<&2, U32>, TK.State, t => C3.absorb(C3.lanes(t), q, st3(st2)), 1021 List.append(&2, U32, buf3(st2), List.append(&2, U32, m, z)), List.append(&2, U32, List.append(&2, U32, buf3(st2), m), z), L.append_assoc_rev(buf3(st2), m, z)), 1022 fold3_inv(ct, q, st2, z)))) 1023 1024 law state3: 1025 for +cs: List<&2, List<&2, U32>> 1026 for +st: H.Sha3State 1027 for +len: Nat 1028 {H.fold(cs, H.Sha3H{st, len}) == H.Sha3H{fold3(cs, 24n, st), Nat.add(len, List.length(&2, U32, List.concat(&2, U32, cs)))} : H.Hasher} 1029 1030 def state3(cs, st, len): 1031 match cs: 1032 case Nil{}: 1033 Equal.cong(Nat, H.Hasher, t => H.Sha3H{st, t}, len, Nat.add(len, 0n), 1034 Equal.sym(Nat, Nat.add(len, 0n), len, L.add_zero(len))) 1035 case c <> ct: 1036 +m = List.concat(&2, U32, ct) 1037 %L.add_length(len, c, m) : 1038 {H.fold(c <> ct, H.Sha3H{st, len}) == H.Sha3H{fold3(ct, 24n, H.step3(st, c, 24n)), _} : H.Hasher} 1039 state3(ct, H.step3(st, c, 24n), Nat.add(len, List.length(&2, U32, c))) 1040 1041 law finish3_eta: 1042 for +st: H.Sha3State 1043 for +len: Nat 1044 for +q: Nat 1045 {H.finish3(st, len, q) == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, buf3(st), C3.suffix(len))), q, st3(st))) : List<&2, U32>} 1046 1047 def finish3_eta(st, len, q): 1048 match st: 1049 case H.St3{s, buf}: 1050 {==} 1051 1052 # digest(update_all(new, chunks)) is the padded block loop over concat(chunks). 1053 law incremental3: 1054 for +cs: List<&2, List<&2, U32>> 1055 {H.digest(H.update_all(H.new_sha3_256(), cs)) == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C3.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 24n, C3.zero())) : List<&2, U32>} 1056 1057 def incremental3(cs): 1058 +m = List.concat(&2, U32, cs) 1059 +qs = fold3(cs, 24n, H.St3{C3.zero(), Nil{}}) 1060 %Equal.sym(H.Hasher, H.fold(cs, H.Sha3H{H.St3{C3.zero(), Nil{}}, 0n}), H.Sha3H{qs, List.length(&2, U32, m)}, 1061 state3(cs, H.St3{C3.zero(), Nil{}}, 0n)) : 1062 {H.digest(_) == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C3.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 24n, C3.zero())) : List<&2, U32>} 1063 %Equal.sym(List<&2, U32>, H.finish3(qs, List.length(&2, U32, m), 24n), C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, buf3(qs), C3.suffix(List.length(&2, U32, m)))), 24n, st3(qs))), 1064 finish3_eta(qs, List.length(&2, U32, m), 24n)) : 1065 {_ == C3.digest_bytes(C3.absorb(C3.lanes(List.append(&2, U32, List.concat(&2, U32, cs), C3.suffix(List.length(&2, U32, List.concat(&2, U32, cs))))), 24n, C3.zero())) : List<&2, U32>} 1066 Equal.cong(TK.State, List<&2, U32>, t => C3.digest_bytes(t), 1067 C3.absorb(C3.lanes(List.append(&2, U32, buf3(qs), C3.suffix(List.length(&2, U32, m)))), 24n, st3(qs)), C3.absorb(C3.lanes(List.append(&2, U32, m, C3.suffix(List.length(&2, U32, m)))), 24n, C3.zero()), 1068 Equal.sym(TK.State, C3.absorb(C3.lanes(List.append(&2, U32, m, C3.suffix(List.length(&2, U32, m)))), 24n, C3.zero()), C3.absorb(C3.lanes(List.append(&2, U32, buf3(qs), C3.suffix(List.length(&2, U32, m)))), 24n, st3(qs)), fold3_inv(cs, 24n, H.St3{C3.zero(), Nil{}}, C3.suffix(List.length(&2, U32, m)))))