diff --git a/test/cube.step b/test/cube.step
new file mode 100644
index 0000000000000000000000000000000000000000..b2a28ac32d14fa11e1600da99788c6b6a0d9ce50
--- /dev/null
+++ b/test/cube.step
@@ -0,0 +1,456 @@
+ISO-10303-21;
+HEADER;
+FILE_DESCRIPTION(('FreeCAD Model'),'2;1');
+FILE_NAME('/home/andreas/tmp/cube.step','2016-10-01T13:03:13',('Author')
+  ,(''),'Open CASCADE STEP processor 6.8','FreeCAD','Unknown');
+FILE_SCHEMA(('AUTOMOTIVE_DESIGN_CC2 { 1 2 10303 214 -1 1 5 4 }'));
+ENDSEC;
+DATA;
+#1 = APPLICATION_PROTOCOL_DEFINITION('committee draft',
+  'automotive_design',1997,#2);
+#2 = APPLICATION_CONTEXT(
+  'core data for automotive mechanical design processes');
+#3 = SHAPE_DEFINITION_REPRESENTATION(#4,#10);
+#4 = PRODUCT_DEFINITION_SHAPE('','',#5);
+#5 = PRODUCT_DEFINITION('design','',#6,#9);
+#6 = PRODUCT_DEFINITION_FORMATION('','',#7);
+#7 = PRODUCT('ASSEMBLY','ASSEMBLY','',(#8));
+#8 = MECHANICAL_CONTEXT('',#2,'mechanical');
+#9 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#10 = SHAPE_REPRESENTATION('',(#11,#15),#19);
+#11 = AXIS2_PLACEMENT_3D('',#12,#13,#14);
+#12 = CARTESIAN_POINT('',(0.,0.,0.));
+#13 = DIRECTION('',(0.,0.,1.));
+#14 = DIRECTION('',(1.,0.,-0.));
+#15 = AXIS2_PLACEMENT_3D('',#16,#17,#18);
+#16 = CARTESIAN_POINT('',(0.,0.,0.));
+#17 = DIRECTION('',(0.,0.,1.));
+#18 = DIRECTION('',(1.,0.,0.));
+#19 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#23)) GLOBAL_UNIT_ASSIGNED_CONTEXT(
+(#20,#21,#22)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#20 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#21 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#22 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#23 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#20,
+  'distance_accuracy_value','confusion accuracy');
+#24 = PRODUCT_TYPE('part',$,(#7));
+#25 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#11,#26),#356);
+#26 = MANIFOLD_SOLID_BREP('',#27);
+#27 = CLOSED_SHELL('',(#28,#148,#248,#295,#342,#349));
+#28 = ADVANCED_FACE('',(#29),#43,.F.);
+#29 = FACE_BOUND('',#30,.F.);
+#30 = EDGE_LOOP('',(#31,#66,#94,#122));
+#31 = ORIENTED_EDGE('',*,*,#32,.F.);
+#32 = EDGE_CURVE('',#33,#35,#37,.T.);
+#33 = VERTEX_POINT('',#34);
+#34 = CARTESIAN_POINT('',(0.,0.,0.));
+#35 = VERTEX_POINT('',#36);
+#36 = CARTESIAN_POINT('',(0.,0.,10.));
+#37 = SURFACE_CURVE('',#38,(#42,#54),.PCURVE_S1.);
+#38 = LINE('',#39,#40);
+#39 = CARTESIAN_POINT('',(0.,0.,0.));
+#40 = VECTOR('',#41,1.);
+#41 = DIRECTION('',(0.,0.,1.));
+#42 = PCURVE('',#43,#48);
+#43 = PLANE('',#44);
+#44 = AXIS2_PLACEMENT_3D('',#45,#46,#47);
+#45 = CARTESIAN_POINT('',(0.,0.,0.));
+#46 = DIRECTION('',(1.,0.,-0.));
+#47 = DIRECTION('',(0.,0.,1.));
+#48 = DEFINITIONAL_REPRESENTATION('',(#49),#53);
+#49 = LINE('',#50,#51);
+#50 = CARTESIAN_POINT('',(0.,0.));
+#51 = VECTOR('',#52,1.);
+#52 = DIRECTION('',(1.,0.));
+#53 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#54 = PCURVE('',#55,#60);
+#55 = PLANE('',#56);
+#56 = AXIS2_PLACEMENT_3D('',#57,#58,#59);
+#57 = CARTESIAN_POINT('',(0.,0.,0.));
+#58 = DIRECTION('',(-0.,1.,0.));
+#59 = DIRECTION('',(0.,0.,1.));
+#60 = DEFINITIONAL_REPRESENTATION('',(#61),#65);
+#61 = LINE('',#62,#63);
+#62 = CARTESIAN_POINT('',(0.,0.));
+#63 = VECTOR('',#64,1.);
+#64 = DIRECTION('',(1.,0.));
+#65 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#66 = ORIENTED_EDGE('',*,*,#67,.T.);
+#67 = EDGE_CURVE('',#33,#68,#70,.T.);
+#68 = VERTEX_POINT('',#69);
+#69 = CARTESIAN_POINT('',(0.,10.,0.));
+#70 = SURFACE_CURVE('',#71,(#75,#82),.PCURVE_S1.);
+#71 = LINE('',#72,#73);
+#72 = CARTESIAN_POINT('',(0.,0.,0.));
+#73 = VECTOR('',#74,1.);
+#74 = DIRECTION('',(-0.,1.,0.));
+#75 = PCURVE('',#43,#76);
+#76 = DEFINITIONAL_REPRESENTATION('',(#77),#81);
+#77 = LINE('',#78,#79);
+#78 = CARTESIAN_POINT('',(0.,0.));
+#79 = VECTOR('',#80,1.);
+#80 = DIRECTION('',(0.,-1.));
+#81 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#82 = PCURVE('',#83,#88);
+#83 = PLANE('',#84);
+#84 = AXIS2_PLACEMENT_3D('',#85,#86,#87);
+#85 = CARTESIAN_POINT('',(0.,0.,0.));
+#86 = DIRECTION('',(0.,0.,1.));
+#87 = DIRECTION('',(1.,0.,-0.));
+#88 = DEFINITIONAL_REPRESENTATION('',(#89),#93);
+#89 = LINE('',#90,#91);
+#90 = CARTESIAN_POINT('',(0.,0.));
+#91 = VECTOR('',#92,1.);
+#92 = DIRECTION('',(0.,1.));
+#93 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#94 = ORIENTED_EDGE('',*,*,#95,.T.);
+#95 = EDGE_CURVE('',#68,#96,#98,.T.);
+#96 = VERTEX_POINT('',#97);
+#97 = CARTESIAN_POINT('',(0.,10.,10.));
+#98 = SURFACE_CURVE('',#99,(#103,#110),.PCURVE_S1.);
+#99 = LINE('',#100,#101);
+#100 = CARTESIAN_POINT('',(0.,10.,0.));
+#101 = VECTOR('',#102,1.);
+#102 = DIRECTION('',(0.,0.,1.));
+#103 = PCURVE('',#43,#104);
+#104 = DEFINITIONAL_REPRESENTATION('',(#105),#109);
+#105 = LINE('',#106,#107);
+#106 = CARTESIAN_POINT('',(0.,-10.));
+#107 = VECTOR('',#108,1.);
+#108 = DIRECTION('',(1.,0.));
+#109 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#110 = PCURVE('',#111,#116);
+#111 = PLANE('',#112);
+#112 = AXIS2_PLACEMENT_3D('',#113,#114,#115);
+#113 = CARTESIAN_POINT('',(0.,10.,0.));
+#114 = DIRECTION('',(-0.,1.,0.));
+#115 = DIRECTION('',(0.,0.,1.));
+#116 = DEFINITIONAL_REPRESENTATION('',(#117),#121);
+#117 = LINE('',#118,#119);
+#118 = CARTESIAN_POINT('',(0.,0.));
+#119 = VECTOR('',#120,1.);
+#120 = DIRECTION('',(1.,0.));
+#121 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#122 = ORIENTED_EDGE('',*,*,#123,.F.);
+#123 = EDGE_CURVE('',#35,#96,#124,.T.);
+#124 = SURFACE_CURVE('',#125,(#129,#136),.PCURVE_S1.);
+#125 = LINE('',#126,#127);
+#126 = CARTESIAN_POINT('',(0.,0.,10.));
+#127 = VECTOR('',#128,1.);
+#128 = DIRECTION('',(-0.,1.,0.));
+#129 = PCURVE('',#43,#130);
+#130 = DEFINITIONAL_REPRESENTATION('',(#131),#135);
+#131 = LINE('',#132,#133);
+#132 = CARTESIAN_POINT('',(10.,0.));
+#133 = VECTOR('',#134,1.);
+#134 = DIRECTION('',(0.,-1.));
+#135 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#136 = PCURVE('',#137,#142);
+#137 = PLANE('',#138);
+#138 = AXIS2_PLACEMENT_3D('',#139,#140,#141);
+#139 = CARTESIAN_POINT('',(0.,0.,10.));
+#140 = DIRECTION('',(0.,0.,1.));
+#141 = DIRECTION('',(1.,0.,-0.));
+#142 = DEFINITIONAL_REPRESENTATION('',(#143),#147);
+#143 = LINE('',#144,#145);
+#144 = CARTESIAN_POINT('',(0.,0.));
+#145 = VECTOR('',#146,1.);
+#146 = DIRECTION('',(0.,1.));
+#147 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#148 = ADVANCED_FACE('',(#149),#163,.T.);
+#149 = FACE_BOUND('',#150,.T.);
+#150 = EDGE_LOOP('',(#151,#181,#204,#227));
+#151 = ORIENTED_EDGE('',*,*,#152,.F.);
+#152 = EDGE_CURVE('',#153,#155,#157,.T.);
+#153 = VERTEX_POINT('',#154);
+#154 = CARTESIAN_POINT('',(10.,0.,0.));
+#155 = VERTEX_POINT('',#156);
+#156 = CARTESIAN_POINT('',(10.,0.,10.));
+#157 = SURFACE_CURVE('',#158,(#162,#174),.PCURVE_S1.);
+#158 = LINE('',#159,#160);
+#159 = CARTESIAN_POINT('',(10.,0.,0.));
+#160 = VECTOR('',#161,1.);
+#161 = DIRECTION('',(0.,0.,1.));
+#162 = PCURVE('',#163,#168);
+#163 = PLANE('',#164);
+#164 = AXIS2_PLACEMENT_3D('',#165,#166,#167);
+#165 = CARTESIAN_POINT('',(10.,0.,0.));
+#166 = DIRECTION('',(1.,0.,-0.));
+#167 = DIRECTION('',(0.,0.,1.));
+#168 = DEFINITIONAL_REPRESENTATION('',(#169),#173);
+#169 = LINE('',#170,#171);
+#170 = CARTESIAN_POINT('',(0.,0.));
+#171 = VECTOR('',#172,1.);
+#172 = DIRECTION('',(1.,0.));
+#173 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#174 = PCURVE('',#55,#175);
+#175 = DEFINITIONAL_REPRESENTATION('',(#176),#180);
+#176 = LINE('',#177,#178);
+#177 = CARTESIAN_POINT('',(0.,10.));
+#178 = VECTOR('',#179,1.);
+#179 = DIRECTION('',(1.,0.));
+#180 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#181 = ORIENTED_EDGE('',*,*,#182,.T.);
+#182 = EDGE_CURVE('',#153,#183,#185,.T.);
+#183 = VERTEX_POINT('',#184);
+#184 = CARTESIAN_POINT('',(10.,10.,0.));
+#185 = SURFACE_CURVE('',#186,(#190,#197),.PCURVE_S1.);
+#186 = LINE('',#187,#188);
+#187 = CARTESIAN_POINT('',(10.,0.,0.));
+#188 = VECTOR('',#189,1.);
+#189 = DIRECTION('',(-0.,1.,0.));
+#190 = PCURVE('',#163,#191);
+#191 = DEFINITIONAL_REPRESENTATION('',(#192),#196);
+#192 = LINE('',#193,#194);
+#193 = CARTESIAN_POINT('',(0.,0.));
+#194 = VECTOR('',#195,1.);
+#195 = DIRECTION('',(0.,-1.));
+#196 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#197 = PCURVE('',#83,#198);
+#198 = DEFINITIONAL_REPRESENTATION('',(#199),#203);
+#199 = LINE('',#200,#201);
+#200 = CARTESIAN_POINT('',(10.,0.));
+#201 = VECTOR('',#202,1.);
+#202 = DIRECTION('',(0.,1.));
+#203 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#204 = ORIENTED_EDGE('',*,*,#205,.T.);
+#205 = EDGE_CURVE('',#183,#206,#208,.T.);
+#206 = VERTEX_POINT('',#207);
+#207 = CARTESIAN_POINT('',(10.,10.,10.));
+#208 = SURFACE_CURVE('',#209,(#213,#220),.PCURVE_S1.);
+#209 = LINE('',#210,#211);
+#210 = CARTESIAN_POINT('',(10.,10.,0.));
+#211 = VECTOR('',#212,1.);
+#212 = DIRECTION('',(0.,0.,1.));
+#213 = PCURVE('',#163,#214);
+#214 = DEFINITIONAL_REPRESENTATION('',(#215),#219);
+#215 = LINE('',#216,#217);
+#216 = CARTESIAN_POINT('',(0.,-10.));
+#217 = VECTOR('',#218,1.);
+#218 = DIRECTION('',(1.,0.));
+#219 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#220 = PCURVE('',#111,#221);
+#221 = DEFINITIONAL_REPRESENTATION('',(#222),#226);
+#222 = LINE('',#223,#224);
+#223 = CARTESIAN_POINT('',(0.,10.));
+#224 = VECTOR('',#225,1.);
+#225 = DIRECTION('',(1.,0.));
+#226 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#227 = ORIENTED_EDGE('',*,*,#228,.F.);
+#228 = EDGE_CURVE('',#155,#206,#229,.T.);
+#229 = SURFACE_CURVE('',#230,(#234,#241),.PCURVE_S1.);
+#230 = LINE('',#231,#232);
+#231 = CARTESIAN_POINT('',(10.,0.,10.));
+#232 = VECTOR('',#233,1.);
+#233 = DIRECTION('',(0.,1.,0.));
+#234 = PCURVE('',#163,#235);
+#235 = DEFINITIONAL_REPRESENTATION('',(#236),#240);
+#236 = LINE('',#237,#238);
+#237 = CARTESIAN_POINT('',(10.,0.));
+#238 = VECTOR('',#239,1.);
+#239 = DIRECTION('',(0.,-1.));
+#240 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#241 = PCURVE('',#137,#242);
+#242 = DEFINITIONAL_REPRESENTATION('',(#243),#247);
+#243 = LINE('',#244,#245);
+#244 = CARTESIAN_POINT('',(10.,0.));
+#245 = VECTOR('',#246,1.);
+#246 = DIRECTION('',(0.,1.));
+#247 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#248 = ADVANCED_FACE('',(#249),#55,.F.);
+#249 = FACE_BOUND('',#250,.F.);
+#250 = EDGE_LOOP('',(#251,#272,#273,#294));
+#251 = ORIENTED_EDGE('',*,*,#252,.F.);
+#252 = EDGE_CURVE('',#33,#153,#253,.T.);
+#253 = SURFACE_CURVE('',#254,(#258,#265),.PCURVE_S1.);
+#254 = LINE('',#255,#256);
+#255 = CARTESIAN_POINT('',(0.,0.,0.));
+#256 = VECTOR('',#257,1.);
+#257 = DIRECTION('',(1.,0.,-0.));
+#258 = PCURVE('',#55,#259);
+#259 = DEFINITIONAL_REPRESENTATION('',(#260),#264);
+#260 = LINE('',#261,#262);
+#261 = CARTESIAN_POINT('',(0.,0.));
+#262 = VECTOR('',#263,1.);
+#263 = DIRECTION('',(0.,1.));
+#264 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#265 = PCURVE('',#83,#266);
+#266 = DEFINITIONAL_REPRESENTATION('',(#267),#271);
+#267 = LINE('',#268,#269);
+#268 = CARTESIAN_POINT('',(0.,0.));
+#269 = VECTOR('',#270,1.);
+#270 = DIRECTION('',(1.,0.));
+#271 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#272 = ORIENTED_EDGE('',*,*,#32,.T.);
+#273 = ORIENTED_EDGE('',*,*,#274,.T.);
+#274 = EDGE_CURVE('',#35,#155,#275,.T.);
+#275 = SURFACE_CURVE('',#276,(#280,#287),.PCURVE_S1.);
+#276 = LINE('',#277,#278);
+#277 = CARTESIAN_POINT('',(0.,0.,10.));
+#278 = VECTOR('',#279,1.);
+#279 = DIRECTION('',(1.,0.,-0.));
+#280 = PCURVE('',#55,#281);
+#281 = DEFINITIONAL_REPRESENTATION('',(#282),#286);
+#282 = LINE('',#283,#284);
+#283 = CARTESIAN_POINT('',(10.,0.));
+#284 = VECTOR('',#285,1.);
+#285 = DIRECTION('',(0.,1.));
+#286 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#287 = PCURVE('',#137,#288);
+#288 = DEFINITIONAL_REPRESENTATION('',(#289),#293);
+#289 = LINE('',#290,#291);
+#290 = CARTESIAN_POINT('',(0.,0.));
+#291 = VECTOR('',#292,1.);
+#292 = DIRECTION('',(1.,0.));
+#293 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#294 = ORIENTED_EDGE('',*,*,#152,.F.);
+#295 = ADVANCED_FACE('',(#296),#111,.T.);
+#296 = FACE_BOUND('',#297,.T.);
+#297 = EDGE_LOOP('',(#298,#319,#320,#341));
+#298 = ORIENTED_EDGE('',*,*,#299,.F.);
+#299 = EDGE_CURVE('',#68,#183,#300,.T.);
+#300 = SURFACE_CURVE('',#301,(#305,#312),.PCURVE_S1.);
+#301 = LINE('',#302,#303);
+#302 = CARTESIAN_POINT('',(0.,10.,0.));
+#303 = VECTOR('',#304,1.);
+#304 = DIRECTION('',(1.,0.,-0.));
+#305 = PCURVE('',#111,#306);
+#306 = DEFINITIONAL_REPRESENTATION('',(#307),#311);
+#307 = LINE('',#308,#309);
+#308 = CARTESIAN_POINT('',(0.,0.));
+#309 = VECTOR('',#310,1.);
+#310 = DIRECTION('',(0.,1.));
+#311 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#312 = PCURVE('',#83,#313);
+#313 = DEFINITIONAL_REPRESENTATION('',(#314),#318);
+#314 = LINE('',#315,#316);
+#315 = CARTESIAN_POINT('',(0.,10.));
+#316 = VECTOR('',#317,1.);
+#317 = DIRECTION('',(1.,0.));
+#318 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#319 = ORIENTED_EDGE('',*,*,#95,.T.);
+#320 = ORIENTED_EDGE('',*,*,#321,.T.);
+#321 = EDGE_CURVE('',#96,#206,#322,.T.);
+#322 = SURFACE_CURVE('',#323,(#327,#334),.PCURVE_S1.);
+#323 = LINE('',#324,#325);
+#324 = CARTESIAN_POINT('',(0.,10.,10.));
+#325 = VECTOR('',#326,1.);
+#326 = DIRECTION('',(1.,0.,-0.));
+#327 = PCURVE('',#111,#328);
+#328 = DEFINITIONAL_REPRESENTATION('',(#329),#333);
+#329 = LINE('',#330,#331);
+#330 = CARTESIAN_POINT('',(10.,0.));
+#331 = VECTOR('',#332,1.);
+#332 = DIRECTION('',(0.,1.));
+#333 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#334 = PCURVE('',#137,#335);
+#335 = DEFINITIONAL_REPRESENTATION('',(#336),#340);
+#336 = LINE('',#337,#338);
+#337 = CARTESIAN_POINT('',(0.,10.));
+#338 = VECTOR('',#339,1.);
+#339 = DIRECTION('',(1.,0.));
+#340 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) 
+PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE',''
+  ) );
+#341 = ORIENTED_EDGE('',*,*,#205,.F.);
+#342 = ADVANCED_FACE('',(#343),#83,.F.);
+#343 = FACE_BOUND('',#344,.F.);
+#344 = EDGE_LOOP('',(#345,#346,#347,#348));
+#345 = ORIENTED_EDGE('',*,*,#67,.F.);
+#346 = ORIENTED_EDGE('',*,*,#252,.T.);
+#347 = ORIENTED_EDGE('',*,*,#182,.T.);
+#348 = ORIENTED_EDGE('',*,*,#299,.F.);
+#349 = ADVANCED_FACE('',(#350),#137,.T.);
+#350 = FACE_BOUND('',#351,.T.);
+#351 = EDGE_LOOP('',(#352,#353,#354,#355));
+#352 = ORIENTED_EDGE('',*,*,#123,.F.);
+#353 = ORIENTED_EDGE('',*,*,#274,.T.);
+#354 = ORIENTED_EDGE('',*,*,#228,.T.);
+#355 = ORIENTED_EDGE('',*,*,#321,.F.);
+#356 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) 
+GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#360)) GLOBAL_UNIT_ASSIGNED_CONTEXT
+((#357,#358,#359)) REPRESENTATION_CONTEXT('Context #1',
+  '3D Context with UNIT and UNCERTAINTY') );
+#357 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) );
+#358 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) );
+#359 = ( NAMED_UNIT(*) SI_UNIT($,.STERADIAN.) SOLID_ANGLE_UNIT() );
+#360 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-07),#357,
+  'distance_accuracy_value','confusion accuracy');
+#361 = SHAPE_DEFINITION_REPRESENTATION(#362,#25);
+#362 = PRODUCT_DEFINITION_SHAPE('','',#363);
+#363 = PRODUCT_DEFINITION('design','',#364,#367);
+#364 = PRODUCT_DEFINITION_FORMATION('','',#365);
+#365 = PRODUCT('Würfel','Würfel','',(#366));
+#366 = MECHANICAL_CONTEXT('',#2,'mechanical');
+#367 = PRODUCT_DEFINITION_CONTEXT('part definition',#2,'design');
+#368 = CONTEXT_DEPENDENT_SHAPE_REPRESENTATION(#369,#371);
+#369 = ( REPRESENTATION_RELATIONSHIP('','',#25,#10) 
+REPRESENTATION_RELATIONSHIP_WITH_TRANSFORMATION(#370) 
+SHAPE_REPRESENTATION_RELATIONSHIP() );
+#370 = ITEM_DEFINED_TRANSFORMATION('','',#11,#15);
+#371 = PRODUCT_DEFINITION_SHAPE('Placement','Placement of an item',#372
+  );
+#372 = NEXT_ASSEMBLY_USAGE_OCCURRENCE('1','=>[0:1:1:2]','',#5,#363,$);
+#373 = PRODUCT_TYPE('part',$,(#365));
+#374 = MECHANICAL_DESIGN_GEOMETRIC_PRESENTATION_REPRESENTATION('',(#375)
+  ,#356);
+#375 = STYLED_ITEM('color',(#376),#26);
+#376 = PRESENTATION_STYLE_ASSIGNMENT((#377,#383));
+#377 = SURFACE_STYLE_USAGE(.BOTH.,#378);
+#378 = SURFACE_SIDE_STYLE('',(#379));
+#379 = SURFACE_STYLE_FILL_AREA(#380);
+#380 = FILL_AREA_STYLE('',(#381));
+#381 = FILL_AREA_STYLE_COLOUR('',#382);
+#382 = COLOUR_RGB('',0.800000011921,0.800000011921,0.800000011921);
+#383 = CURVE_STYLE('',#384,POSITIVE_LENGTH_MEASURE(0.1),#382);
+#384 = DRAUGHTING_PRE_DEFINED_CURVE_FONT('continuous');
+ENDSEC;
+END-ISO-10303-21;
diff --git a/test/cubed-cube.msh b/test/cubed-cube.msh
new file mode 100644
index 0000000000000000000000000000000000000000..dde325a0a2557d1565741df2aea9fdc29a94a4ad
--- /dev/null
+++ b/test/cubed-cube.msh
@@ -0,0 +1,864 @@
+$MeshFormat
+2.2 0 8
+$EndMeshFormat
+$Nodes
+343
+1 0 0 0
+2 0 0 10
+3 0 10 0
+4 0 10 10
+5 10 0 0
+6 10 0 10
+7 10 10 0
+8 10 10 10
+9 0 0 1.666666666666672
+10 0 0 3.333333333333344
+11 0 0 5.000000000000009
+12 0 0 6.666666666666672
+13 0 0 8.333333333333336
+14 0 1.666666666666672 0
+15 0 3.333333333333344 0
+16 0 5.000000000000009 0
+17 0 6.666666666666672 0
+18 0 8.333333333333336 0
+19 0 10 1.666666666666672
+20 0 10 3.333333333333344
+21 0 10 5.000000000000009
+22 0 10 6.666666666666672
+23 0 10 8.333333333333336
+24 0 1.666666666666672 10
+25 0 3.333333333333344 10
+26 0 5.000000000000009 10
+27 0 6.666666666666672 10
+28 0 8.333333333333336 10
+29 10 0 1.666666666666672
+30 10 0 3.333333333333344
+31 10 0 5.000000000000009
+32 10 0 6.666666666666672
+33 10 0 8.333333333333336
+34 10 1.666666666666672 0
+35 10 3.333333333333344 0
+36 10 5.000000000000009 0
+37 10 6.666666666666672 0
+38 10 8.333333333333336 0
+39 10 10 1.666666666666672
+40 10 10 3.333333333333344
+41 10 10 5.000000000000009
+42 10 10 6.666666666666672
+43 10 10 8.333333333333336
+44 10 1.666666666666672 10
+45 10 3.333333333333344 10
+46 10 5.000000000000009 10
+47 10 6.666666666666672 10
+48 10 8.333333333333336 10
+49 1.666666666666672 0 0
+50 3.333333333333344 0 0
+51 5.000000000000009 0 0
+52 6.666666666666672 0 0
+53 8.333333333333336 0 0
+54 1.666666666666672 0 10
+55 3.333333333333344 0 10
+56 5.000000000000009 0 10
+57 6.666666666666672 0 10
+58 8.333333333333336 0 10
+59 1.666666666666672 10 0
+60 3.333333333333344 10 0
+61 5.000000000000009 10 0
+62 6.666666666666672 10 0
+63 8.333333333333336 10 0
+64 1.666666666666672 10 10
+65 3.333333333333344 10 10
+66 5.000000000000009 10 10
+67 6.666666666666672 10 10
+68 8.333333333333336 10 10
+69 0 1.666666666666668 3.333333333333338
+70 0 8.333333333333336 5.000000000000004
+71 0 5.000000000000005 8.333333333333336
+72 0 5.000000000000006 1.666666666666667
+73 0 8.333333333333334 3.333333333333338
+74 0 3.333333333333338 8.333333333333334
+75 0 8.333333333333336 8.333333333333336
+76 0 1.666666666666668 5.000000000000005
+77 0 6.666666666666671 1.666666666666668
+78 0 1.666666666666668 6.666666666666671
+79 0 1.66666666666667 1.666666666666669
+80 0 1.66666666666667 8.333333333333334
+81 0 8.333333333333334 1.66666666666667
+82 0 5.000000000000003 6.666666666666669
+83 0 3.333333333333337 3.333333333333335
+84 0 3.333333333333335 6.666666666666669
+85 0 6.666666666666669 5.000000000000002
+86 0 5.000000000000003 3.333333333333334
+87 0 3.333333333333339 1.666666666666668
+88 0 6.666666666666671 8.333333333333336
+89 0 8.333333333333336 6.666666666666671
+90 0 6.666666666666668 3.333333333333335
+91 0 5.000000000000002 5.000000000000002
+92 0 3.333333333333335 5.000000000000002
+93 0 6.66666666666667 6.666666666666671
+94 10 1.666666666666668 3.333333333333338
+95 10 8.333333333333336 5.000000000000004
+96 10 5.000000000000005 8.333333333333336
+97 10 5.000000000000004 1.666666666666668
+98 10 8.333333333333337 8.333333333333336
+99 10 8.333333333333334 3.333333333333338
+100 10 3.333333333333338 8.333333333333334
+101 10 1.666666666666667 5.000000000000006
+102 10 6.666666666666671 1.666666666666668
+103 10 1.666666666666668 6.666666666666671
+104 10 1.666666666666669 1.66666666666667
+105 10 1.666666666666669 8.333333333333334
+106 10 8.333333333333334 1.666666666666669
+107 10 6.666666666666669 5.000000000000004
+108 10 3.333333333333333 5.000000000000004
+109 10 6.666666666666668 3.333333333333337
+110 10 3.333333333333334 3.333333333333337
+111 10 3.333333333333337 1.666666666666668
+112 10 6.666666666666671 8.333333333333336
+113 10 8.333333333333337 6.666666666666671
+114 10 5.000000000000003 6.666666666666671
+115 10 3.333333333333335 6.66666666666667
+116 10 5.000000000000001 5.000000000000003
+117 10 5.000000000000002 3.333333333333337
+118 10 6.666666666666671 6.666666666666671
+119 4.963214356275155 0 1.668784957944797
+120 3.317582237776889 0 8.331760196778665
+121 8.315733273001639 0 5.000155748895926
+122 1.623165746041504 0 4.99391383873798
+123 1.636937952053827 0 1.662777951906097
+124 6.654194529315052 0 8.332831488754294
+125 8.323518108830998 0 1.667524092257246
+126 1.656504071342595 0 8.331974911699989
+127 8.323288233378031 0 6.666461769940527
+128 8.327361873953064 0 8.333156029608485
+129 1.625841868965969 0 3.328919181967938
+130 8.316557036413666 0 3.334049509706089
+131 6.638537756742497 0 6.665974027330344
+132 1.642552721132448 0 6.663695878577564
+133 4.982918784821877 0 8.332255412505511
+134 6.64528602688278 0 1.670374112938904
+135 3.278505243836852 0 3.33055000927853
+136 6.62594906800776 0 4.999916920658317
+137 4.937771380378987 0 3.33355951443616
+138 6.62749052424298 0 3.334574749423636
+139 3.286658535168235 0 6.66196704619375
+140 4.958530187990556 0 6.664632353924778
+141 4.943783761023866 0 4.998321579025965
+142 3.296459439269126 0 1.665682739796669
+143 3.270150200748045 0 4.995167900443951
+144 8.319477494274667 10 3.333169972868349
+145 1.642401289952334 10 4.995994122053824
+146 4.990499273962526 10 8.332390464609082
+147 4.974718901986735 10 1.665089100516185
+148 1.650806613158973 10 1.663879441264121
+149 1.666666666666671 10 8.333333333333332
+150 8.326507895108154 10 6.666387147756299
+151 8.324217698423221 10 1.666577446189837
+152 8.330421346341454 10 8.33317246986971
+153 1.637778017620791 10 3.327652077469392
+154 3.324767314036656 10 8.332279894336549
+155 6.64477579136364 10 1.666338457530614
+156 6.660165660811743 10 8.332843092640404
+157 8.321592194848483 10 4.999653680812338
+158 1.651821825244905 10 6.664257878478076
+159 3.28326020484872 10 3.326681050109922
+160 6.634104856166324 10 3.332502948194829
+161 4.97579818627555 10 6.664430588732456
+162 3.284967251501693 10 4.993482825700283
+163 6.641946928853725 10 4.998695732656651
+164 3.308721581528395 10 6.663488840038644
+165 6.651358102186887 10 6.665729135182278
+166 4.956018879142214 10 3.330340837991536
+167 4.961068569266943 10 4.996722349190394
+168 3.306257787745393 10 1.663550909007059
+169 8.332031501668784 3.327655810609839 0
+170 1.661583967397951 4.985925016393396 0
+171 4.99888149235128 8.328781672181401 0
+172 4.993595831504386 1.645761942295224 0
+173 1.660497912810677 1.651563432065564 0
+174 8.332958056923808 8.3315936822691 0
+175 1.665868128287409 8.330677281028967 0
+176 8.333333333333337 1.666666666666669 0
+177 8.332074246359143 4.994289507172165 0
+178 6.662704487145006 3.317607957790754 0
+179 3.323175186310005 1.639797188626136 0
+180 3.332149742463294 8.329006867792472 0
+181 8.332511595730896 6.662870524665738 0
+182 6.664258683158848 1.657777476463054 0
+183 6.665924415024502 8.330016659525276 0
+184 1.664258409514333 6.659472931888667 0
+185 4.991559204424686 3.303632966319623 0
+186 4.996765277527716 6.653675864145596 0
+187 3.32335131306381 3.303903840008758 0
+188 3.325134218047016 4.973125396957162 0
+189 3.329655718808052 6.653762669731537 0
+190 6.663143942894656 4.984579210873332 0
+191 6.66479451352513 6.658229402591791 0
+192 4.992487513742513 4.968476001600282 0
+193 1.660403493758395 3.316764122600103 0
+194 3.332833974604121 8.330588915852831 10
+195 4.990396923629646 1.639192438518225 10
+196 8.331700204977253 4.99348613953155 10
+197 1.66359950713175 4.986809017439535 10
+198 1.659476797213571 1.641166790796788 10
+199 8.331602596644176 1.661100149132812 10
+200 6.666262451736792 8.331036472916939 10
+201 1.666360512036942 8.331775733188479 10
+202 8.333176767431947 8.332461623855972 10
+203 3.324752363659667 1.640654676620429 10
+204 8.331143154549407 3.325601742294733 10
+205 8.332585110528434 6.663185298000827 10
+206 1.665690323527357 6.661884085335791 10
+207 4.999238771603533 8.329411344880642 10
+208 6.660931836157782 1.649309184852187 10
+209 3.322620058061121 3.296169448190562 10
+210 3.331386262994759 6.656799061971727 10
+211 6.662741535306179 4.984497939484297 10
+212 4.988687405622154 3.294823441600734 10
+213 6.660538599871673 3.312736539238734 10
+214 4.997593572036546 6.655043997091015 10
+215 6.66508040097065 6.65903418390889 10
+216 3.327865240662655 4.977063523995539 10
+217 4.993810674308104 4.973188365824303 10
+218 1.660298963080085 3.305559657733506 10
+219 3.323175186310005 1.639797188626136 1.666666665894576
+220 8.333333333333337 1.666666666666669 1.666666666159922
+221 8.333333332883761 8.333333333333336 5.000000000000004
+222 1.666666667399848 6.666666666666669 5.000000000000002
+223 8.333333335154675 3.333333333333338 8.333333333333334
+224 1.666666665276616 5.000000000000006 1.666666666666667
+225 8.333333332534451 8.333333333333337 8.333333333333336
+226 1.66666666735759 5.000000000000002 5.000000000000002
+227 3.325134218047016 4.973125396957162 1.666666665215716
+228 6.66479451352513 6.658229402591791 1.666666668556142
+229 4.992487513742513 4.968476001600282 1.666666662890887
+230 1.666666667636574 6.66666666666667 6.666666666666671
+231 8.333333332812531 8.333333333333334 1.666666666666669
+232 8.333333334638025 5.000000000000003 6.666666666666671
+233 6.666262451736792 8.331036472916939 8.33333333154998
+234 3.317582237776889 1.666666666712437 8.331760196778665
+235 4.963214356275155 1.666666665965598 1.668784957944797
+236 1.666666666034267 3.333333333333335 6.666666666666669
+237 6.66508040097065 6.65903418390889 8.333333333387067
+238 6.634104856166324 8.333333334715782 3.332502948194829
+239 1.666666665693501 6.666666666666671 8.333333333333336
+240 8.332074246359143 4.994289507172165 1.666666666314359
+241 1.666666666304344 6.666666666666668 3.333333333333335
+242 3.284967251501693 8.333333334781612 4.993482825700283
+243 8.332511595730896 6.662870524665738 1.666666666937509
+244 1.659476797213571 1.641166790796788 8.333333332432243
+245 6.651358102186887 8.333333331446589 6.665729135182278
+246 4.996765277527716 6.653675864145596 1.666666669892875
+247 6.660931836157782 1.649309184852187 8.333333333926896
+248 6.638537756742497 1.666666666445091 6.665974027330344
+249 3.331386262994759 6.656799061971727 8.333333334876567
+250 4.988687405622154 3.294823441600734 8.333333333444344
+251 6.660538599871673 3.312736539238734 8.333333333244161
+252 8.332031501668784 3.327655810609839 1.666666663483084
+253 1.660497912810677 1.651563432065564 1.666666666532634
+254 1.666666666666671 8.333333332815677 8.333333333333332
+255 1.623165746041504 1.6666666666034 4.99391383873798
+256 8.333333333273636 3.333333333333333 5.000000000000004
+257 3.332833974604121 8.330588915852831 8.33333333503149
+258 4.97579818627555 8.333333331156744 6.664430588732456
+259 1.660298963080085 3.305559657733506 8.33333333203548
+260 3.28326020484872 8.333333336724735 3.326681050109922
+261 8.331602596644176 1.661100149132812 8.333333335117558
+262 1.666666666603764 8.333333333333336 5.000000000000004
+263 6.665924415024502 8.330016659525276 1.666666667557128
+264 3.308721581528395 8.333333331465084 6.663488840038644
+265 3.286658535168235 1.666666666599032 6.66196704619375
+266 4.937771380378987 1.666666665951131 3.33355951443616
+267 8.326507895108154 8.333333331451792 6.666387147756299
+268 8.332585110528434 6.663185298000827 8.333333332584449
+269 4.982918784821877 1.6666666659068 8.332255412505511
+270 1.664258409514333 6.659472931888667 1.666666667233425
+271 3.322620058061121 3.296169448190562 8.33333333167775
+272 8.33333333683429 5.000000000000005 8.333333333333336
+273 8.333333333060155 6.666666666666669 5.000000000000004
+274 1.666666666327729 1.666666666666668 3.333333333333338
+275 4.99888149235128 8.328781672181401 1.666666669469232
+276 8.333333333095132 1.666666666666668 3.333333333333338
+277 8.333333334111209 6.666666666666671 6.666666666666671
+278 1.666666666231004 1.666666666666668 6.666666666666671
+279 8.319477494274667 8.333333334546891 3.333169972868349
+280 8.333333333713604 5.000000000000002 3.333333333333337
+281 8.333333335124941 3.333333333333335 6.66666666666667
+282 6.62749052424298 1.66666666623669 3.334574749423636
+283 1.66666666508557 3.333333333333335 5.000000000000002
+284 8.333333332051213 6.666666666666668 3.333333333333337
+285 1.637778017620791 8.333333342488848 3.327652077469392
+286 1.666666666089987 5.000000000000003 3.333333333333334
+287 6.62594906800776 1.666666666783335 4.999916920658317
+288 4.991559204424686 3.303632966319623 1.666666666035724
+289 1.666666665979094 3.333333333333337 3.333333333333335
+290 1.666666665657806 5.000000000000005 8.333333333333336
+291 1.666666666853695 5.000000000000003 6.666666666666669
+292 1.651821825244905 8.333333330438013 6.664257878478076
+293 3.270150200748045 1.66666666673903 4.995167900443951
+294 1.666666665802565 8.333333333333334 1.66666666666667
+295 3.332149742463294 8.329006867792472 1.666666666152793
+296 4.956018879142214 8.333333342722435 3.330340837991536
+297 4.961068569266943 8.333333337999449 4.996722349190394
+298 4.997593572036546 6.655043997091015 8.33333333485422
+299 3.32335131306381 3.303903840008758 1.666666665489136
+300 3.327865240662655 4.977063523995539 8.333333333931193
+301 4.993810674308104 4.973188365824303 8.333333333793638
+302 4.943783761023866 1.666666666230662 4.998321579025965
+303 4.990499273962526 8.333333328923789 8.332390464609082
+304 6.662704487145006 3.317607957790754 1.666666665319158
+305 6.64528602688278 1.666666667201381 1.670374112938904
+306 8.315733273001639 1.666666666751797 5.000155748895926
+307 6.663143942894656 4.984579210873332 1.666666668138241
+308 6.662741535306179 4.984497939484297 8.333333333366063
+309 8.333333332710026 3.333333333333334 3.333333333333337
+310 1.660403493758395 3.316764122600103 1.666666666364711
+311 6.641946928853725 8.33333332998944 4.998695732656651
+312 3.329655718808052 6.653762669731537 1.666666670056743
+313 8.333333334210733 1.666666666666668 6.666666666666671
+314 3.278505243836852 1.666666665982843 3.33055000927853
+315 8.333333333196052 5.000000000000001 5.000000000000003
+316 4.958530187990556 1.666666666701269 6.664632353924778
+317 3.333333335751559 6.666666666666669 5.000000000000002
+318 3.33333333945139 5.000000000000002 5.000000000000002
+319 3.325134218047016 4.973125396957162 3.333333331397721
+320 6.66479451352513 6.658229402591791 3.333333336627152
+321 4.992487513742513 4.968476001600282 3.333333328810805
+322 3.333333335727594 6.66666666666667 6.666666666666671
+323 6.66666666911012 5.000000000000003 6.666666666666671
+324 3.333333333488395 3.333333333333335 6.666666666666669
+325 6.66508040097065 6.65903418390889 6.666666667932162
+326 3.333333334384611 6.666666666666668 3.333333333333335
+327 4.996765277527716 6.653675864145596 3.333333337116327
+328 6.638537756742497 3.333333332536744 6.665974027330344
+329 4.988687405622154 3.294823441600734 6.666666666679443
+330 6.666666667093498 3.333333333333333 5.000000000000004
+331 4.97579818627555 6.666666665298601 6.664430588732456
+332 4.937771380378987 3.333333331698917 3.33355951443616
+333 6.666666667487235 6.666666666666669 5.000000000000004
+334 6.666666667036193 5.000000000000002 3.333333333333337
+335 6.62749052424298 3.333333332299917 3.334574749423636
+336 3.33333333143754 3.333333333333335 5.000000000000002
+337 3.333333331313443 3.333333333333337 3.333333333333335
+338 3.333333334724964 5.000000000000003 6.666666666666669
+339 4.961068569266943 6.666666676876886 4.996722349190394
+340 4.993810674308104 4.973188365824303 6.666666667605718
+341 4.943783761023866 3.33333333244255 4.998321579025965
+342 6.666666666438698 5.000000000000001 5.000000000000003
+343 5.000000007071594 5.000000000000002 5.000000000000002
+$EndNodes
+$Elements
+512
+1 15 2 0 1 1
+2 15 2 0 2 2
+3 15 2 0 3 3
+4 15 2 0 4 4
+5 15 2 0 5 5
+6 15 2 0 6 6
+7 15 2 0 7 7
+8 15 2 0 8 8
+9 1 2 0 1 1 9
+10 1 2 0 1 9 10
+11 1 2 0 1 10 11
+12 1 2 0 1 11 12
+13 1 2 0 1 12 13
+14 1 2 0 1 13 2
+15 1 2 0 2 1 14
+16 1 2 0 2 14 15
+17 1 2 0 2 15 16
+18 1 2 0 2 16 17
+19 1 2 0 2 17 18
+20 1 2 0 2 18 3
+21 1 2 0 3 3 19
+22 1 2 0 3 19 20
+23 1 2 0 3 20 21
+24 1 2 0 3 21 22
+25 1 2 0 3 22 23
+26 1 2 0 3 23 4
+27 1 2 0 4 2 24
+28 1 2 0 4 24 25
+29 1 2 0 4 25 26
+30 1 2 0 4 26 27
+31 1 2 0 4 27 28
+32 1 2 0 4 28 4
+33 1 2 0 5 5 29
+34 1 2 0 5 29 30
+35 1 2 0 5 30 31
+36 1 2 0 5 31 32
+37 1 2 0 5 32 33
+38 1 2 0 5 33 6
+39 1 2 0 6 5 34
+40 1 2 0 6 34 35
+41 1 2 0 6 35 36
+42 1 2 0 6 36 37
+43 1 2 0 6 37 38
+44 1 2 0 6 38 7
+45 1 2 0 7 7 39
+46 1 2 0 7 39 40
+47 1 2 0 7 40 41
+48 1 2 0 7 41 42
+49 1 2 0 7 42 43
+50 1 2 0 7 43 8
+51 1 2 0 8 6 44
+52 1 2 0 8 44 45
+53 1 2 0 8 45 46
+54 1 2 0 8 46 47
+55 1 2 0 8 47 48
+56 1 2 0 8 48 8
+57 1 2 0 9 1 49
+58 1 2 0 9 49 50
+59 1 2 0 9 50 51
+60 1 2 0 9 51 52
+61 1 2 0 9 52 53
+62 1 2 0 9 53 5
+63 1 2 0 10 2 54
+64 1 2 0 10 54 55
+65 1 2 0 10 55 56
+66 1 2 0 10 56 57
+67 1 2 0 10 57 58
+68 1 2 0 10 58 6
+69 1 2 0 11 3 59
+70 1 2 0 11 59 60
+71 1 2 0 11 60 61
+72 1 2 0 11 61 62
+73 1 2 0 11 62 63
+74 1 2 0 11 63 7
+75 1 2 0 12 4 64
+76 1 2 0 12 64 65
+77 1 2 0 12 65 66
+78 1 2 0 12 66 67
+79 1 2 0 12 67 68
+80 1 2 0 12 68 8
+81 3 2 0 1 82 71 88 93
+82 3 2 0 1 82 93 85 91
+83 3 2 0 1 82 84 92 91
+84 3 2 0 1 91 86 83 92
+85 3 2 0 1 86 91 85 90
+86 3 2 0 1 4 28 75 23
+87 3 2 0 1 75 28 27 88
+88 3 2 0 1 18 81 77 17
+89 3 2 0 1 77 90 86 72
+90 3 2 0 1 75 23 22 89
+91 3 2 0 1 14 15 87 79
+92 3 2 0 1 26 27 88 71
+93 3 2 0 1 17 77 72 16
+94 3 2 0 1 89 75 88 93
+95 3 2 0 1 15 87 72 16
+96 3 2 0 1 87 83 86 72
+97 3 2 0 1 89 70 85 93
+98 3 2 0 1 87 83 69 79
+99 3 2 0 1 3 18 81 19
+100 3 2 0 1 26 25 74 71
+101 3 2 0 1 25 74 80 24
+102 3 2 0 1 70 21 22 89
+103 3 2 0 1 80 13 2 24
+104 3 2 0 1 12 78 80 13
+105 3 2 0 1 19 20 73 81
+106 3 2 0 1 82 71 74 84
+107 3 2 0 1 85 70 73 90
+108 3 2 0 1 20 73 70 21
+109 3 2 0 1 74 80 78 84
+110 3 2 0 1 14 79 9 1
+111 3 2 0 1 73 90 77 81
+112 3 2 0 1 10 9 79 69
+113 3 2 0 1 78 12 11 76
+114 3 2 0 1 78 84 92 76
+115 3 2 0 1 69 10 11 76
+116 3 2 0 1 69 76 92 83
+117 3 2 0 2 114 116 107 118
+118 3 2 0 2 108 110 117 116
+119 3 2 0 2 115 114 116 108
+120 3 2 0 2 96 100 115 114
+121 3 2 0 2 117 109 107 116
+122 3 2 0 2 48 98 112 47
+123 3 2 0 2 8 43 98 48
+124 3 2 0 2 114 118 112 96
+125 3 2 0 2 38 37 102 106
+126 3 2 0 2 111 35 34 104
+127 3 2 0 2 35 111 97 36
+128 3 2 0 2 37 102 97 36
+129 3 2 0 2 110 94 104 111
+130 3 2 0 2 98 43 42 113
+131 3 2 0 2 110 111 97 117
+132 3 2 0 2 97 117 109 102
+133 3 2 0 2 100 105 103 115
+134 3 2 0 2 113 95 107 118
+135 3 2 0 2 6 33 105 44
+136 3 2 0 2 118 113 98 112
+137 3 2 0 2 96 112 47 46
+138 3 2 0 2 45 44 105 100
+139 3 2 0 2 32 33 105 103
+140 3 2 0 2 45 46 96 100
+141 3 2 0 2 7 39 106 38
+142 3 2 0 2 41 95 113 42
+143 3 2 0 2 34 5 29 104
+144 3 2 0 2 106 39 40 99
+145 3 2 0 2 95 99 40 41
+146 3 2 0 2 94 30 29 104
+147 3 2 0 2 102 109 99 106
+148 3 2 0 2 107 109 99 95
+149 3 2 0 2 31 32 103 101
+150 3 2 0 2 94 30 31 101
+151 3 2 0 2 115 108 101 103
+152 3 2 0 2 110 94 101 108
+153 3 2 0 3 136 141 137 138
+154 3 2 0 3 143 135 137 141
+155 3 2 0 3 6 58 128 33
+156 3 2 0 3 127 128 33 32
+157 3 2 0 3 53 5 29 125
+158 3 2 0 3 141 140 131 136
+159 3 2 0 3 30 29 125 130
+160 3 2 0 3 57 58 128 124
+161 3 2 0 3 143 141 140 139
+162 3 2 0 3 31 121 127 32
+163 3 2 0 3 136 121 127 131
+164 3 2 0 3 130 138 134 125
+165 3 2 0 3 125 134 52 53
+166 3 2 0 3 30 31 121 130
+167 3 2 0 3 137 138 134 119
+168 3 2 0 3 136 138 130 121
+169 3 2 0 3 133 56 55 120
+170 3 2 0 3 124 133 140 131
+171 3 2 0 3 126 13 2 54
+172 3 2 0 3 120 133 140 139
+173 3 2 0 3 124 133 56 57
+174 3 2 0 3 127 131 124 128
+175 3 2 0 3 12 13 126 132
+176 3 2 0 3 126 54 55 120
+177 3 2 0 3 52 51 119 134
+178 3 2 0 3 139 132 126 120
+179 3 2 0 3 1 49 123 9
+180 3 2 0 3 123 49 50 142
+181 3 2 0 3 143 122 132 139
+182 3 2 0 3 10 9 123 129
+183 3 2 0 3 132 12 11 122
+184 3 2 0 3 142 119 51 50
+185 3 2 0 3 123 142 135 129
+186 3 2 0 3 129 122 11 10
+187 3 2 0 3 129 135 143 122
+188 3 2 0 3 119 137 135 142
+189 3 2 0 4 4 64 149 23
+190 3 2 0 4 68 152 43 8
+191 3 2 0 4 152 43 42 150
+192 3 2 0 4 162 167 166 159
+193 3 2 0 4 67 156 152 68
+194 3 2 0 4 166 167 163 160
+195 3 2 0 4 67 66 146 156
+196 3 2 0 4 154 65 64 149
+197 3 2 0 4 154 65 66 146
+198 3 2 0 4 7 63 151 39
+199 3 2 0 4 157 150 165 163
+200 3 2 0 4 157 41 42 150
+201 3 2 0 4 23 22 158 149
+202 3 2 0 4 156 165 150 152
+203 3 2 0 4 39 151 144 40
+204 3 2 0 4 165 163 167 161
+205 3 2 0 4 146 156 165 161
+206 3 2 0 4 157 144 40 41
+207 3 2 0 4 160 144 157 163
+208 3 2 0 4 59 148 19 3
+209 3 2 0 4 146 161 164 154
+210 3 2 0 4 158 149 154 164
+211 3 2 0 4 161 164 162 167
+212 3 2 0 4 145 158 22 21
+213 3 2 0 4 151 63 62 155
+214 3 2 0 4 162 145 158 164
+215 3 2 0 4 145 162 159 153
+216 3 2 0 4 62 61 147 155
+217 3 2 0 4 19 148 153 20
+218 3 2 0 4 61 147 168 60
+219 3 2 0 4 144 151 155 160
+220 3 2 0 4 60 168 148 59
+221 3 2 0 4 153 145 21 20
+222 3 2 0 4 155 160 166 147
+223 3 2 0 4 147 166 159 168
+224 3 2 0 4 168 148 153 159
+225 3 2 0 5 189 180 171 186
+226 3 2 0 5 187 185 192 188
+227 3 2 0 5 189 184 175 180
+228 3 2 0 5 189 188 192 186
+229 3 2 0 5 38 37 181 174
+230 3 2 0 5 169 35 34 176
+231 3 2 0 5 169 177 36 35
+232 3 2 0 5 183 191 181 174
+233 3 2 0 5 37 181 177 36
+234 3 2 0 5 183 191 186 171
+235 3 2 0 5 18 17 184 175
+236 3 2 0 5 169 178 190 177
+237 3 2 0 5 177 190 191 181
+238 3 2 0 5 7 63 174 38
+239 3 2 0 5 187 193 173 179
+240 3 2 0 5 176 53 5 34
+241 3 2 0 5 14 15 193 173
+242 3 2 0 5 185 178 190 192
+243 3 2 0 5 17 184 170 16
+244 3 2 0 5 193 15 16 170
+245 3 2 0 5 192 190 191 186
+246 3 2 0 5 53 176 182 52
+247 3 2 0 5 59 175 18 3
+248 3 2 0 5 193 170 188 187
+249 3 2 0 5 182 178 169 176
+250 3 2 0 5 174 63 62 183
+251 3 2 0 5 170 188 189 184
+252 3 2 0 5 62 61 171 183
+253 3 2 0 5 61 171 180 60
+254 3 2 0 5 52 182 172 51
+255 3 2 0 5 60 180 175 59
+256 3 2 0 5 14 1 49 173
+257 3 2 0 5 49 50 179 173
+258 3 2 0 5 182 172 185 178
+259 3 2 0 5 50 51 172 179
+260 3 2 0 5 187 185 172 179
+261 3 2 0 6 210 216 217 214
+262 3 2 0 6 4 28 201 64
+263 3 2 0 6 216 217 212 209
+264 3 2 0 6 48 47 205 202
+265 3 2 0 6 68 8 48 202
+266 3 2 0 6 215 200 202 205
+267 3 2 0 6 201 28 27 206
+268 3 2 0 6 200 67 68 202
+269 3 2 0 6 6 58 199 44
+270 3 2 0 6 46 196 205 47
+271 3 2 0 6 207 194 210 214
+272 3 2 0 6 67 200 207 66
+273 3 2 0 6 45 204 199 44
+274 3 2 0 6 210 194 201 206
+275 3 2 0 6 65 64 201 194
+276 3 2 0 6 204 196 46 45
+277 3 2 0 6 65 194 207 66
+278 3 2 0 6 215 200 207 214
+279 3 2 0 6 214 217 211 215
+280 3 2 0 6 197 206 27 26
+281 3 2 0 6 205 215 211 196
+282 3 2 0 6 208 199 58 57
+283 3 2 0 6 209 216 197 218
+284 3 2 0 6 213 211 196 204
+285 3 2 0 6 213 212 217 211
+286 3 2 0 6 213 208 199 204
+287 3 2 0 6 197 206 210 216
+288 3 2 0 6 26 25 218 197
+289 3 2 0 6 25 218 198 24
+290 3 2 0 6 212 209 203 195
+291 3 2 0 6 195 208 213 212
+292 3 2 0 6 56 195 203 55
+293 3 2 0 6 198 24 2 54
+294 3 2 0 6 208 195 56 57
+295 3 2 0 6 54 198 203 55
+296 3 2 0 6 209 218 198 203
+297 5 2 0 1 114 118 107 116 232 277 273 315
+298 5 2 0 1 108 116 117 110 256 315 280 309
+299 5 2 0 1 281 232 114 115 256 315 116 108
+300 5 2 0 1 82 291 230 93 71 290 239 88
+301 5 2 0 1 291 230 222 226 82 93 85 91
+302 5 2 0 1 318 338 291 226 336 324 236 283
+303 5 2 0 1 82 84 92 91 291 236 283 226
+304 5 2 0 1 226 283 92 91 286 289 83 86
+305 5 2 0 1 96 100 223 272 114 115 281 232
+306 5 2 0 1 286 226 222 241 86 91 85 90
+307 5 2 0 1 280 117 109 284 315 116 107 273
+308 5 2 0 1 318 226 291 338 317 222 230 322
+309 5 2 0 1 249 298 214 210 300 301 217 216
+310 5 2 0 1 4 23 149 64 28 75 254 201
+311 5 2 0 1 312 189 180 295 246 186 171 275
+312 5 2 0 1 187 299 288 185 188 227 229 192
+313 5 2 0 1 216 209 271 300 217 212 250 301
+314 5 2 0 1 312 189 184 270 295 180 175 294
+315 5 2 0 1 48 202 225 98 47 205 268 112
+316 5 2 0 1 68 202 225 152 8 48 98 43
+317 5 2 0 1 189 312 227 188 186 246 229 192
+318 5 2 0 1 114 118 277 232 96 112 268 272
+319 5 2 0 1 38 174 181 37 106 231 243 102
+320 5 2 0 1 215 200 202 205 237 233 225 268
+321 5 2 0 1 252 169 35 111 220 176 34 104
+322 5 2 0 1 169 177 240 252 35 36 97 111
+323 5 2 0 1 183 263 228 191 174 231 243 181
+324 5 2 0 1 37 102 243 181 36 97 240 177
+325 5 2 0 1 254 75 88 239 201 28 27 206
+326 5 2 0 1 183 171 186 191 263 275 246 228
+327 5 2 0 1 18 81 77 17 175 294 270 184
+328 5 2 0 1 309 110 94 276 252 111 104 220
+329 5 2 0 1 225 152 43 98 267 150 42 113
+330 5 2 0 1 287 282 138 136 302 266 137 141
+331 5 2 0 1 110 111 252 309 117 97 240 280
+332 5 2 0 1 97 240 280 117 102 243 284 109
+333 5 2 0 1 162 167 297 242 159 166 296 260
+334 5 2 0 1 143 293 302 141 135 314 266 137
+335 5 2 0 1 200 202 225 233 67 68 152 156
+336 5 2 0 1 100 105 261 223 115 103 313 281
+337 5 2 0 1 267 277 273 221 113 118 107 95
+338 5 2 0 1 6 44 105 33 58 199 261 128
+339 5 2 0 1 118 112 98 113 277 268 225 267
+340 5 2 0 1 315 232 277 273 342 323 325 333
+341 5 2 0 1 96 46 47 112 272 196 205 268
+342 5 2 0 1 166 167 297 296 160 163 311 238
+343 5 2 0 1 303 298 214 207 257 249 210 194
+344 5 2 0 1 252 169 178 304 240 177 190 307
+345 5 2 0 1 67 200 207 66 156 233 303 146
+346 5 2 0 1 45 100 105 44 204 223 261 199
+347 5 2 0 1 315 273 284 280 342 333 320 334
+348 5 2 0 1 249 239 206 210 257 254 201 194
+349 5 2 0 1 154 257 194 65 149 254 201 64
+350 5 2 0 1 240 177 190 307 243 181 191 228
+351 5 2 0 1 127 128 33 32 313 261 105 103
+352 5 2 0 1 204 196 46 45 223 272 96 100
+353 5 2 0 1 154 146 66 65 257 303 207 194
+354 5 2 0 1 77 72 224 270 90 86 286 241
+355 5 2 0 1 7 39 151 63 38 106 231 174
+356 5 2 0 1 299 310 193 187 219 253 173 179
+357 5 2 0 1 157 221 267 150 163 311 245 165
+358 5 2 0 1 157 221 95 41 150 267 113 42
+359 5 2 0 1 237 298 214 215 233 303 207 200
+360 5 2 0 1 326 327 321 319 312 246 229 227
+361 5 2 0 1 176 220 125 53 34 104 29 5
+362 5 2 0 1 75 254 292 89 23 149 158 22
+363 5 2 0 1 298 237 215 214 301 308 211 217
+364 5 2 0 1 233 245 165 156 225 267 150 152
+365 5 2 0 1 141 140 131 136 302 316 248 287
+366 5 2 0 1 106 39 151 231 99 40 144 279
+367 5 2 0 1 165 161 167 163 245 258 297 311
+368 5 2 0 1 14 15 87 79 173 193 310 253
+369 5 2 0 1 288 304 178 185 229 307 190 192
+370 5 2 0 1 197 290 71 26 206 239 88 27
+371 5 2 0 1 268 272 196 205 237 308 211 215
+372 5 2 0 1 146 156 233 303 161 165 245 258
+373 5 2 0 1 221 95 99 279 157 41 40 144
+374 5 2 0 1 94 30 130 276 104 29 125 220
+375 5 2 0 1 208 57 124 247 199 58 128 261
+376 5 2 0 1 17 16 170 184 77 72 224 270
+377 5 2 0 1 160 238 279 144 163 311 221 157
+378 5 2 0 1 280 284 243 240 334 320 228 307
+379 5 2 0 1 243 284 109 102 231 279 99 106
+380 5 2 0 1 89 93 230 292 75 88 239 254
+381 5 2 0 1 293 302 316 265 143 141 140 139
+382 5 2 0 1 273 107 109 284 221 95 99 279
+383 5 2 0 1 193 170 16 15 310 224 72 87
+384 5 2 0 1 31 121 127 32 101 306 313 103
+385 5 2 0 1 192 229 307 190 186 246 228 191
+386 5 2 0 1 310 224 72 87 289 286 86 83
+387 5 2 0 1 287 248 131 136 306 313 127 121
+388 5 2 0 1 277 268 225 267 325 237 233 245
+389 5 2 0 1 130 276 220 125 138 282 305 134
+390 5 2 0 1 271 259 218 209 300 290 197 216
+391 5 2 0 1 251 213 204 223 308 211 196 272
+392 5 2 0 1 292 262 222 230 89 70 85 93
+393 5 2 0 1 213 211 308 251 212 217 301 250
+394 5 2 0 1 213 251 223 204 208 247 261 199
+395 5 2 0 1 268 272 308 237 277 232 323 325
+396 5 2 0 1 125 220 176 53 134 305 182 52
+397 5 2 0 1 94 276 130 30 101 306 121 31
+398 5 2 0 1 87 83 69 79 310 289 274 253
+399 5 2 0 1 137 119 235 266 138 134 305 282
+400 5 2 0 1 59 175 294 148 3 18 81 19
+401 5 2 0 1 281 256 108 115 313 306 101 103
+402 5 2 0 1 309 256 306 276 110 108 101 94
+403 5 2 0 1 303 146 161 258 257 154 164 264
+404 5 2 0 1 287 282 276 306 136 138 130 121
+405 5 2 0 1 193 170 224 310 187 188 227 299
+406 5 2 0 1 292 158 149 254 264 164 154 257
+407 5 2 0 1 290 197 216 300 239 206 210 249
+408 5 2 0 1 258 264 164 161 297 242 162 167
+409 5 2 0 1 277 273 333 325 267 221 311 245
+410 5 2 0 1 297 339 333 311 258 331 325 245
+411 5 2 0 1 258 245 233 303 331 325 237 298
+412 5 2 0 1 26 71 290 197 25 74 259 218
+413 5 2 0 1 25 218 198 24 74 259 244 80
+414 5 2 0 1 250 269 195 212 271 234 203 209
+415 5 2 0 1 262 70 89 292 145 21 22 158
+416 5 2 0 1 182 176 169 178 305 220 252 304
+417 5 2 0 1 270 224 227 312 241 286 319 326
+418 5 2 0 1 195 269 250 212 208 247 251 213
+419 5 2 0 1 231 151 63 174 263 155 62 183
+420 5 2 0 1 133 269 234 120 56 195 203 55
+421 5 2 0 1 300 290 239 249 338 291 230 322
+422 5 2 0 1 247 269 316 248 124 133 140 131
+423 5 2 0 1 221 279 284 273 311 238 320 333
+424 5 2 0 1 242 162 145 262 264 164 158 292
+425 5 2 0 1 244 126 54 198 80 13 2 24
+426 5 2 0 1 224 227 188 170 270 312 189 184
+427 5 2 0 1 145 162 242 262 153 159 260 285
+428 5 2 0 1 234 120 139 265 269 133 140 316
+429 5 2 0 1 247 124 57 208 269 133 56 195
+430 5 2 0 1 127 128 261 313 131 124 247 248
+431 5 2 0 1 12 13 126 132 78 80 244 278
+432 5 2 0 1 317 326 319 318 222 241 286 226
+433 5 2 0 1 62 155 147 61 183 263 275 171
+434 5 2 0 1 239 249 322 230 254 257 264 292
+435 5 2 0 1 19 81 294 148 20 73 285 153
+436 5 2 0 1 286 224 227 319 289 310 299 337
+437 5 2 0 1 264 258 303 257 322 331 298 249
+438 5 2 0 1 334 320 228 307 321 327 246 229
+439 5 2 0 1 291 82 84 236 290 71 74 259
+440 5 2 0 1 223 281 313 261 251 328 248 247
+441 5 2 0 1 61 171 275 147 60 180 295 168
+442 5 2 0 1 144 160 155 151 279 238 263 231
+443 5 2 0 1 126 54 55 120 244 198 203 234
+444 5 2 0 1 52 134 305 182 51 119 235 172
+445 5 2 0 1 85 222 241 90 70 262 285 73
+446 5 2 0 1 323 325 331 340 308 237 298 301
+447 5 2 0 1 60 180 295 168 59 175 294 148
+448 5 2 0 1 153 285 262 145 20 73 70 21
+449 5 2 0 1 271 300 338 324 259 290 291 236
+450 5 2 0 1 139 120 234 265 132 126 244 278
+451 5 2 0 1 74 80 78 84 259 244 278 236
+452 5 2 0 1 342 330 256 315 323 328 281 232
+453 5 2 0 1 271 259 244 234 209 218 198 203
+454 5 2 0 1 308 323 232 272 251 328 281 223
+455 5 2 0 1 14 79 9 1 173 253 123 49
+456 5 2 0 1 123 253 219 142 49 173 179 50
+457 5 2 0 1 238 263 231 279 320 228 243 284
+458 5 2 0 1 322 249 300 338 331 298 301 340
+459 5 2 0 1 182 172 235 305 178 185 288 304
+460 5 2 0 1 337 336 318 319 289 283 226 286
+461 5 2 0 1 143 122 132 139 293 255 278 265
+462 5 2 0 1 73 81 294 285 90 77 270 241
+463 5 2 0 1 10 69 274 129 9 79 253 123
+464 5 2 0 1 304 335 282 305 252 309 276 220
+465 5 2 0 1 263 238 160 155 275 296 166 147
+466 5 2 0 1 287 306 256 330 248 313 281 328
+467 5 2 0 1 342 333 339 343 323 325 331 340
+468 5 2 0 1 278 78 76 255 132 12 11 122
+469 5 2 0 1 317 326 241 222 242 260 285 262
+470 5 2 0 1 339 333 320 327 297 311 238 296
+471 5 2 0 1 317 242 262 222 322 264 292 230
+472 5 2 0 1 321 327 339 343 334 320 333 342
+473 5 2 0 1 322 331 340 338 317 339 343 318
+474 5 2 0 1 142 119 51 50 219 235 172 179
+475 5 2 0 1 280 315 342 334 309 256 330 335
+476 5 2 0 1 329 340 338 324 250 301 300 271
+477 5 2 0 1 253 274 129 123 219 314 135 142
+478 5 2 0 1 335 334 280 309 304 307 240 252
+479 5 2 0 1 275 295 260 296 147 168 159 166
+480 5 2 0 1 339 297 242 317 331 258 264 322
+481 5 2 0 1 317 318 319 326 339 343 321 327
+482 5 2 0 1 287 282 335 330 306 276 309 256
+483 5 2 0 1 246 228 263 275 327 320 238 296
+484 5 2 0 1 278 255 76 78 236 283 92 84
+485 5 2 0 1 295 168 148 294 260 159 153 285
+486 5 2 0 1 329 324 265 316 250 271 234 269
+487 5 2 0 1 330 287 302 341 335 282 266 332
+488 5 2 0 1 244 234 265 278 259 271 324 236
+489 5 2 0 1 274 255 76 69 129 122 11 10
+490 5 2 0 1 274 255 122 129 314 293 143 135
+491 5 2 0 1 341 336 337 332 302 293 314 266
+492 5 2 0 1 293 336 337 314 255 283 289 274
+493 5 2 0 1 327 296 260 326 339 297 242 317
+494 5 2 0 1 187 185 288 299 179 172 235 219
+495 5 2 0 1 337 336 341 332 319 318 343 321
+496 5 2 0 1 336 283 255 293 324 236 278 265
+497 5 2 0 1 293 336 324 265 302 341 329 316
+498 5 2 0 1 274 255 283 289 69 76 92 83
+499 5 2 0 1 260 295 275 296 326 312 246 327
+500 5 2 0 1 316 329 250 269 248 328 251 247
+501 5 2 0 1 270 294 285 241 312 295 260 326
+502 5 2 0 1 329 340 301 250 328 323 308 251
+503 5 2 0 1 332 288 304 335 266 235 305 282
+504 5 2 0 1 235 219 142 119 266 314 135 137
+505 5 2 0 1 337 299 288 332 314 219 235 266
+506 5 2 0 1 310 299 337 289 253 219 314 274
+507 5 2 0 1 343 341 329 340 318 336 324 338
+508 5 2 0 1 329 328 330 341 340 323 342 343
+509 5 2 0 1 337 332 288 299 319 321 229 227
+510 5 2 0 1 304 288 332 335 307 229 321 334
+511 5 2 0 1 287 330 341 302 248 328 329 316
+512 5 2 0 1 334 342 343 321 335 330 341 332
+$EndElements
diff --git a/test/hybrid-cube.msh b/test/hybrid-cube.msh
new file mode 100644
index 0000000000000000000000000000000000000000..149f68d322614bf3f2a2dc4b1727c21deeafde57
--- /dev/null
+++ b/test/hybrid-cube.msh
@@ -0,0 +1,873 @@
+$MeshFormat
+2.2 0 8
+$EndMeshFormat
+$Nodes
+344
+1 0 0 0
+2 0 0 10
+3 0 10 0
+4 0 10 10
+5 10 0 0
+6 10 0 10
+7 10 10 0
+8 10 10 10
+9 0 0 1.666666666666672
+10 0 0 3.333333333333344
+11 0 0 5.000000000000009
+12 0 0 6.666666666666672
+13 0 0 8.333333333333336
+14 0 1.666666666666672 0
+15 0 3.333333333333344 0
+16 0 5.000000000000009 0
+17 0 6.666666666666672 0
+18 0 8.333333333333336 0
+19 0 10 1.666666666666672
+20 0 10 3.333333333333344
+21 0 10 5.000000000000009
+22 0 10 6.666666666666672
+23 0 10 8.333333333333336
+24 0 1.666666666666672 10
+25 0 3.333333333333344 10
+26 0 5.000000000000009 10
+27 0 6.666666666666672 10
+28 0 8.333333333333336 10
+29 10 0 1.666666666666672
+30 10 0 3.333333333333344
+31 10 0 5.000000000000009
+32 10 0 6.666666666666672
+33 10 0 8.333333333333336
+34 10 1.666666666666672 0
+35 10 3.333333333333344 0
+36 10 5.000000000000009 0
+37 10 6.666666666666672 0
+38 10 8.333333333333336 0
+39 10 10 1.666666666666672
+40 10 10 3.333333333333344
+41 10 10 5.000000000000009
+42 10 10 6.666666666666672
+43 10 10 8.333333333333336
+44 10 1.666666666666672 10
+45 10 3.333333333333344 10
+46 10 5.000000000000009 10
+47 10 6.666666666666672 10
+48 10 8.333333333333336 10
+49 1.666666666666672 0 0
+50 3.333333333333344 0 0
+51 5.000000000000009 0 0
+52 6.666666666666672 0 0
+53 8.333333333333336 0 0
+54 1.666666666666672 0 10
+55 3.333333333333344 0 10
+56 5.000000000000009 0 10
+57 6.666666666666672 0 10
+58 8.333333333333336 0 10
+59 1.666666666666672 10 0
+60 3.333333333333344 10 0
+61 5.000000000000009 10 0
+62 6.666666666666672 10 0
+63 8.333333333333336 10 0
+64 1.666666666666672 10 10
+65 3.333333333333344 10 10
+66 5.000000000000009 10 10
+67 6.666666666666672 10 10
+68 8.333333333333336 10 10
+69 0 5.000000000000004 8.333333333333337
+70 0 3.333333333333338 1.666666666666668
+71 0 8.333333333333336 5.000000000000009
+72 0 1.666666666666668 5.000000000000006
+73 0 8.333333333333336 8.333333333333336
+74 0 3.333333333333337 8.333333333333337
+75 0 8.333333333333334 1.666666666666669
+76 0 1.666666666666668 6.666666666666672
+77 0 1.66666666666667 1.66666666666667
+78 0 1.666666666666669 8.333333333333337
+79 0 5.000000000000004 1.666666666666668
+80 0 5.000000000000002 6.666666666666671
+81 0 5.000000000000003 3.333333333333336
+82 0 3.333333333333335 5.000000000000004
+83 0 3.333333333333336 3.333333333333337
+84 0 8.333333333333334 3.333333333333338
+85 0 1.666666666666668 3.333333333333339
+86 0 8.333333333333336 6.666666666666671
+87 0 6.666666666666671 8.333333333333337
+88 0 3.333333333333336 6.666666666666672
+89 0 6.666666666666671 1.666666666666668
+90 0 5.000000000000002 5.000000000000004
+91 0 6.66666666666667 6.666666666666671
+92 0 6.66666666666667 5.000000000000005
+93 0 6.66666666666667 3.333333333333337
+94 10 5.000000000000005 8.333333333333336
+95 10 3.333333333333339 1.666666666666668
+96 10 8.333333333333337 5.000000000000004
+97 10 1.666666666666667 5.000000000000005
+98 10 8.333333333333336 8.333333333333336
+99 10 3.333333333333337 8.333333333333334
+100 10 8.333333333333334 3.333333333333337
+101 10 6.666666666666671 1.666666666666667
+102 10 1.666666666666667 6.666666666666669
+103 10 1.666666666666669 1.66666666666667
+104 10 8.333333333333334 1.666666666666669
+105 10 1.666666666666669 8.333333333333334
+106 10 6.666666666666669 3.333333333333335
+107 10 5.000000000000004 6.666666666666671
+108 10 3.333333333333334 5.000000000000003
+109 10 3.333333333333336 3.333333333333336
+110 10 1.666666666666668 3.333333333333338
+111 10 6.666666666666671 8.333333333333336
+112 10 8.333333333333337 6.66666666666667
+113 10 5.000000000000005 1.666666666666667
+114 10 3.333333333333335 6.666666666666668
+115 10 6.666666666666671 5.000000000000002
+116 10 5.000000000000002 5.000000000000001
+117 10 6.666666666666671 6.666666666666671
+118 10 5.000000000000004 3.333333333333334
+119 5.000000000000006 0 1.666666666666669
+120 3.333333333333339 0 8.333333333333337
+121 8.333333333333336 0 5.000000000000007
+122 1.666666666666668 0 5.000000000000007
+123 1.66666666666667 0 1.66666666666667
+124 6.666666666666671 0 8.333333333333337
+125 8.333333333333334 0 1.66666666666667
+126 1.666666666666669 0 8.333333333333337
+127 8.333333333333336 0 6.666666666666671
+128 8.333333333333336 0 8.333333333333336
+129 3.333333333333338 0 1.666666666666669
+130 1.666666666666668 0 3.33333333333334
+131 8.333333333333336 0 3.33333333333334
+132 6.666666666666671 0 5.000000000000005
+133 6.666666666666671 0 6.666666666666671
+134 1.666666666666668 0 6.666666666666672
+135 5.000000000000007 0 8.333333333333337
+136 6.666666666666671 0 1.666666666666669
+137 3.333333333333337 0 5.000000000000005
+138 5.000000000000004 0 3.333333333333337
+139 5.000000000000004 0 5.000000000000004
+140 3.333333333333337 0 3.333333333333338
+141 5.000000000000005 0 6.666666666666673
+142 3.333333333333337 0 6.666666666666673
+143 6.666666666666671 0 3.333333333333338
+144 3.325819545491736 10 8.330117844918796
+145 4.981517593996887 10 1.660213435829615
+146 8.32871176233281 10 4.998677723858195
+147 1.635071918719877 10 4.98513583612906
+148 1.641285395332743 10 1.653829965095092
+149 8.333333333333336 10 1.666666666666672
+150 8.330220336927585 10 6.66574413541743
+151 1.662162179295719 10 8.330926058549844
+152 8.332012109557015 10 8.332925713261476
+153 4.993745441061907 10 8.330970169033998
+154 3.309384452565365 10 6.657042997900374
+155 6.651883160821606 10 4.995624535831115
+156 3.304697219241961 10 1.654495643791025
+157 1.635085693333254 10 3.318890068949913
+158 8.329267064096644 10 3.332180350296297
+159 1.650813517888665 10 6.659716592623695
+160 6.657485176181039 10 6.663740878468262
+161 6.662699500414444 10 8.331987864948598
+162 6.666666666666672 10 1.666666666666669
+163 3.295797638135218 10 4.985649635590115
+164 4.949980024020644 10 3.319457070219448
+165 3.294533871464136 10 3.318223505788806
+166 4.982930299857913 10 6.660643179951268
+167 6.650956351407793 10 3.328748986374459
+168 4.967118326764401 10 4.989697555718453
+169 4.990136067352632 1.637182763854645 0
+170 3.333778305479518 8.328882932486007 0
+171 8.331852285708377 4.992869753381408 0
+172 1.663276315200596 4.97533671803011 0
+173 1.657753767328274 1.641692131956325 0
+174 8.331760559230817 1.661502700638851 0
+175 6.666557858901274 8.331916525352485 0
+176 1.667130308658399 8.329982834314492 0
+177 8.333148603277156 8.331997530014304 0
+178 3.323791957188495 1.638234686091057 0
+179 8.331221011350848 3.324828115971477 0
+180 8.332670988145207 6.662789452312691 0
+181 1.665967520107639 6.654754892402647 0
+182 4.999825127277316 8.329172838426391 0
+183 6.662276128253333 1.651600646418844 0
+184 3.321612456181299 3.28956546502744 0
+185 6.66314954975507 4.9818223878973 0
+186 4.988690928062234 3.29067435201555 0
+187 6.660817510490984 3.308899115113731 0
+188 4.999063009569526 6.652721859401644 0
+189 3.332783649810387 6.647880017968968 0
+190 6.665620038725993 6.658509429039656 0
+191 3.327552521792197 4.960077554541143 0
+192 4.994211699752948 4.967753460163921 0
+193 1.657367303280127 3.296860342739643 0
+194 3.331964559976454 8.329370379076208 10
+195 4.991955091643362 1.650928120218309 10
+196 8.330955322553296 4.994209773730754 10
+197 1.659174425915023 4.983257895012078 10
+198 1.654752250252084 1.647369711906424 10
+199 6.665602014248813 8.330329358239103 10
+200 8.333333333333332 1.666666666666675 10
+201 1.666666666666669 8.333333333333337 10
+202 8.33295137073689 8.332275421606417 10
+203 1.65586805957721 3.312731217741932 10
+204 3.32108662298488 1.645038877088158 10
+205 8.331415686237955 3.328760486742754 10
+206 1.666666666666667 6.666666666666673 10
+207 8.332050129365591 6.663376582289044 10
+208 4.998642401499535 8.329275836360964 10
+209 6.666666666666669 1.666666666666667 10
+210 3.328382654748142 6.652554439130114 10
+211 6.660255281172845 4.984428228332149 10
+212 4.984536395687214 3.300417587918648 10
+213 3.318113205340548 4.954332937045653 10
+214 3.315494821903588 3.297647072072853 10
+215 4.994701101786632 6.65210674876501 10
+216 6.663199914867223 6.657647619162923 10
+217 6.659225782827993 3.316092216541285 10
+218 4.987511039407003 4.968286404001362 10
+219 8.333333333368943 6.666666666666671 1.666666666666667
+220 3.333333333333339 1.666666665595295 8.333333333333337
+221 8.333333333333336 1.666666666603869 5.000000000000007
+222 5.000000000000006 1.666666666402171 1.666666666666669
+223 8.333333333744871 1.666666666666667 6.666666666666669
+224 8.333333333448083 8.333333333333334 3.333333333333337
+225 1.666666666981749 8.333333333333336 8.333333333333336
+226 1.666666666557241 3.333333333333335 5.000000000000004
+227 1.666666664939841 3.333333333333337 8.333333333333337
+228 1.666666666966847 8.333333333333334 1.666666666666669
+229 1.666666665478944 1.666666666666668 6.666666666666672
+230 8.333333333333336 8.333333333166749 1.666666666666672
+231 1.666666666624304 1.66666666666667 1.66666666666667
+232 6.666557858901274 8.331916525352485 1.666666665824507
+233 1.659174425915023 4.983257895012078 8.33333333355135
+234 3.304697219241961 8.333333334421203 1.654495643791025
+235 8.333333335125038 8.333333333333336 8.333333333333336
+236 8.333333333333334 1.666666666734722 1.66666666666667
+237 3.325819545491736 8.333333332629657 8.330117844918796
+238 6.651883160821606 8.333333333307568 4.995624535831115
+239 8.333333332406255 3.333333333333339 1.666666666666668
+240 8.333333335063768 8.333333333333337 5.000000000000004
+241 4.993745441061907 8.333333335070375 8.330970169033998
+242 8.333333333245898 3.333333333333337 8.333333333333334
+243 4.981517593996887 8.33333333554704 1.660213435829615
+244 8.333333333333336 1.666666666363799 3.33333333333334
+245 1.666666666666667 6.666666666666673 8.333333333977038
+246 6.660817510490984 3.308899115113731 1.666666665774547
+247 1.654752250252084 1.647369711906424 8.333333334285916
+248 4.999063009569526 6.652721859401644 1.666666666093936
+249 3.332783649810387 6.647880017968968 1.666666663788888
+250 6.665620038725993 6.658509429039656 1.666666668317261
+251 3.327552521792197 4.960077554541143 1.666666666840393
+252 4.994211699752948 4.967753460163921 1.666666664460261
+253 1.657367303280127 3.296860342739643 1.666666668796723
+254 6.666666666666669 1.666666666666667 8.333333333147229
+255 3.328382654748142 6.652554439130114 8.333333333112201
+256 6.660255281172845 4.984428228332149 8.333333334767726
+257 4.984536395687214 3.300417587918648 8.333333334171897
+258 3.318113205340548 4.954332937045653 8.333333333260976
+259 6.66314954975507 4.9818223878973 1.666666663569666
+260 4.988690928062234 3.29067435201555 1.66666666570325
+261 8.333333333509339 1.666666666666669 8.333333333333334
+262 8.33333333305475 6.666666666666669 3.333333333333335
+263 1.666666666342064 5.000000000000004 1.666666666666668
+264 1.666666666442073 5.000000000000002 6.666666666666671
+265 1.666666665443769 5.000000000000003 3.333333333333336
+266 1.666666667175607 8.333333333333336 5.000000000000009
+267 8.332050129365591 6.663376582289044 8.333333335684518
+268 6.665602014248813 8.330329358239103 8.333333336219223
+269 8.330220336927585 8.333333336313116 6.66574413541743
+270 1.666666669227914 3.333333333333336 3.333333333333337
+271 1.66666666647693 8.333333333333334 3.333333333333338
+272 1.666666665593287 1.666666666666668 3.333333333333339
+273 1.666666666682165 8.333333333333336 6.666666666666671
+274 1.666666664736838 3.333333333333336 6.666666666666672
+275 1.666666666512763 6.666666666666671 1.666666666666668
+276 1.666666665703179 5.000000000000002 5.000000000000004
+277 1.66666666508942 6.66666666666667 6.666666666666671
+278 3.315494821903588 3.297647072072853 8.333333334818224
+279 4.994701101786632 6.65210674876501 8.333333334142916
+280 6.663199914867223 6.657647619162923 8.33333333638509
+281 6.659225782827993 3.316092216541285 8.333333333457933
+282 4.987511039407003 4.968286404001362 8.333333333944736
+283 1.666666667295926 6.66666666666667 5.000000000000005
+284 1.666666665931434 6.66666666666667 3.333333333333337
+285 8.333333332090127 3.333333333333336 3.333333333333336
+286 8.333333332557867 5.000000000000005 1.666666666666667
+287 8.333333333488655 3.333333333333335 6.666666666666668
+288 8.333333334197583 6.666666666666671 5.000000000000002
+289 8.333333333493361 5.000000000000002 5.000000000000001
+290 3.333333333333338 1.666666665674556 1.666666666666669
+291 8.333333336895505 6.666666666666671 6.666666666666671
+292 8.333333332482416 5.000000000000004 3.333333333333334
+293 6.666666666666671 1.666666666352389 5.000000000000005
+294 6.666666666666671 1.666666666440227 6.666666666666671
+295 5.000000000000007 1.666666666357158 8.333333333333337
+296 6.666666666666671 1.666666666272892 1.666666666666669
+297 3.333333333333337 1.666666666532445 5.000000000000005
+298 5.000000000000004 1.666666666510141 3.333333333333337
+299 3.309384452565365 8.333333332354401 6.657042997900374
+300 5.000000000000004 1.666666666793622 5.000000000000004
+301 3.333333333333337 1.666666666982266 3.333333333333338
+302 5.000000000000005 1.666666666207409 6.666666666666673
+303 3.333333333333337 1.666666665076644 6.666666666666673
+304 8.330955322553296 4.994209773730754 8.333333334605049
+305 6.666666666666671 1.666666666468833 3.333333333333338
+306 6.657485176181039 8.333333336509902 6.663740878468262
+307 3.321612456181299 3.28956546502744 1.666666672133376
+308 3.295797638135218 8.333333333794339 4.985649635590115
+309 4.949980024020644 8.333333333891682 3.319457070219448
+310 3.294533871464136 8.333333334251671 3.318223505788806
+311 4.982930299857913 8.333333334456688 6.660643179951268
+312 6.650956351407793 8.33333333222061 3.328748986374459
+313 4.967118326764401 8.333333333292412 4.989697555718453
+314 8.333333335244987 5.000000000000004 6.666666666666671
+315 8.33333333341346 3.333333333333334 5.000000000000003
+316 1.666666666666668 1.666666666608363 5.000000000000007
+317 3.333333332878007 3.333333333333335 5.000000000000004
+318 6.651883160821606 6.666666667763815 4.995624535831115
+319 6.660817510490984 3.308899115113731 3.333333332721931
+320 4.999063009569526 6.652721859401644 3.333333333072986
+321 3.332783649810387 6.647880017968968 3.333333328779428
+322 6.665620038725993 6.658509429039656 3.333333337361623
+323 3.327552521792197 4.960077554541143 3.333333333873684
+324 4.994211699752948 4.967753460163921 3.333333328506439
+325 3.328382654748142 6.652554439130114 6.666666664866541
+326 6.660255281172845 4.984428228332149 6.66666667009722
+327 4.984536395687214 3.300417587918648 6.666666668492916
+328 3.318113205340548 4.954332937045653 6.666666667163838
+329 6.66314954975507 4.9818223878973 3.333333329931121
+330 4.988690928062234 3.29067435201555 3.333333332935152
+331 3.333333338443495 3.333333333333336 3.333333333333337
+332 3.333333327435466 3.333333333333336 6.666666666666672
+333 3.333333331967363 5.000000000000002 5.000000000000004
+334 4.994701101786632 6.65210674876501 6.666666668637723
+335 6.663199914867223 6.657647619162923 6.666666675932389
+336 6.659225782827993 3.316092216541285 6.666666666199356
+337 4.987511039407003 4.968286404001362 6.666666666839074
+338 3.333333334858404 6.66666666666667 5.000000000000005
+339 6.666666667175118 5.000000000000002 5.000000000000001
+340 6.666666666666671 3.333333333659602 5.000000000000005
+341 5.000000000000004 3.333333334378544 5.000000000000004
+342 4.967118326764401 6.666666666623037 4.989697555718453
+343 4.994211699752948 4.967753460163921 4.999999992719579
+344 2.076392070294159 1.123484468479073 4.016730543756097
+$EndNodes
+$Elements
+520
+1 15 2 0 1 1
+2 15 2 0 2 2
+3 15 2 0 3 3
+4 15 2 0 4 4
+5 15 2 0 5 5
+6 15 2 0 6 6
+7 15 2 0 7 7
+8 15 2 0 8 8
+9 1 2 0 1 1 9
+10 1 2 0 1 9 10
+11 1 2 0 1 10 11
+12 1 2 0 1 11 12
+13 1 2 0 1 12 13
+14 1 2 0 1 13 2
+15 1 2 0 2 1 14
+16 1 2 0 2 14 15
+17 1 2 0 2 15 16
+18 1 2 0 2 16 17
+19 1 2 0 2 17 18
+20 1 2 0 2 18 3
+21 1 2 0 3 3 19
+22 1 2 0 3 19 20
+23 1 2 0 3 20 21
+24 1 2 0 3 21 22
+25 1 2 0 3 22 23
+26 1 2 0 3 23 4
+27 1 2 0 4 2 24
+28 1 2 0 4 24 25
+29 1 2 0 4 25 26
+30 1 2 0 4 26 27
+31 1 2 0 4 27 28
+32 1 2 0 4 28 4
+33 1 2 0 5 5 29
+34 1 2 0 5 29 30
+35 1 2 0 5 30 31
+36 1 2 0 5 31 32
+37 1 2 0 5 32 33
+38 1 2 0 5 33 6
+39 1 2 0 6 5 34
+40 1 2 0 6 34 35
+41 1 2 0 6 35 36
+42 1 2 0 6 36 37
+43 1 2 0 6 37 38
+44 1 2 0 6 38 7
+45 1 2 0 7 7 39
+46 1 2 0 7 39 40
+47 1 2 0 7 40 41
+48 1 2 0 7 41 42
+49 1 2 0 7 42 43
+50 1 2 0 7 43 8
+51 1 2 0 8 6 44
+52 1 2 0 8 44 45
+53 1 2 0 8 45 46
+54 1 2 0 8 46 47
+55 1 2 0 8 47 48
+56 1 2 0 8 48 8
+57 1 2 0 9 1 49
+58 1 2 0 9 49 50
+59 1 2 0 9 50 51
+60 1 2 0 9 51 52
+61 1 2 0 9 52 53
+62 1 2 0 9 53 5
+63 1 2 0 10 2 54
+64 1 2 0 10 54 55
+65 1 2 0 10 55 56
+66 1 2 0 10 56 57
+67 1 2 0 10 57 58
+68 1 2 0 10 58 6
+69 1 2 0 11 3 59
+70 1 2 0 11 59 60
+71 1 2 0 11 60 61
+72 1 2 0 11 61 62
+73 1 2 0 11 62 63
+74 1 2 0 11 63 7
+75 1 2 0 12 4 64
+76 1 2 0 12 64 65
+77 1 2 0 12 65 66
+78 1 2 0 12 66 67
+79 1 2 0 12 67 68
+80 1 2 0 12 68 8
+81 2 2 0 3 130 140 137
+82 2 2 0 3 137 122 130
+83 3 2 0 1 82 90 81 83
+84 3 2 0 1 84 93 92 71
+85 3 2 0 1 85 72 11 10
+86 3 2 0 1 71 86 91 92
+87 3 2 0 1 93 89 75 84
+88 3 2 0 1 72 82 83 85
+89 3 2 0 1 88 82 90 80
+90 3 2 0 1 92 90 80 91
+91 3 2 0 1 92 93 81 90
+92 3 2 0 1 73 87 27 28
+93 3 2 0 1 88 76 72 82
+94 3 2 0 1 85 10 9 77
+95 3 2 0 1 91 86 73 87
+96 3 2 0 1 81 93 89 79
+97 3 2 0 1 76 12 11 72
+98 3 2 0 1 73 28 4 23
+99 3 2 0 1 89 17 18 75
+100 3 2 0 1 87 27 26 69
+101 3 2 0 1 22 23 73 86
+102 3 2 0 1 69 80 91 87
+103 3 2 0 1 74 78 76 88
+104 3 2 0 1 25 74 69 26
+105 3 2 0 1 74 25 24 78
+106 3 2 0 1 69 80 88 74
+107 3 2 0 1 2 13 78 24
+108 3 2 0 1 17 16 79 89
+109 3 2 0 1 22 21 71 86
+110 3 2 0 1 16 15 70 79
+111 3 2 0 1 71 84 20 21
+112 3 2 0 1 13 12 76 78
+113 3 2 0 1 20 19 75 84
+114 3 2 0 1 14 1 9 77
+115 3 2 0 1 14 77 70 15
+116 3 2 0 1 70 83 81 79
+117 3 2 0 1 19 3 18 75
+118 3 2 0 1 70 83 85 77
+119 3 2 0 2 107 116 115 117
+120 3 2 0 2 106 118 113 101
+121 3 2 0 2 104 101 106 100
+122 3 2 0 2 44 105 33 6
+123 3 2 0 2 102 105 99 114
+124 3 2 0 2 30 31 97 110
+125 3 2 0 2 118 113 95 109
+126 3 2 0 2 110 109 108 97
+127 3 2 0 2 115 116 118 106
+128 3 2 0 2 102 114 108 97
+129 3 2 0 2 107 114 108 116
+130 3 2 0 2 102 32 31 97
+131 3 2 0 2 106 115 96 100
+132 3 2 0 2 33 105 102 32
+133 3 2 0 2 103 95 109 110
+134 3 2 0 2 103 110 30 29
+135 3 2 0 2 116 108 109 118
+136 3 2 0 2 104 39 7 38
+137 3 2 0 2 43 98 48 8
+138 3 2 0 2 96 112 117 115
+139 3 2 0 2 112 98 43 42
+140 3 2 0 2 48 98 111 47
+141 3 2 0 2 41 96 100 40
+142 3 2 0 2 40 100 104 39
+143 3 2 0 2 44 45 99 105
+144 3 2 0 2 41 42 112 96
+145 3 2 0 2 98 111 117 112
+146 3 2 0 2 38 37 101 104
+147 3 2 0 2 46 94 99 45
+148 3 2 0 2 29 103 34 5
+149 3 2 0 2 47 46 94 111
+150 3 2 0 2 99 114 107 94
+151 3 2 0 2 107 94 111 117
+152 3 2 0 2 101 113 36 37
+153 3 2 0 2 35 34 103 95
+154 3 2 0 2 36 35 95 113
+155 3 2 0 3 133 141 139 132
+156 3 2 0 3 138 139 137 140
+157 3 2 0 3 132 121 127 133
+158 3 2 0 3 10 130 122 11
+159 3 2 0 3 142 141 135 120
+160 3 2 0 3 58 128 33 6
+161 3 2 0 3 140 138 119 129
+162 3 2 0 3 131 121 31 30
+163 3 2 0 3 132 139 138 143
+164 3 2 0 3 143 131 121 132
+165 3 2 0 3 141 135 124 133
+166 3 2 0 3 137 139 141 142
+167 3 2 0 3 128 124 57 58
+168 3 2 0 3 127 32 31 121
+169 3 2 0 3 122 137 142 134
+170 3 2 0 3 130 10 9 123
+171 3 2 0 3 129 140 130 123
+172 3 2 0 3 133 127 128 124
+173 3 2 0 3 33 128 127 32
+174 3 2 0 3 143 136 125 131
+175 3 2 0 3 125 29 30 131
+176 3 2 0 3 136 143 138 119
+177 3 2 0 3 134 12 11 122
+178 3 2 0 3 29 125 53 5
+179 3 2 0 3 52 53 125 136
+180 3 2 0 3 56 135 124 57
+181 3 2 0 3 120 126 134 142
+182 3 2 0 3 55 120 135 56
+183 3 2 0 3 120 55 54 126
+184 3 2 0 3 52 51 119 136
+185 3 2 0 3 2 54 126 13
+186 3 2 0 3 50 49 123 129
+187 3 2 0 3 50 51 119 129
+188 3 2 0 3 126 134 12 13
+189 3 2 0 3 1 9 123 49
+190 3 2 0 4 149 63 62 162
+191 3 2 0 4 39 149 63 7
+192 3 2 0 4 152 68 8 43
+193 3 2 0 4 150 42 43 152
+194 3 2 0 4 41 40 158 146
+195 3 2 0 4 158 149 39 40
+196 3 2 0 4 151 64 4 23
+197 3 2 0 4 146 41 42 150
+198 3 2 0 4 67 161 152 68
+199 3 2 0 4 167 158 146 155
+200 3 2 0 4 151 144 65 64
+201 3 2 0 4 65 144 153 66
+202 3 2 0 4 67 161 153 66
+203 3 2 0 4 146 150 160 155
+204 3 2 0 4 150 160 161 152
+205 3 2 0 4 153 161 160 166
+206 3 2 0 4 149 162 167 158
+207 3 2 0 4 159 151 23 22
+208 3 2 0 4 62 61 145 162
+209 3 2 0 4 163 154 166 168
+210 3 2 0 4 159 151 144 154
+211 3 2 0 4 154 144 153 166
+212 3 2 0 4 165 164 168 163
+213 3 2 0 4 168 166 160 155
+214 3 2 0 4 162 167 164 145
+215 3 2 0 4 164 168 155 167
+216 3 2 0 4 145 61 60 156
+217 3 2 0 4 145 164 165 156
+218 3 2 0 4 22 21 147 159
+219 3 2 0 4 163 147 157 165
+220 3 2 0 4 165 156 148 157
+221 3 2 0 4 147 21 20 157
+222 3 2 0 4 147 159 154 163
+223 3 2 0 4 20 19 148 157
+224 3 2 0 4 59 148 156 60
+225 3 2 0 4 148 59 3 19
+226 3 2 0 5 63 177 175 62
+227 3 2 0 5 38 7 63 177
+228 3 2 0 5 38 177 180 37
+229 3 2 0 5 5 53 174 34
+230 3 2 0 5 190 180 177 175
+231 3 2 0 5 180 171 36 37
+232 3 2 0 5 35 179 174 34
+233 3 2 0 5 36 35 179 171
+234 3 2 0 5 192 191 189 188
+235 3 2 0 5 192 191 184 186
+236 3 2 0 5 17 18 176 181
+237 3 2 0 5 183 52 53 174
+238 3 2 0 5 188 192 185 190
+239 3 2 0 5 62 175 182 61
+240 3 2 0 5 171 180 190 185
+241 3 2 0 5 175 182 188 190
+242 3 2 0 5 192 186 187 185
+243 3 2 0 5 183 187 179 174
+244 3 2 0 5 171 185 187 179
+245 3 2 0 5 182 170 60 61
+246 3 2 0 5 52 183 169 51
+247 3 2 0 5 184 193 173 178
+248 3 2 0 5 50 49 173 178
+249 3 2 0 5 178 50 51 169
+250 3 2 0 5 169 178 184 186
+251 3 2 0 5 17 181 172 16
+252 3 2 0 5 187 186 169 183
+253 3 2 0 5 16 172 193 15
+254 3 2 0 5 170 189 188 182
+255 3 2 0 5 172 191 184 193
+256 3 2 0 5 176 170 60 59
+257 3 2 0 5 14 1 49 173
+258 3 2 0 5 173 193 15 14
+259 3 2 0 5 191 189 181 172
+260 3 2 0 5 59 176 18 3
+261 3 2 0 5 189 170 176 181
+262 3 2 0 6 200 58 6 44
+263 3 2 0 6 58 200 209 57
+264 3 2 0 6 201 206 27 28
+265 3 2 0 6 68 8 48 202
+266 3 2 0 6 48 47 207 202
+267 3 2 0 6 201 28 4 64
+268 3 2 0 6 200 44 45 205
+269 3 2 0 6 199 67 68 202
+270 3 2 0 6 46 196 205 45
+271 3 2 0 6 47 207 196 46
+272 3 2 0 6 201 194 65 64
+273 3 2 0 6 216 199 202 207
+274 3 2 0 6 65 194 208 66
+275 3 2 0 6 67 66 208 199
+276 3 2 0 6 194 210 215 208
+277 3 2 0 6 216 215 208 199
+278 3 2 0 6 216 207 196 211
+279 3 2 0 6 206 27 26 197
+280 3 2 0 6 214 213 218 212
+281 3 2 0 6 194 201 206 210
+282 3 2 0 6 217 209 200 205
+283 3 2 0 6 217 211 196 205
+284 3 2 0 6 212 217 211 218
+285 3 2 0 6 195 209 57 56
+286 3 2 0 6 206 210 213 197
+287 3 2 0 6 218 211 216 215
+288 3 2 0 6 209 217 212 195
+289 3 2 0 6 213 218 215 210
+290 3 2 0 6 204 195 56 55
+291 3 2 0 6 203 197 26 25
+292 3 2 0 6 203 198 24 25
+293 3 2 0 6 204 214 212 195
+294 3 2 0 6 204 55 54 198
+295 3 2 0 6 2 54 198 24
+296 3 2 0 6 203 197 213 214
+297 3 2 0 6 204 198 203 214
+298 4 2 0 1 137 130 122 297
+299 4 2 0 1 122 316 297 344
+300 4 2 0 1 297 301 130 344
+301 4 2 0 1 130 301 272 344
+302 4 2 0 1 130 122 297 344
+303 5 2 0 1 314 291 117 107 289 288 115 116
+304 5 2 0 1 262 219 101 106 292 286 113 118
+305 5 2 0 1 82 90 276 226 83 81 265 270
+306 5 2 0 1 271 84 93 284 266 71 92 283
+307 5 2 0 1 294 293 132 133 302 300 139 141
+308 5 2 0 1 298 300 297 301 138 139 137 140
+309 5 2 0 1 132 293 294 133 121 221 223 127
+310 5 2 0 1 85 272 316 72 10 130 122 11
+311 5 2 0 1 230 104 100 224 219 101 106 262
+312 5 2 0 1 71 266 273 86 92 283 277 91
+313 5 2 0 1 284 271 228 275 93 84 75 89
+314 5 2 0 1 272 316 297 301 270 226 317 331
+315 5 2 0 1 316 72 82 226 272 85 83 270
+316 5 2 0 1 303 302 295 220 142 141 135 120
+317 5 2 0 1 200 44 6 58 261 105 33 128
+318 5 2 0 1 274 264 276 226 88 80 90 82
+319 5 2 0 1 102 114 287 223 105 99 242 261
+320 5 2 0 1 301 140 129 290 298 138 119 222
+321 5 2 0 1 131 30 110 244 121 31 97 221
+322 5 2 0 1 132 293 305 143 139 300 298 138
+323 5 2 0 1 118 109 285 292 113 95 239 286
+324 5 2 0 1 305 293 132 143 244 221 121 131
+325 5 2 0 1 283 92 90 276 277 91 80 264
+326 5 2 0 1 110 244 221 97 109 285 315 108
+327 5 2 0 1 288 289 292 262 115 116 118 106
+328 5 2 0 1 332 317 297 303 274 226 316 229
+329 5 2 0 1 102 114 108 97 223 287 315 221
+330 5 2 0 1 141 135 124 133 302 295 254 294
+331 5 2 0 1 297 303 142 137 300 302 141 139
+332 5 2 0 1 128 58 200 261 124 57 209 254
+333 5 2 0 1 107 314 289 116 114 287 315 108
+334 5 2 0 1 223 127 121 221 102 32 31 97
+335 5 2 0 1 122 316 229 134 137 297 303 142
+336 5 2 0 1 92 90 81 93 283 276 265 284
+337 5 2 0 1 106 115 96 100 262 288 240 224
+338 5 2 0 1 225 73 87 245 201 28 27 206
+339 5 2 0 1 274 226 316 229 88 82 72 76
+340 5 2 0 1 272 231 123 130 85 77 9 10
+341 5 2 0 1 277 245 225 273 91 87 73 86
+342 5 2 0 1 290 301 272 231 129 140 130 123
+343 5 2 0 1 294 223 261 254 133 127 128 124
+344 5 2 0 1 33 105 102 32 128 261 223 127
+345 5 2 0 1 305 244 131 143 296 236 125 136
+346 5 2 0 1 236 244 110 103 239 285 109 95
+347 5 2 0 1 236 244 131 125 103 110 30 29
+348 5 2 0 1 296 305 298 222 136 143 138 119
+349 5 2 0 1 289 315 285 292 116 108 109 118
+350 5 2 0 1 81 93 284 265 79 89 275 263
+351 5 2 0 1 229 316 122 134 76 72 11 12
+352 5 2 0 1 149 162 62 63 230 232 175 177
+353 5 2 0 1 104 38 177 230 39 7 63 149
+354 5 2 0 1 152 43 8 68 235 98 48 202
+355 5 2 0 1 96 240 288 115 112 269 291 117
+356 5 2 0 1 269 112 42 150 235 98 43 152
+357 5 2 0 1 48 98 111 47 202 235 267 207
+358 5 2 0 1 41 146 158 40 96 240 224 100
+359 5 2 0 1 158 224 230 149 40 100 104 39
+360 5 2 0 1 225 73 28 201 151 23 4 64
+361 5 2 0 1 200 44 105 261 205 45 99 242
+362 5 2 0 1 146 240 96 41 150 269 112 42
+363 5 2 0 1 98 235 269 112 111 267 291 117
+364 5 2 0 1 199 268 161 67 202 235 152 68
+365 5 2 0 1 38 37 101 104 177 180 219 230
+366 5 2 0 1 46 45 205 196 94 99 242 304
+367 5 2 0 1 312 238 240 224 167 155 146 158
+368 5 2 0 1 29 103 34 5 125 236 174 53
+369 5 2 0 1 47 207 267 111 46 196 304 94
+370 5 2 0 1 242 287 314 304 99 114 107 94
+371 5 2 0 1 225 201 194 237 151 64 65 144
+372 5 2 0 1 280 267 235 268 216 207 202 199
+373 5 2 0 1 65 194 237 144 66 208 241 153
+374 5 2 0 1 67 66 153 161 199 208 241 268
+375 5 2 0 1 250 190 175 232 219 180 177 230
+376 5 2 0 1 107 94 111 117 314 304 267 291
+377 5 2 0 1 146 240 269 150 155 238 306 160
+378 5 2 0 1 237 194 210 255 241 208 215 279
+379 5 2 0 1 280 268 241 279 216 199 208 215
+380 5 2 0 1 269 150 160 306 235 152 161 268
+381 5 2 0 1 219 180 37 101 286 171 36 113
+382 5 2 0 1 35 34 103 95 179 174 236 239
+383 5 2 0 1 260 330 298 222 246 319 305 296
+384 5 2 0 1 36 113 286 171 35 95 239 179
+385 5 2 0 1 280 256 304 267 216 211 196 207
+386 5 2 0 1 323 324 252 251 321 320 248 249
+387 5 2 0 1 192 252 248 188 191 251 249 189
+388 5 2 0 1 268 280 335 306 235 267 291 269
+389 5 2 0 1 192 186 260 252 191 184 307 251
+390 5 2 0 1 153 161 268 241 166 160 306 311
+391 5 2 0 1 294 254 281 336 302 295 257 327
+392 5 2 0 1 149 158 167 162 230 224 312 232
+393 5 2 0 1 89 275 181 17 75 228 176 18
+394 5 2 0 1 312 322 262 224 238 318 288 240
+395 5 2 0 1 183 174 236 296 52 53 125 136
+396 5 2 0 1 245 206 27 87 233 197 26 69
+397 5 2 0 1 214 278 258 213 212 257 282 218
+398 5 2 0 1 194 201 225 237 210 206 245 255
+399 5 2 0 1 294 254 261 223 336 281 242 287
+400 5 2 0 1 159 273 225 151 22 86 73 23
+401 5 2 0 1 217 205 200 209 281 242 261 254
+402 5 2 0 1 288 291 269 240 318 335 306 238
+403 5 2 0 1 281 242 304 256 217 205 196 211
+404 5 2 0 1 242 287 336 281 304 314 326 256
+405 5 2 0 1 314 326 256 304 291 335 280 267
+406 5 2 0 1 312 322 250 232 224 262 219 230
+407 5 2 0 1 188 190 250 248 192 185 259 252
+408 5 2 0 1 252 324 329 259 248 320 322 250
+409 5 2 0 1 337 326 256 282 327 336 281 257
+410 5 2 0 1 212 218 211 217 257 282 256 281
+411 5 2 0 1 62 162 145 61 175 232 243 182
+412 5 2 0 1 311 306 268 241 334 335 280 279
+413 5 2 0 1 195 295 254 209 56 135 124 57
+414 5 2 0 1 163 154 299 308 168 166 311 313
+415 5 2 0 1 159 154 144 151 273 299 237 225
+416 5 2 0 1 154 166 153 144 299 311 241 237
+417 5 2 0 1 286 171 185 259 219 180 190 250
+418 5 2 0 1 322 250 219 262 329 259 286 292
+419 5 2 0 1 233 264 80 69 245 277 91 87
+420 5 2 0 1 221 223 287 315 293 294 336 340
+421 5 2 0 1 165 310 309 164 163 308 313 168
+422 5 2 0 1 313 168 166 311 238 155 160 306
+423 5 2 0 1 206 245 255 210 197 233 258 213
+424 5 2 0 1 175 182 188 190 232 243 248 250
+425 5 2 0 1 282 218 211 256 279 215 216 280
+426 5 2 0 1 337 282 256 326 334 279 280 335
+427 5 2 0 1 252 192 185 259 260 186 187 246
+428 5 2 0 1 246 260 330 319 259 252 324 329
+429 5 2 0 1 254 209 217 281 295 195 212 257
+430 5 2 0 1 220 247 229 303 120 126 134 142
+431 5 2 0 1 74 227 247 78 88 274 229 76
+432 5 2 0 1 279 334 337 282 255 325 328 258
+433 5 2 0 1 213 210 215 218 258 255 279 282
+434 5 2 0 1 319 285 244 305 246 239 236 296
+435 5 2 0 1 232 312 167 162 243 309 164 145
+436 5 2 0 1 291 314 326 335 288 289 339 318
+437 5 2 0 1 204 220 295 195 55 120 135 56
+438 5 2 0 1 183 296 236 174 187 246 239 179
+439 5 2 0 1 326 339 289 314 336 340 315 287
+440 5 2 0 1 164 167 155 168 309 312 238 313
+441 5 2 0 1 286 171 179 239 259 185 187 246
+442 5 2 0 1 329 319 246 259 292 285 239 286
+443 5 2 0 1 329 322 318 339 292 262 288 289
+444 5 2 0 1 311 334 279 241 299 325 255 237
+445 5 2 0 1 203 197 233 227 25 26 69 74
+446 5 2 0 1 243 145 61 182 234 156 60 170
+447 5 2 0 1 227 247 198 203 74 78 24 25
+448 5 2 0 1 145 243 309 164 156 234 310 165
+449 5 2 0 1 69 74 88 80 233 227 274 264
+450 5 2 0 1 220 278 214 204 295 257 212 195
+451 5 2 0 1 221 244 305 293 315 285 319 340
+452 5 2 0 1 220 247 126 120 204 198 54 55
+453 5 2 0 1 52 51 119 136 183 169 222 296
+454 5 2 0 1 2 54 126 13 24 198 247 78
+455 5 2 0 1 184 193 173 178 307 253 231 290
+456 5 2 0 1 50 129 290 178 49 123 231 173
+457 5 2 0 1 178 169 222 290 50 51 119 129
+458 5 2 0 1 222 290 307 260 169 178 184 186
+459 5 2 0 1 17 89 79 16 181 275 263 172
+460 5 2 0 1 246 187 183 296 260 186 169 222
+461 5 2 0 1 245 255 325 277 225 237 299 273
+462 5 2 0 1 22 86 71 21 159 273 266 147
+463 5 2 0 1 311 306 335 334 313 238 318 342
+464 5 2 0 1 300 302 294 293 341 327 336 340
+465 5 2 0 1 329 292 289 339 319 285 315 340
+466 5 2 0 1 16 79 70 15 172 263 253 193
+467 5 2 0 1 234 170 182 243 249 189 188 248
+468 5 2 0 1 339 343 342 318 329 324 320 322
+469 5 2 0 1 163 308 266 147 165 310 271 157
+470 5 2 0 1 165 157 148 156 310 271 228 234
+471 5 2 0 1 266 271 84 71 147 157 20 21
+472 5 2 0 1 147 159 273 266 163 154 299 308
+473 5 2 0 1 126 134 12 13 247 229 76 78
+474 5 2 0 1 263 251 307 253 172 191 184 193
+475 5 2 0 1 263 275 284 265 251 249 321 323
+476 5 2 0 1 20 84 75 19 157 271 228 148
+477 5 2 0 1 340 341 327 336 339 343 337 326
+478 5 2 0 1 176 59 148 228 170 60 156 234
+479 5 2 0 1 14 1 49 173 77 9 123 231
+480 5 2 0 1 341 330 319 340 300 298 305 293
+481 5 2 0 1 331 270 265 323 307 253 263 251
+482 5 2 0 1 173 14 77 231 193 15 70 253
+483 5 2 0 1 253 70 83 270 263 79 81 265
+484 5 2 0 1 251 191 172 263 249 189 181 275
+485 5 2 0 1 283 266 273 277 338 308 299 325
+486 5 2 0 1 148 19 3 59 228 75 18 176
+487 5 2 0 1 339 318 342 343 326 335 334 337
+488 5 2 0 1 331 307 290 301 270 253 231 272
+489 5 2 0 1 227 233 197 203 278 258 213 214
+490 5 2 0 1 264 233 258 328 277 245 255 325
+491 5 2 0 1 342 313 308 338 334 311 299 325
+492 5 2 0 1 340 319 330 341 339 329 324 343
+493 5 2 0 1 249 189 181 275 234 170 176 228
+494 5 2 0 1 220 303 332 278 295 302 327 257
+495 5 2 0 1 284 321 338 283 265 323 333 276
+496 5 2 0 1 220 278 227 247 204 214 203 198
+497 5 2 0 1 320 309 310 321 342 313 308 338
+498 5 2 0 1 312 232 250 322 309 243 248 320
+499 5 2 0 1 338 283 266 308 321 284 271 310
+500 5 2 0 1 309 312 238 313 320 322 318 342
+501 5 2 0 1 343 324 330 341 333 323 331 317
+502 5 2 0 1 337 328 333 343 327 332 317 341
+503 5 2 0 1 249 321 310 234 275 284 271 228
+504 5 2 0 1 320 321 310 309 248 249 234 243
+505 5 2 0 1 70 253 270 83 77 231 272 85
+506 5 2 0 1 323 324 320 321 333 343 342 338
+507 5 2 0 1 328 264 277 325 333 276 283 338
+508 5 2 0 1 338 333 343 342 325 328 337 334
+509 5 2 0 1 341 300 302 327 317 297 303 332
+510 5 2 0 1 226 317 331 270 276 333 323 265
+511 5 2 0 1 264 328 258 233 274 332 278 227
+512 5 2 0 1 290 307 331 301 222 260 330 298
+513 5 2 0 1 328 258 278 332 337 282 257 327
+514 5 2 0 1 252 251 307 260 324 323 331 330
+515 5 2 0 1 229 247 220 303 274 227 278 332
+516 5 2 0 1 341 300 297 317 330 298 301 331
+517 5 2 0 1 226 276 264 274 317 333 328 332
+518 7 2 0 1 137 297 301 140 130
+519 7 2 0 1 272 316 122 130 344
+520 7 2 0 1 297 316 272 301 344
+$EndElements
diff --git a/test/test_meshmode.py b/test/test_meshmode.py
index 01e6c35cd95cd5d87270d43962d57bd25b605514..6195e78706e124c550877ebff5ffb8fc67f81786 100644
--- a/test/test_meshmode.py
+++ b/test/test_meshmode.py
@@ -802,9 +802,9 @@ def test_nd_quad_submesh(dims):
 # }}}
 
 
