Loading...
Searching...
No Matches
MarchingCubesTable.hpp
Go to the documentation of this file.
1// This code is based on Jet framework.
2// Copyright (c) 2018 Doyub Kim
3// CubbyFlow is voxel-based fluid simulation engine for computer games.
4// Copyright (c) 2020 CubbyFlow Team
5// Core Part: Chris Ohk, Junwoo Hwang, Jihong Sin, Seungwoo Yoo
6// AI Part: Dongheon Cho, Minseo Kim
7// We are making my contributions/submissions to this project solely in our
8// personal capacity and are not conveying any rights to any intellectual
9// property of any third parties.
10
11// Marching Cubes Example Program
12// by Cory Bloyd (corysama@yahoo.com)
13//
14// A simple, portable and complete implementation of the Marching Cubes
15// and Marching Tetrahedrons algorithms in a single source file.
16// There are many ways that this code could be made faster, but the
17// intent is for the code to be easy to understand.
18//
19// For a description of the algorithm go to
20// http://astronomy.swin.edu.au/pbourke/modelling/polygonise/
21//
22// This code is public domain.
23
24#ifndef CUBBYFLOW_MARCHING_CUBES_TABLE_HPP
25#define CUBBYFLOW_MARCHING_CUBES_TABLE_HPP
26
27namespace CubbyFlow
28{
29// vertexOffset lists the positions, relative to vertex0, of each of the 8
30// vertices of a cube
31static const float vertexOffset[8][3] = {
32 { 0.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 0.0f }, { 1.0f, 0.0f, 1.0f },
33 { 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f }, { 1.0f, 1.0f, 0.0f },
34 { 1.0f, 1.0f, 1.0f }, { 0.0f, 1.0f, 1.0f }
35};
36
37// edgeConnection lists the index of the endpoint vertices for each of the 12
38// edges of the cube
39static const int edgeConnection[12][2] = { { 0, 1 }, { 1, 2 }, { 3, 2 },
40 { 0, 3 }, { 4, 5 }, { 5, 6 },
41 { 7, 6 }, { 4, 7 }, { 0, 4 },
42 { 1, 5 }, { 2, 6 }, { 3, 7 } };
43
44// edgeDirection lists the direction vector (vertex[i+1]-vertex[i])/2 for each
45// edge in the cube
46static const float edgeDirection[12][3] = {
47 { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f },
48 { 0.0f, 0.0f, 1.0f }, { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f },
49 { 1.0f, 0.0f, 0.0f }, { 0.0f, 0.0f, 1.0f }, { 0.0f, 1.0f, 0.0f },
50 { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }, { 0.0f, 1.0f, 0.0f }
51};
52
53// edgeCenter lists for calculating counterclockwise order
54static const float edgeCenter[12][3] = {
55 { 0.5f, 0.0f, 0.0f }, { 1.0f, 0.0f, 0.5f }, { 0.5f, 0.0f, 1.0f },
56 { 0.0f, 0.0f, 0.5f }, { 0.5f, 1.0f, 0.0f }, { 1.0f, 1.0f, 0.5f },
57 { 0.5f, 1.0f, 1.0f }, { 0.0f, 1.0f, 0.5f }, { 0.0f, 0.5f, 0.0f },
58 { 1.0f, 0.5f, 0.0f }, { 1.0f, 0.5f, 1.0f }, { 0.0f, 0.5f, 1.0f }
59};
60
61static const int threeNeighborNodes[8][3] = { { 1, 3, 4 }, { 0, 2, 5 },
62 { 1, 3, 6 }, { 0, 2, 7 },
63 { 0, 5, 7 }, { 1, 4, 6 },
64 { 2, 5, 7 }, { 3, 4, 6 } };
65
66static const int threeNeighborEdges[8][3] = { { 0, 3, 8 }, { 0, 1, 9 },
67 { 1, 2, 10 }, { 2, 3, 11 },
68 { 4, 7, 8 }, { 4, 5, 9 },
69 { 5, 6, 10 }, { 6, 7, 11 } };
70
71// For any edge, if one vertex is inside of the surface and the other is outside
72// of the surface then the edge intersects the surface
73// For each of the 8 vertices of the cube can be two possible states : either
74// inside or outside of the surface
75// For any cube there are 2^8=256 possible sets of vertex states
76// This table lists the edges intersected by the surface for all 256 possible
77// vertex states
78// There are 12 edges. For each entry in the table, if edge #n is intersected,
79// then bit #n is set to 1
80static const int cubeEdgeFlags[256] = {
81 0x000, 0x109, 0x203, 0x30a, 0x406, 0x50f, 0x605, 0x70c, 0x80c, 0x905, 0xa0f,
82 0xb06, 0xc0a, 0xd03, 0xe09, 0xf00, 0x190, 0x099, 0x393, 0x29a, 0x596, 0x49f,
83 0x795, 0x69c, 0x99c, 0x895, 0xb9f, 0xa96, 0xd9a, 0xc93, 0xf99, 0xe90, 0x230,
84 0x339, 0x033, 0x13a, 0x636, 0x73f, 0x435, 0x53c, 0xa3c, 0xb35, 0x83f, 0x936,
85 0xe3a, 0xf33, 0xc39, 0xd30, 0x3a0, 0x2a9, 0x1a3, 0x0aa, 0x7a6, 0x6af, 0x5a5,
86 0x4ac, 0xbac, 0xaa5, 0x9af, 0x8a6, 0xfaa, 0xea3, 0xda9, 0xca0, 0x460, 0x569,
87 0x663, 0x76a, 0x066, 0x16f, 0x265, 0x36c, 0xc6c, 0xd65, 0xe6f, 0xf66, 0x86a,
88 0x963, 0xa69, 0xb60, 0x5f0, 0x4f9, 0x7f3, 0x6fa, 0x1f6, 0x0ff, 0x3f5, 0x2fc,
89 0xdfc, 0xcf5, 0xfff, 0xef6, 0x9fa, 0x8f3, 0xbf9, 0xaf0, 0x650, 0x759, 0x453,
90 0x55a, 0x256, 0x35f, 0x055, 0x15c, 0xe5c, 0xf55, 0xc5f, 0xd56, 0xa5a, 0xb53,
91 0x859, 0x950, 0x7c0, 0x6c9, 0x5c3, 0x4ca, 0x3c6, 0x2cf, 0x1c5, 0x0cc, 0xfcc,
92 0xec5, 0xdcf, 0xcc6, 0xbca, 0xac3, 0x9c9, 0x8c0, 0x8c0, 0x9c9, 0xac3, 0xbca,
93 0xcc6, 0xdcf, 0xec5, 0xfcc, 0x0cc, 0x1c5, 0x2cf, 0x3c6, 0x4ca, 0x5c3, 0x6c9,
94 0x7c0, 0x950, 0x859, 0xb53, 0xa5a, 0xd56, 0xc5f, 0xf55, 0xe5c, 0x15c, 0x055,
95 0x35f, 0x256, 0x55a, 0x453, 0x759, 0x650, 0xaf0, 0xbf9, 0x8f3, 0x9fa, 0xef6,
96 0xfff, 0xcf5, 0xdfc, 0x2fc, 0x3f5, 0x0ff, 0x1f6, 0x6fa, 0x7f3, 0x4f9, 0x5f0,
97 0xb60, 0xa69, 0x963, 0x86a, 0xf66, 0xe6f, 0xd65, 0xc6c, 0x36c, 0x265, 0x16f,
98 0x066, 0x76a, 0x663, 0x569, 0x460, 0xca0, 0xda9, 0xea3, 0xfaa, 0x8a6, 0x9af,
99 0xaa5, 0xbac, 0x4ac, 0x5a5, 0x6af, 0x7a6, 0x0aa, 0x1a3, 0x2a9, 0x3a0, 0xd30,
100 0xc39, 0xf33, 0xe3a, 0x936, 0x83f, 0xb35, 0xa3c, 0x53c, 0x435, 0x73f, 0x636,
101 0x13a, 0x033, 0x339, 0x230, 0xe90, 0xf99, 0xc93, 0xd9a, 0xa96, 0xb9f, 0x895,
102 0x99c, 0x69c, 0x795, 0x49f, 0x596, 0x29a, 0x393, 0x099, 0x190, 0xf00, 0xe09,
103 0xd03, 0xc0a, 0xb06, 0xa0f, 0x905, 0x80c, 0x70c, 0x605, 0x50f, 0x406, 0x30a,
104 0x203, 0x109, 0x000
105};
106
107// For each of the possible vertex states listed in CubeEdgeFlags
108// there is a specific triangulation of the edge intersection points.
109// TriangleConnectionTable lists all of them in the form of 0-5 edge triples
110// with the list terminated by the invalid value -1.
111// For example: TriangleConnectionTable[3] list the 2 triangles formed
112// when corner[0] and corner[1] are inside of the surface, but the rest of the
113// cube is not.
114// three vertices of a triangle = counter-clock-wise order
115static const int triangleConnectionTable3D[256][16] = {
116 // EdgeFlag, NodeFlag special case for MDC
117 {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x000, 0000 0000 X
118 { 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x109, 0000 0001 O { 0, 8, 8, 3, 3, 0
119 { 0, 1, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x203, 0000 0010 O { 0, 1, 1, 9, 9, 0
120 { 1, 8, 3, 9, 8, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x30a, 0000 0011 O { 1, 9, 9, 8, 8, 3, 3, 1
121 { 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x406, 0000 0100 O { 1, 2, 2, 10, 10, 1
122 { 0, 8, 3, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x50f, 0000 0101 X
123 { 9, 2, 10, 0, 2, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x605, 0000 0110 O { 0, 2, 2, 10, 10, 9, 9, 0
124 { 2, 8, 3, 2, 10, 8, 10, 9, 8, -1, -1, -1, -1, -1, -1, -1 }, // 0x70c, 0000 0111 O { 3, 2, 2, 10, 10, 9, 9, 8, 8, 3
125 { 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x80c, 0000 1000 O { 3, 11, 11, 2, 2, 3
126 { 0, 11, 2, 8, 11, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x905, 0000 1001 O { 2, 0, 0, 8, 8, 11, 11, 2
127 { 1, 9, 0, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xa0f, 0000 1010 X
128 { 1, 11, 2, 1, 9, 11, 9, 8, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0xb06, 0000 1011 O { 2, 1, 1, 9, 9, 8, 8, 11, 11, 2
129 { 3, 10, 1, 11, 10, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xc0a, 0000 1100 O { 1, 3, 3, 11, 11, 10, 10, 1
130 { 0, 10, 1, 0, 8, 10, 8, 11, 10, -1, -1, -1, -1, -1, -1, -1 }, // 0xd03, 0000 1101 O { 1, 0, 0, 8, 8, 11, 11, 10, 10, 1
131 { 3, 9, 0, 3, 11, 9, 11, 10, 9, -1, -1, -1, -1, -1, -1, -1 }, // 0xe09, 0000 1110 O { 0, 3, 3, 11, 11, 10, 10, 9, 9, 0
132 { 9, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xf00, 0000 1111 O { 9, 8, 8, 11, 11, 10, 10, 9
133
134 { 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x190, 0001 0000 O { 4, 7, 7, 8, 8, 4
135 { 4, 3, 0, 7, 3, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x099, 0001 0001 O { 3, 0, 0, 4, 4, 7, 7, 3
136 { 0, 1, 9, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x393, 0001 0010 X
137 { 4, 1, 9, 4, 7, 1, 7, 3, 1, -1, -1, -1, -1, -1, -1, -1 }, // 0x29a, 0001 0011 O { 3, 1, 1, 9, 9, 4, 4, 7, 7, 3
138 { 1, 2, 10, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x596, 0001 0100 X
139 { 3, 4, 7, 3, 0, 4, 1, 2, 10, -1, -1, -1, -1, -1, -1, -1 }, // 0x49f, 0001 0101 X
140 { 9, 2, 10, 9, 0, 2, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0x795, 0001 0110 X
141 { 2, 10, 9, 2, 9, 7, 2, 7, 3, 7, 9, 4, -1, -1, -1, -1 }, // 0x69c, 0001 0111 O { 3, 2, 2, 10, 10, 9, 9, 4, 4, 7, 7, 3
142 { 8, 4, 7, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x99c, 0001 1000 X
143 { 11, 4, 7, 11, 2, 4, 2, 0, 4, -1, -1, -1, -1, -1, -1, -1 }, // 0x895, 0001 1001 O { 2, 0, 0, 4, 4, 7, 7, 11, 11, 2
144 { 9, 0, 1, 8, 4, 7, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0xb9f, 0001 1010 X
145 { 4, 7, 11, 9, 4, 11, 9, 11, 2, 9, 2, 1, -1, -1, -1, -1 }, // 0xa96, 0001 1011 O { 2, 1, 1, 9, 9, 4, 4, 7, 7, 11, 11, 2
146 { 3, 10, 1, 3, 11, 10, 7, 8, 4, -1, -1, -1, -1, -1, -1, -1 }, // 0xd9a, 0001 1100 X
147 { 1, 11, 10, 1, 4, 11, 1, 0, 4, 7, 11, 4, -1, -1, -1, -1 }, // 0xc93, 0001 1101 O { 1, 0, 0, 4, 4, 7, 7, 11, 11, 10, 10, 1
148 { 4, 7, 8, 9, 0, 11, 9, 11, 10, 11, 0, 3, -1, -1, -1, -1 }, // 0xf99, 0001 1110 X
149 { 4, 7, 11, 4, 11, 9, 9, 11, 10, -1, -1, -1, -1, -1, -1, -1 }, // 0xe90, 0001 1111 O { 4, 7, 7, 11, 11, 10, 10, 9, 9, 4,
150
151 { 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x230, 0010 0000 O { 9, 5, 5, 4, 4, 9
152 { 9, 5, 4, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x339, 0010 0001 X
153 { 0, 5, 4, 1, 5, 0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x033, 0010 0010 O { 0, 1, 1, 5, 5, 4, 4, 0
154 { 8, 5, 4, 8, 3, 5, 3, 1, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0x13a, 0010 0011 O { 3, 1, 1, 5, 5, 4, 4, 8, 8, 3
155 { 1, 2, 10, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x636, 0010 0100 X
156 { 3, 0, 8, 1, 2, 10, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0x73f, 0010 0101 X
157 { 5, 2, 10, 5, 4, 2, 4, 0, 2, -1, -1, -1, -1, -1, -1, -1 }, // 0x435, 0010 0110 O { 0, 2, 2, 10, 10, 5, 5, 4, 4, 0
158 { 2, 10, 5, 3, 2, 5, 3, 5, 4, 3, 4, 8, -1, -1, -1, -1 }, // 0x53c, 0010 0111 O { 3, 2, 2, 10, 10, 5, 5, 4, 4, 8, 8, 3
159 { 9, 5, 4, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xa3c, 0010 1000 X
160 { 0, 11, 2, 0, 8, 11, 4, 9, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0xb35, 0010 1001 X
161 { 0, 5, 4, 0, 1, 5, 2, 3, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0x83f, 0010 1010 X
162 { 2, 1, 5, 2, 5, 8, 2, 8, 11, 4, 8, 5, -1, -1, -1, -1 }, // 0x936, 0010 1011 O { 2, 1, 1, 5, 5, 4, 4, 8, 8, 11, 11, 2
163 { 10, 3, 11, 10, 1, 3, 9, 5, 4, -1, -1, -1, -1, -1, -1, -1 }, // 0xe3a, 0010 1100 X
164 { 4, 9, 5, 0, 8, 1, 8, 10, 1, 8, 11, 10, -1, -1, -1, -1 }, // 0xf33, 0010 1101 X
165 { 5, 4, 0, 5, 0, 11, 5, 11, 10, 11, 0, 3, -1, -1, -1, -1 }, // 0xc39, 0010 1110 O { 0, 3, 3, 11, 11, 10, 10, 5, 5, 4, 4, 0
166 { 5, 4, 8, 5, 8, 10, 10, 8, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0xd30, 0010 1111 O { 5, 4, 4, 8, 8, 11, 11, 10, 10, 5
167
168 { 9, 7, 8, 5, 7, 9, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x3a0, 0011 0000 O { 5, 7, 7, 8, 8, 9, 9, 5
169 { 9, 3, 0, 9, 5, 3, 5, 7, 3, -1, -1, -1, -1, -1, -1, -1 }, // 0x2a9, 0011 0001 O { 3, 0, 0, 9, 9, 5, 5, 7, 7, 3
170 { 0, 7, 8, 0, 1, 7, 1, 5, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0x1a3, 0011 0010 O { 0, 1, 1, 5, 5, 7, 7, 8, 8, 0
171 { 1, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x0aa, 0011 0011 O { 3, 1, 1, 5, 5, 7, 7, 3
172 { 9, 7, 8, 9, 5, 7, 10, 1, 2, -1, -1, -1, -1, -1, -1, -1 }, // 0x7a6, 0011 0100 X
173 { 10, 1, 2, 9, 5, 0, 5, 3, 0, 5, 7, 3, -1, -1, -1, -1 }, // 0x6af, 0011 0101 X
174 { 8, 0, 2, 8, 2, 5, 8, 5, 7, 10, 5, 2, -1, -1, -1, -1 }, // 0x5a5, 0011 0110 O { 0, 2, 2, 10, 10, 5, 5, 7, 7, 8, 8, 0
175 { 2, 10, 5, 2, 5, 3, 3, 5, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0x4ac, 0011 0111 O { 3, 2, 2, 10, 10, 5, 5, 7, 7, 3
176 { 7, 9, 5, 7, 8, 9, 3, 11, 2, -1, -1, -1, -1, -1, -1, -1 }, // 0xbac, 0011 1000 X
177 { 9, 5, 7, 9, 7, 2, 9, 2, 0, 2, 7, 11, -1, -1, -1, -1 }, // 0xaa5, 0011 1001 O { 2, 0, 0, 9, 9, 5, 5, 7, 7, 11, 11, 2
178 { 2, 3, 11, 0, 1, 8, 1, 7, 8, 1, 5, 7, -1, -1, -1, -1 }, // 0x9af, 0011 1010 X
179 { 11, 2, 1, 11, 1, 7, 7, 1, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0x8a6, 0011 1011 O { 2, 1, 1, 5, 5, 7, 7, 11, 11, 2
180 { 9, 5, 8, 8, 5, 7, 10, 1, 3, 10, 3, 11, -1, -1, -1, -1 }, // 0xfaa, 0011 1100 X
181 { 5, 7, 0, 5, 0, 9, 7, 11, 0, 1, 0, 10, 11, 10, 0, -1 }, // 0xea3, 0011 1101 X
182 { 11, 10, 0, 11, 0, 3, 10, 5, 0, 8, 0, 7, 5, 7, 0, -1 }, // 0xda9, 0011 1110 X
183 { 11, 10, 5, 7, 11, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xca0, 0011 1111 O { 5, 7, 7, 11, 11, 10, 10, 5
184
185 { 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x460, 0100 0000 O { 10, 6, 6, 5, 5, 10
186 { 0, 8, 3, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x569, 0100 0001 X
187 { 9, 0, 1, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x663, 0100 0010 X
188 { 1, 8, 3, 1, 9, 8, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0x76a, 0100 0011 X
189 { 1, 6, 5, 2, 6, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x066, 0100 0100 O { 1, 2, 2, 6, 6, 5, 5, 1
190 { 1, 6, 5, 1, 2, 6, 3, 0, 8, -1, -1, -1, -1, -1, -1, -1 }, // 0x16f, 0100 0101 X
191 { 9, 6, 5, 9, 0, 6, 0, 2, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0x265, 0100 0110 O { 0, 2, 2, 6, 6, 5, 5, 9, 9, 0
192 { 5, 9, 8, 5, 8, 2, 5, 2, 6, 3, 2, 8, -1, -1, -1, -1 }, // 0x36c, 0100 0111 O { 3, 2, 2, 6, 6, 5, 5, 9, 9, 8, 8, 3
193 { 2, 3, 11, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xc6c, 0100 1000 X
194 { 11, 0, 8, 11, 2, 0, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0xd65, 0100 1001 X
195 { 0, 1, 9, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0xe6f, 0100 1010 X
196 { 5, 10, 6, 1, 9, 2, 9, 11, 2, 9, 8, 11, -1, -1, -1, -1 }, // 0xf66, 0100 1011 X
197 { 6, 3, 11, 6, 5, 3, 5, 1, 3, -1, -1, -1, -1, -1, -1, -1 }, // 0x86a, 0100 1100 O { 5, 1, 1, 3, 3, 11, 11, 6, 6, 5
198 { 0, 8, 11, 0, 11, 5, 0, 5, 1, 5, 11, 6, -1, -1, -1, -1 }, // 0x963, 0100 1101 O { 1, 0, 0, 8, 8, 11, 11, 6, 6, 5, 5, 1
199 { 3, 11, 6, 0, 3, 6, 0, 6, 5, 0, 5, 9, -1, -1, -1, -1 }, // 0xa69, 0100 1110 O { 0, 3, 3, 11, 11, 6, 6, 5, 5, 9, 9, 0
200 { 6, 5, 9, 6, 9, 11, 11, 9, 8, -1, -1, -1, -1, -1, -1, -1 }, // 0xb60, 0100 1111 O { 6, 5, 5, 9, 9, 8, 8, 11, 11, 6
201
202 { 5, 10, 6, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x5f0, 0101 0000 X
203 { 4, 3, 0, 4, 7, 3, 6, 5, 10, -1, -1, -1, -1, -1, -1, -1 }, // 0x4f9, 0101 0001 X
204 { 1, 9, 0, 5, 10, 6, 8, 4, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0x7f3, 0101 0010 X
205 { 10, 6, 5, 1, 9, 7, 1, 7, 3, 7, 9, 4, -1, -1, -1, -1 }, // 0x6fa, 0101 0011 X
206 { 6, 1, 2, 6, 5, 1, 4, 7, 8, -1, -1, -1, -1, -1, -1, -1 }, // 0x1f6, 0101 0100 X
207 { 1, 2, 5, 5, 2, 6, 3, 0, 4, 3, 4, 7, -1, -1, -1, -1 }, // 0x0ff, 0101 0101 X
208 { 8, 4, 7, 9, 0, 5, 0, 6, 5, 0, 2, 6, -1, -1, -1, -1 }, // 0x3f5, 0101 0110 X
209 { 7, 3, 9, 7, 9, 4, 3, 2, 9, 5, 9, 6, 2, 6, 9, -1 }, // 0xxfc, 0101 0111 X
210 { 3, 11, 2, 7, 8, 4, 10, 6, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0xdfc, 0101 1000 X
211 { 5, 10, 6, 4, 7, 2, 4, 2, 0, 2, 7, 11, -1, -1, -1, -1 }, // 0xcf5, 0101 1001 X
212 { 0, 1, 9, 4, 7, 8, 2, 3, 11, 5, 10, 6, -1, -1, -1, -1 }, // 0xfff, 0101 1010 X
213 { 9, 2, 1, 9, 11, 2, 9, 4, 11, 7, 11, 4, 5, 10, 6, -1 }, // 0xef6, 0101 1011 X
214 { 8, 4, 7, 3, 11, 5, 3, 5, 1, 5, 11, 6, -1, -1, -1, -1 }, // 0x9fa, 0101 1100 X
215 { 5, 1, 11, 5, 11, 6, 1, 0, 11, 7, 11, 4, 0, 4, 11, -1 }, // 0x8f3, 0101 1101 X
216 { 0, 5, 9, 0, 6, 5, 0, 3, 6, 11, 6, 3, 8, 4, 7, -1 }, // 0xbf9, 0101 1110 X
217 { 6, 5, 9, 6, 9, 11, 4, 7, 9, 7, 11, 9, -1, -1, -1, -1 }, // 0xaf0, 0101 1111 O { 4, 7, 7, 11, 11, 6, 6, 5, 5, 9, 9, 4
218
219 { 10, 4, 9, 6, 4, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x650, 0110 0000 O { 6, 4, 4, 9, 9, 10, 10, 6
220 { 4, 10, 6, 4, 9, 10, 0, 8, 3, -1, -1, -1, -1, -1, -1, -1 }, // 0x759, 0110 0001 X
221 { 10, 0, 1, 10, 6, 0, 6, 4, 0, -1, -1, -1, -1, -1, -1, -1 }, // 0x453, 0110 0010 O { 0, 1, 1, 10, 10, 6, 6, 4, 4, 0
222 { 8, 3, 1, 8, 1, 6, 8, 6, 4, 6, 1, 10, -1, -1, -1, -1 }, // 0x55a, 0110 0011 O { 3, 1, 1, 10, 10, 6, 6, 4, 4, 8, 8, 3
223 { 1, 4, 9, 1, 2, 4, 2, 6, 4, -1, -1, -1, -1, -1, -1, -1 }, // 0x256, 0110 0100 O { 1, 2, 2, 6, 6, 4, 4, 9, 9, 1
224 { 3, 0, 8, 1, 2, 9, 2, 4, 9, 2, 6, 4, -1, -1, -1, -1 }, // 0x35f, 0110 0101 X
225 { 0, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x055, 0110 0110 O { 0, 2, 2, 6, 6, 4, 4, 0
226 { 8, 3, 2, 8, 2, 4, 4, 2, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0x15c, 0110 0111 O { 3, 2, 2, 6, 6, 4, 4, 8, 8, 3
227 { 10, 4, 9, 10, 6, 4, 11, 2, 3, -1, -1, -1, -1, -1, -1, -1 }, // 0xe5c, 0110 1000 X
228 { 0, 8, 2, 2, 8, 11, 4, 9, 10, 4, 10, 6, -1, -1, -1, -1 }, // 0xf55, 0110 1001 X
229 { 3, 11, 2, 0, 1, 6, 0, 6, 4, 6, 1, 10, -1, -1, -1, -1 }, // 0xc5f, 0110 1010 X
230 { 6 , 4, 1, 6, 1, 10, 4, 8, 1, 2, 1, 11, 8, 11, 1, -1 }, // 0xd56, 0110 1011 O { 2, 1, 1, 10, 10, 6, 6, 4, 4, 8, 8, 11, 11, 2
231 { 9, 6, 4, 9, 3, 6, 9, 1, 3, 11, 6, 3, -1, -1, -1, -1 }, // 0xa5a, 0110 1100 O { 1, 3, 3, 11, 11, 6, 6, 4, 4, 9, 9, 1
232 { 8, 11, 1, 8, 1, 0, 11, 6, 1, 9, 1, 4, 6, 4, 1, -1 }, // 0xb53, 0110 1101 X
233 { 3, 11, 6, 3, 6, 0, 0, 6, 4, -1, -1, -1, -1, -1, -1, -1 }, // 0x859, 0110 1110 O { 0, 3, 3, 11, 11, 6, 6, 4, 4, 0
234 { 6, 4, 8, 11, 6, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x950, 0110 1111 O { 6, 4, 4, 8, 8, 11, 11, 6
235
236 { 7, 10, 6, 7, 8, 10, 8, 9, 10, -1, -1, -1, -1, -1, -1, -1 }, // 0x7c0, 0111 0000 O { 6, 7, 7, 8, 8, 9, 9, 10, 10, 6
237 { 0, 7, 3, 0, 10, 7, 0, 9, 10, 6, 7, 10, -1, -1, -1, -1 }, // 0x6c9, 0111 0001 O { 0, 10, 10, 6, 6, 7, 7, 3, 3, 0
238 { 10, 6, 7, 1, 10, 7, 1, 7, 8, 1, 8, 0, -1, -1, -1, -1 }, // 0x5c3, 0111 0010 O { 0, 1, 1, 10, 10, 6, 6, 7, 7, 8, 8, 0
239 { 10, 6, 7, 10, 7, 1, 1, 7, 3, -1, -1, -1, -1, -1, -1, -1 }, // 0x4ca, 0111 0011 O { 3, 1, 1, 10, 10, 6, 6, 7, 7, 3
240 { 1, 2, 6, 1, 6, 8, 1, 8, 9, 8, 6, 7, -1, -1, -1, -1 }, // 0x3c6, 0111 0100 O { 1, 2, 2, 6, 6, 7, 7, 8, 8, 9, 9, 1
241 { 2, 6, 9, 2, 9, 1, 6, 7, 9, 0, 9, 3, 7, 3, 9, -1 }, // 0x2cf, 0111 0101 X
242 { 7, 8, 0, 7, 0, 6, 6, 0, 2, -1, -1, -1, -1, -1, -1, -1 }, // 0x1c5, 0111 0110 O { 0, 2, 2, 6, 6, 7, 7, 8, 8, 0
243 { 7, 3, 2, 6, 7, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x0cc, 0111 0111 O { 3, 2, 2, 6, 6, 7, 7, 3
244 { 2, 3, 11, 10, 6, 8, 10, 8, 9, 8, 6, 7, -1, -1, -1, -1 }, // 0xfcc, 0111 1000 X
245 { 2, 0, 7, 2, 7, 11, 0, 9, 7, 6, 7, 10, 9, 10, 7, -1 }, // 0xec5, 0111 1001 X
246 { 1, 8, 0, 1, 7, 8, 1, 10, 7, 6, 7, 10, 2, 3, 11, -1 }, // 0xdcf, 0111 1010 X
247 { 11, 2, 1, 11, 1, 7, 10, 6, 1, 6, 7, 1, -1, -1, -1, -1 }, // 0xcc6, 0111 1011 O { 2, 1, 1, 10, 10, 6, 6, 7, 7, 11, 11, 2
248 { 8, 9, 6, 8, 6, 7, 9, 1, 6, 11, 6, 3, 1, 3 , 6, -1 }, // 0xbca, 0111 1100 X
249 { 0, 9, 1, 11, 6, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xac3, 0111 1101 X
250 { 7, 8, 0, 7, 0, 6, 3, 11, 0, 11, 6, 0, -1, -1, -1, -1 }, // 0x9c9, 0111 1110 O { 0, 3, 3, 11, 11, 6, 6, 7, 7, 8, 8, 0
251 { 7, 11, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x8c0, 0111 1111 O { 6, 7, 7, 11, 11, 6
252
253 { 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x8c0, 1000 0000 O { 7, 6, 6, 11, 11, 7
254 { 3, 0, 8, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x9c9, 1000 0001 X
255 { 0, 1, 9, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xac3, 1000 0010 X
256 { 8, 1, 9, 8, 3, 1, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0xbca, 1000 0011 X
257 { 10, 1, 2, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xcc6, 1000 0100 X
258 { 1, 2, 10, 3, 0, 8, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0xdcf, 1000 0101 X
259 { 2, 9, 0, 2, 10, 9, 6, 11, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0xec5, 1000 0110 X
260 { 6, 11, 7, 2, 10, 3, 10, 8, 3, 10, 9, 8, -1, -1, -1, -1 }, // 0xfcc, 1000 0111 X
261 { 7, 2, 3, 6, 2, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x0cc, 1000 1000 O { 2, 3, 3, 7, 7, 6, 6, 2
262 { 7, 0, 8, 7, 6, 0, 6, 2, 0, -1, -1, -1, -1, -1, -1, -1 }, // 0x1c5, 1000 1001 O { 2, 0, 0, 8, 8, 7, 7, 6, 6, 2
263 { 2, 7, 6, 2, 3, 7, 0, 1, 9, -1, -1, -1, -1, -1, -1, -1 }, // 0x2cf, 1000 1010 X
264 { 1, 6, 2, 1, 8, 6, 1, 9, 8, 8, 7, 6, -1, -1, -1, -1 }, // 0x3c6, 1000 1011 O { 2, 1, 1, 9, 9, 8, 8, 7, 7, 6, 6, 2
265 { 10, 7, 6, 10, 1, 7, 1, 3, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0x4ca, 1000 1100 O { 1, 3, 3, 7, 7, 6, 6, 10, 10, 1
266 { 10, 7, 6, 1, 7, 10, 1, 8, 7, 1, 0, 8, -1, -1, -1, -1 }, // 0x5c3, 1000 1101 O { 1, 0, 0, 8, 8, 7, 7, 6, 6, 10, 10, 1
267 { 0, 3, 7, 0, 7, 10, 0, 10, 9, 6, 10, 7, -1, -1, -1, -1 }, // 0x6c9, 1000 1110 O { 0, 3, 3, 7, 7, 6, 6, 10, 10, 9, 9, 0
268 { 7, 6, 10, 7, 10, 8, 8, 10, 9, -1, -1, -1, -1, -1, -1, -1 }, // 0x7c0, 1000 1111 O { 7, 6, 6, 10, 10, 9, 9, 8, 8, 7
269
270 { 6, 8, 4, 11, 8, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x950, 1001 0000 O { 4, 6, 6, 11, 11, 8, 8, 4
271 { 3, 6, 11, 3, 0, 6, 0, 4, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0x859, 1001 0001 O { 3, 0, 0, 4, 4, 6, 6, 11, 11, 3
272 { 8, 6, 11, 8, 4, 6, 9, 0, 1, -1, -1, -1, -1, -1, -1, -1 }, // 0xb53, 1001 0010 X
273 { 9, 4, 6, 9, 6, 3, 9, 3, 1, 11, 3, 6, -1, -1, -1, -1 }, // 0xa5a, 1001 0011 O { 1, 9, 9, 4, 4, 6, 6, 11, 11, 3, 3, 1
274 { 6, 8, 4, 6, 11, 8, 2, 10, 1, -1, -1, -1, -1, -1, -1, -1 }, // 0xd56, 1001 0100 X
275 { 1, 2, 10, 3, 0, 11, 0, 6, 11, 0, 4, 6, -1, -1, -1, -1 }, // 0xc5f, 1001 0101 X
276 { 4, 11, 8, 4, 6, 11, 0, 2, 9, 2, 10, 9, -1, -1, -1, -1 }, // 0xf55, 1001 0110 X
277 { 10, 9, 3, 10, 3, 2, 9, 4, 3, 11, 3, 6, 4, 6, 3, -1 }, // 0xe5c, 1001 0111 X
278 { 8, 2, 3, 8, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1 }, // 0x15c, 1001 1000 O { 2, 3, 3, 8, 8, 4, 4, 6, 6, 2
279 { 0, 4, 2, 4, 6, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x055, 1001 1001 O { 2, 0, 0, 4, 4, 6, 6, 2
280 { 1, 9, 0, 2, 3, 4, 2, 4, 6, 4, 3, 8, -1, -1, -1, -1 }, // 0x35f, 1001 1010 X
281 { 1, 9, 4, 1, 4, 2, 2, 4, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0x256, 1001 1011 O { 2, 1, 1, 9, 9, 4, 4, 6, 6, 2
282 { 8, 1, 3, 8, 6, 1, 8, 4, 6, 6, 10, 1, -1, -1, -1, -1 }, // 0x55a, 1001 1100 O { 1, 3, 3, 8, 8, 4, 4, 6, 6, 10, 10, 1
283 { 10, 1, 0, 10, 0, 6, 6, 0, 4, -1, -1, -1, -1, -1, -1, -1 }, // 0x453, 1001 1101 O { 1, 0, 0, 4, 4, 6, 6, 10, 10, 1
284 { 4, 6, 3, 4, 3, 8, 6, 10, 3, 0, 3, 9, 10, 9, 3, -1 }, // 0x759, 1001 1110 X
285 { 10, 9, 4, 6, 10, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x650, 1001 1111 O { 4, 6, 6, 10, 10, 9, 9, 4
286
287 { 4, 9, 5, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xaf0, 1010 0000 X
288 { 0, 8, 3, 4, 9, 5, 11, 7, 6, -1, -1, -1, -1, -1, -1, -1 }, // 0xbf9, 1010 0001 X
289 { 5, 0, 1, 5, 4, 0, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0x8f3, 1010 0010 X
290 { 11, 7, 6, 8, 3, 4, 3, 5, 4, 3, 1, 5, -1, -1, -1, -1 }, // 0x9fa, 1010 0011 X
291 { 9, 5, 4, 10, 1, 2, 7, 6, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0xef6, 1010 0100 X
292 { 6, 11, 7, 1, 2, 10, 0, 8, 3, 4, 9, 5, -1, -1, -1, -1 }, // 0xfff, 1010 0101 X
293 { 7, 6, 11, 5, 4, 10, 4, 2, 10, 4, 0, 2, -1, -1, -1, -1 }, // 0xcf5, 1010 0110 X
294 { 3, 4, 8, 3, 5, 4, 3, 2, 5, 10, 5, 2, 11, 7, 6, -1 }, // 0xdfc, 1010 0111 X
295 { 7, 2, 3, 7, 6, 2, 5, 4, 9, -1, -1, -1, -1, -1, -1, -1 }, // 0x2fc, 1010 1000 X
296 { 9, 5, 4, 0, 8, 6, 0, 6, 2, 6, 8, 7, -1, -1, -1, -1 }, // 0x3f5, 1010 1001 X
297 { 3, 6, 2, 3, 7, 6, 1, 5, 0, 5, 4, 0, -1, -1, -1, -1 }, // 0x0ff, 1010 1010 X
298 { 6, 2, 8, 6, 8, 7, 2, 1, 8, 4, 8, 5, 1, 5, 8, -1 }, // 0x1f6, 1010 1011 X
299 { 9, 5, 4, 10, 1, 6, 1, 7, 6, 1, 3, 7, -1, -1, -1, -1 }, // 0x6fa, 1010 1100 X
300 { 1, 6, 10, 1, 7, 6, 1, 0, 7, 8, 7, 0, 9, 5, 4, -1 }, // 0x7f3, 1010 1101 X
301 { 4, 0, 10, 4, 10, 5, 0, 3, 10, 6, 10, 7, 3, 7, 10, -1 }, // 0x4f9, 1010 1110 X
302 { 7, 6, 10, 7, 10, 8, 5, 4, 10, 4, 8, 10, -1, -1, -1, -1 }, // 0x5f0, 1010 1111 O { 5, 4, 4, 8, 8, 7, 7, 6, 6, 10, 10, 5
303
304 { 6, 9, 5, 6, 11, 9, 11, 8, 9, -1, -1, -1, -1, -1, -1, -1 }, // 0xb60, 1011 0000 O { 5, 6, 6, 11, 11, 8, 8, 9, 9, 5
305 { 3, 6, 11, 0, 6, 3, 0, 5, 6, 0, 9, 5, -1, -1, -1, -1 }, // 0xa69, 1011 0001 O { 5, 6, 6, 11, 11, 3, 3, 0, 0, 9, 9, 5
306 { 0, 11, 8, 0, 5, 11, 0, 1, 5, 5, 6, 11, -1, -1, -1, -1 }, // 0x963, 1011 0010 O { 0, 1, 1, 5, 5, 6, 6, 11, 11, 8, 8, 0
307 { 6, 11, 3, 6, 3, 5, 5, 3 , 1, -1, -1, -1, -1, -1, -1, -1 }, // 0x86a, 1011 0011 O { 3, 1, 1, 5, 5, 6, 6, 11, 11, 3
308 { 1, 2, 10, 9, 5, 11, 9, 11, 8, 11, 5, 6, -1, -1, -1, -1 }, // 0xf66, 1011 0100 X
309 { 0, 11, 3, 0, 6, 11, 0, 9, 6, 5, 6, 9, 1, 2, 10, -1 }, // 0xe6f, 1011 0101 X
310 { 11, 8, 5, 11, 5, 6, 8, 0, 5, 10, 5, 2, 0, 2, 5, -1 }, // 0xd65, 1011 0110 X
311 { 3, 6, 11, 6, 3, 5, 2, 10, 3, 10, 5, 3, -1, -1, -1, -1 }, //{ 2, 11, 3, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xc6c, 1011 0111 X
312 { 5, 8, 9, 5, 2, 8, 5, 6, 2, 3, 8, 2, -1, -1, -1, -1 }, // 0x36c, 1011 1000 O { 2, 3, 3, 8, 8, 9, 9, 5, 5, 6, 6, 2
313 { 9, 5, 6, 9, 6, 0, 0, 6, 2, -1, -1, -1, -1, -1, -1, -1 }, // 0x265, 1011 1001 O { 2, 0, 0, 9, 9, 5, 5, 6, 6, 2
314 { 1, 5, 8, 1, 8, 0, 5, 6, 8, 3, 8, 2, 6, 2, 8, -1 }, // 0x16f, 1011 1010 X
315 { 1, 5, 6, 2, 1, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x066, 1011 1011 O { 2, 1, 1, 5, 5, 6, 6, 2
316 { 1, 3, 6, 1, 6, 10, 3, 8, 6, 5, 6, 9, 8, 9, 6, -1 }, // 0x76a, 1011 1100 X
317 { 10, 1, 0, 10, 0, 6, 9, 5, 0, 5, 6, 0 , -1, -1, -1, -1 }, // 0x663, 1011 1101 O { 1, 0, 0, 9, 9, 5, 5, 6, 6, 10, 10, 1
318 { 0, 3, 8, 5, 6, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x569, 1011 1110 X
319 { 10, 5, 6, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x460, 1011 1111 O { 10, 5, 5, 6, 6, 10
320
321 { 11, 5, 10, 7, 5, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xca0, 1100 0000 O { 7, 5, 5, 10, 10, 11, 11, 7
322 { 11, 5, 10, 11, 7, 5, 8, 3, 0, -1, -1, -1, -1, -1, -1, -1 }, // 0xda9, 1100 0001 X
323 { 5, 11, 7, 5, 10, 11, 1, 9, 0, -1, -1, -1, -1, -1, -1, -1 }, // 0xea3, 1100 0010 X
324 { 10, 7, 5, 10, 11, 7, 9, 8, 1, 8, 3, 1, -1, -1, -1, -1 }, // 0xfaa, 1100 0011 X
325 { 11, 1, 2, 11, 7, 1, 7, 5, 1, -1, -1, -1, -1, -1, -1, -1 }, // 0x8a6, 1100 0100 O { 1, 2, 2, 11, 11, 7, 7, 5, 5, 1
326 { 0, 8, 3, 1, 2, 7, 1, 7, 5, 7, 2, 11, -1, -1, -1, -1 }, // 0x9af, 1100 0101 X
327 { 9, 7, 5, 9, 2, 7, 9, 0, 2, 2, 11, 7, -1, -1, -1, -1 }, // 0xaa5, 1100 0110 O { 0, 2, 2, 11, 11, 7, 7, 5, 5, 9, 9, 0
328 { 7, 5, 2, 7, 2, 11, 5, 9, 2, 3, 2, 8, 9, 8, 2, -1 }, // 0xbac, 1100 0111 X
329 { 2, 5, 10, 2, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0x4ac, 1100 1000 O { 2, 3, 3, 7, 7, 5, 5, 10, 10, 2
330 { 8, 2, 0, 8, 5, 2, 8, 7, 5, 10, 2, 5, -1, -1, -1, -1 }, // 0x5a5, 1100 1001 O { 2, 0, 0, 8, 8, 7, 7, 5, 5, 10, 10, 2
331 { 9, 0, 1, 5, 10, 3, 5, 3, 7, 3, 10, 2, -1, -1, -1, -1 }, // 0x6af, 1100 1010 X
332 { 9, 8, 2, 9, 2, 1, 8, 7, 2, 10, 2, 5, 7, 5, 2, -1 }, // 0x7a6, 1100 1011 X
333 { 1, 3, 5, 3, 7, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x0aa, 1100 1100 O { 1, 3, 3, 7, 7, 5, 5, 1
334 { 0, 8, 7, 0, 7, 1, 1, 7, 5, -1, -1, -1, -1, -1, -1, -1 }, // 0x1a3, 1100 1101 O { 1, 0, 0, 8, 8, 7, 7, 5, 5, 1
335 { 9, 0, 3, 9, 3, 5, 5, 3, 7, -1, -1, -1, -1, -1, -1, -1 }, // 0x2a9, 1100 1110 O { 0, 3, 3, 7, 7, 5, 5, 9, 9, 0
336 { 9, 8, 7, 5, 9, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x3a0, 1100 1111 O { 7, 5, 5, 9, 9, 8, 8, 7
337
338 { 5, 8, 4, 5, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1 }, // 0xd30, 1101 0000 O { 4, 5, 5, 10, 10, 11, 11, 8, 8, 4
339 { 5, 0, 4, 5, 11, 0, 5, 10, 11, 11, 3, 0, -1, -1, -1, -1 }, // 0xc39, 1101 0001 O { 3, 0, 0, 4, 4, 5, 5, 10, 10, 11, 11, 3,
340 { 0, 1, 9, 8, 4, 10, 8, 10, 11, 10, 4, 5, -1, -1, -1, -1 }, // 0xf33, 1101 0010 X
341 { 10, 11, 4, 10, 4, 5, 11, 3, 4, 9, 4, 1, 3, 1, 4, -1 }, // 0xe3a, 1101 0011 X
342 { 2, 5, 1, 2, 8, 5, 2, 11, 8, 4, 5, 8, -1, -1, -1, -1 }, // 0x936, 1101 0100 O { 1, 2, 2, 11, 11, 8, 8, 4, 4, 5, 5, 1
343 { 0, 4, 11, 0, 11, 3, 4, 5, 11, 2, 11, 1, 5, 1, 11, -1 }, // 0x83f, 1101 0101 X
344 { 0, 2, 5, 0, 5, 9, 2, 11, 5, 4, 5, 8, 11, 8, 5, -1 }, // 0xb35, 1101 0110 X
345 { 9, 4, 5, 2, 11, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xa3c, 1101 0111 X
346 { 2, 5, 10, 3, 5, 2, 3, 4, 5, 3, 8, 4, -1, -1, -1, -1 }, // 0x53c, 1101 1000 O { 2, 3, 3, 8, 8, 4, 4, 5, 5, 10, 10, 2
347 { 5, 10, 2, 5, 2, 4, 4, 2, 0, -1, -1, -1, -1, -1, -1, -1 }, // 0x435, 1101 1001 O { 2, 0, 0, 4, 4, 5, 5, 10, 10, 2
348 { 3, 10, 2, 3, 5, 10, 3, 8, 5 , 4, 5, 8, 0, 1, 9, -1 }, // 0x73f, 1101 1010 X
349 { 5, 10, 2, 5, 2 , 4, 1, 9, 2, 9, 4, 2, -1, -1, -1, -1 }, // 0x636, 1101 1011 O { 1, 9, 9, 4, 4, 5, 5, 10, 10, 2, 2, 1
350 { 8, 4, 5, 8, 5, 3, 3, 5, 1, -1, -1, -1, -1, -1, -1, -1 }, // 0x13a, 1101 1100 O { 1, 3, 3, 8, 8, 4, 4, 5, 5, 1
351 { 0, 4, 5, 1, 0, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x033, 1101 1101 O { 1, 0, 0, 4, 4, 5, 5, 1
352 { 8, 4, 5, 8, 5, 3, 9, 0, 5, 0, 3 , 5, -1, -1, -1, -1 }, // 0x339, 1101 1110 O { 0, 3, 3, 8, 8, 4, 4, 5, 5, 9, 9, 0
353 { 9, 4, 5, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x230, 1101 1111 O { 9, 4, 4, 5, 5, 9
354
355 { 4, 11, 7, 4, 9, 11, 9, 10, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0xe90, 1110 0000 O { 7, 4, 4, 9, 9, 10, 10, 11, 11, 7
356 { 0, 8, 3, 4, 9, 7, 9, 11, 7, 9, 10, 11, -1, -1, -1, -1 }, // 0xf99, 1110 0001 X
357 { 1, 10, 11, 1, 11, 4, 1, 4, 0, 7, 4, 11, -1, -1, -1, -1 }, // 0xc93, 1110 0010 O { 0, 1, 1, 10, 10, 11, 11, 7, 7, 4, 4, 0
358 { 3, 1, 4, 3, 4, 8, 1, 10, 4, 7, 4, 11, 10, 11, 4, -1 }, // 0xd9a, 1110 0011 X
359 { 4, 11, 7, 9, 11, 4, 9, 2, 11, 9, 1, 2, -1, -1, -1, -1 }, // 0xa96, 1110 0100 O { 1, 2, 2, 11, 11, 7, 7, 4, 4, 9, 9, 1
360 { 9, 7, 4, 9, 11, 7, 9, 1, 11, 2, 11, 1, 0, 8, 3, -1 }, // 0xb9f, 1110 0101 X
361 { 11, 7, 4, 11, 4, 2, 2, 4, 0, -1, -1, -1, -1, -1, -1, -1 }, // 0x895, 1110 0110 O { 0, 2, 2, 11, 11, 7, 7, 4, 4, 0
362 { 11, 7, 4, 11, 4, 2, 8, 3, 4, 3, 2, 4, -1, -1, -1, -1 }, // 0x99c, 1110 0111 O { 3, 2, 2, 11, 11, 7, 7, 4, 4, 8, 8, 3
363 { 2, 9, 10, 2, 7, 9, 2, 3, 7, 7, 4, 9, -1, -1, -1, -1 }, // 0x69c, 1110 1000 O { 2, 3, 3, 7, 7, 4, 4, 9, 9, 10, 10, 2
364 { 9, 10, 7, 9, 7, 4, 10, 2, 7, 8, 7, 0, 2, 0, 7, -1 }, // 0x795, 1110 1001 X
365 { 3, 7, 10, 3, 10, 2, 7, 4, 10, 1, 10, 0, 4, 0, 10, -1 }, // 0x49f, 1110 1010 X
366 { 1, 10, 2, 8, 7, 4, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x596, 1110 1011 X
367 { 4, 9, 1 , 4, 1, 7, 7, 1, 3, -1, -1, -1, -1, -1, -1, -1 }, // 0x29a, 1110 1100 O { 1, 3, 3, 7, 7, 4, 4, 9, 9, 1
368 { 4, 9, 1, 4, 1, 7, 0, 8, 1, 8, 7, 1, -1, -1, -1, -1 }, // 0x393, 1110 1101 O { 1, 0, 0, 8, 8, 7, 7, 4, 4, 9, 9, 1
369 { 4, 0, 3, 7, 4, 3, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x099, 1110 1110 O { 0, 3, 3, 7, 7, 4, 4, 0
370 { 4, 8, 7, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x190, 1110 1111 O { 4, 8, 8, 7, 7, 4
371
372 { 9, 10, 8, 10, 11, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xf00, 1111 0000 O { 8, 9, 9, 10, 10, 11, 11, 8
373 { 3, 0, 9, 3, 9, 11, 11, 9, 10, -1, -1, -1, -1, -1, -1, -1 }, // 0xe09, 1111 0001 O { 3, 0, 0, 9, 9, 10, 10, 11, 11, 3
374 { 0, 1, 10, 0, 10, 8, 8, 10, 11, -1, -1, -1, -1, -1, -1, -1 }, // 0xd03, 1111 0010 O { 0, 1, 1, 10, 10, 11, 11, 8, 8, 0
375 { 3, 1, 10, 11, 3, 10, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0xc0a, 1111 0011 O { 3, 1, 1, 10, 10, 11, 11, 3
376 { 1, 2, 11, 1, 11, 9, 9, 11, 8, -1, -1, -1, -1, -1, -1, -1 }, // 0xb06, 1111 0100 O { 1, 2, 2, 11, 11, 8, 8, 9, 9, 1
377 { 3, 0, 9, 3, 9, 11, 1, 2, 9, 2, 11, 9, -1, -1, -1, -1 }, // 0xa0f, 1111 0101 O { 0, 9, 9, 1, 1, 2, 2, 11, 11, 3, 3, 0
378 { 0, 2, 11, 8, 0, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x905, 1111 0110 O { 0, 2, 2, 11, 11, 8, 8, 0
379 { 3, 2, 11, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x80c, 1111 0111 O { 3, 2, 2, 11, 11, 3
380 { 2, 3, 8, 2, 8, 10, 10, 8, 9, -1, -1, -1, -1, -1, -1, -1 }, // 0x70c, 1111 1000 O { 2, 3, 3, 8, 8, 9, 9, 10, 10, 2
381 { 9, 10, 2, 0, 9, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x605, 1111 1001 O { 2, 0, 0, 9, 9, 10, 10, 2
382 { 2, 3, 8, 2, 8, 10, 0, 1, 8, 1, 10, 8, -1, -1, -1, -1 }, // 0x50f, 1111 1010 O { 0, 1, 1, 10, 10, 2, 2, 3, 3, 8, 8, 0
383 { 1, 10, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x406, 1111 1011 O { 1, 10, 10, 2, 2, 1
384 { 1, 3, 8, 9, 1, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x30a, 1111 1100 O { 1, 3, 3, 8, 8, 9, 9, 1
385 { 0, 9, 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x203, 1111 1101 O { 0, 9, 9, 1, 1, 0
386 { 0, 3, 8, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 }, // 0x109, 1111 1110 O { 0, 3, 3, 8, 8, 0
387 {-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1 } // 0x000, 1111 1111 X
388};
389} // namespace CubbyFlow
390
391#endif
Definition pybind11Utils.hpp:21