-# {{{ test_quad_mesh
+# {{{ test_quad_mesh_2d
 
-def test_quad_mesh():
+def test_quad_mesh_2d():
     from meshmode.mesh.io import generate_gmsh, ScriptWithFilesSource
     print("BEGIN GEN")
     mesh = generate_gmsh(
@@ -825,6 +825,38 @@ def test_quad_mesh():
 # }}}
 
 
+# {{{ test_quad_mesh_3d
+
+# This currently (gmsh 2.13.2) crashes gmsh. A massaged version of this using
+# 'cube.step' succeeded in generating 'hybrid-cube.msh' and 'cubed-cube.msh'.
+def no_test_quad_mesh_3d():
+    from meshmode.mesh.io import generate_gmsh, ScriptWithFilesSource
+    print("BEGIN GEN")
+    mesh = generate_gmsh(
+            ScriptWithFilesSource(
+                """
+                Merge "ball-radius-1.step";
+                // Mesh.CharacteristicLengthMax = 0.1;
+
+                Mesh.RecombineAll=1;
+                Mesh.Recombine3DAll=1;
+                Mesh.Algorithm = 8;
+                Mesh.Algorithm3D = 9;
+                // Mesh.Smoothing = 0;
+
+                // Mesh.ElementOrder = 3;
+
+                Mesh 3;
+                Save "output.msh";
+                """,
+                ["ball-radius-1.step"]),
+            )
+    print("END GEN")
+    print(mesh.nelements)
+
+# }}}
+
+
 if __name__ == "__main__":
     import sys
     if len(sys.argv) > 1: