diff --git a/benchmarks/2d/nested_tramsforms.geo b/benchmarks/2d/nested_tramsforms.geo
new file mode 100644
index 0000000000000000000000000000000000000000..999bcd1980ce36400248d3bbda6b860e19524762
--- /dev/null
+++ b/benchmarks/2d/nested_tramsforms.geo
@@ -0,0 +1,45 @@
+a = 0.004;
+b = 0.002;
+lc = 0.001;
+Point(1) = { 0, 0, 0, lc };
+Point(100) = { a, 0, 0, lc };
+Point(101) = { 0, b, 0, lc };
+Point(102) = {-a, 0, 0, lc };
+Point(103) = { 0,-b, 0, lc };
+
+Ellipse(100) = { 100, 1, 100, 101 };
+Ellipse(101) = { 101, 1, 102, 102 };
+Ellipse(102) = { 102, 1, 102, 103 };
+Ellipse(103) = { 103, 1, 100, 100 };
+
+Line Loop(4) = { 100, 101, 102, 103 };
+Plane Surface(4) = { 4 };
+
+to_rad = 3.141592654/180;
+
+/* this does not work. The problem is due to the automatic removal of
+   duplicate entities that is performed by default after each
+   transformation. 
+
+   The ellipse center for the duplicate curve is the same as for the
+   original one. After the rotation the automatic duplicate removal
+   leaves only one. The translation moves it, which completely borks
+   the first ellipse! */
+/*
+Translate { -0.01, 0.01, 0 } { 
+  Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad } { 
+    Duplicata { Surface {4}; } 
+  }
+}
+*/
+
+// this is fixes it, but is a bit ugly:
+
+Geometry.AutoCoherence = 0;
+Translate { -0.01, 0.01, 0 } { 
+  Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad } { 
+    Duplicata { Surface {4}; } 
+  }
+}
+Coherence;
+Geometry.AutoCoherence = 1;
diff --git a/benchmarks/bugs/transfo_neg_curves.geo b/benchmarks/2d/transfo_neg_curves.geo
similarity index 100%
rename from benchmarks/bugs/transfo_neg_curves.geo
rename to benchmarks/2d/transfo_neg_curves.geo
diff --git a/benchmarks/3d/durufle.geo b/benchmarks/3d/durufle.geo
new file mode 100644
index 0000000000000000000000000000000000000000..ddd8ec7e34f1b36b10c77f27cefce56fde0cfb5b
--- /dev/null
+++ b/benchmarks/3d/durufle.geo
@@ -0,0 +1,51 @@
+// fails only for lc=0.55 - otherwise works great!
+lc = 0.55;
+r = 2.0;
+e = 0.8;
+rb = r+e;
+teta = 15.0*Pi/180.0;
+d = 1.0;
+L = r/Sin(teta);
+L2 = (rb+d)/Sin(teta);
+rc = rb+d;
+// generatrice
+Point(1) = {0, L, 0, lc};
+Point(2) = {r*Cos(teta), r*Sin(teta), 0, lc};
+Point(3) = {0, -r, 0, lc};
+Point(4) = {0, 0, 0, lc};
+Point(5) = {0, -rb, 0,lc};
+Point(6) = {rb*Cos(teta), rb*Sin(teta), 0,lc};
+Point(7) = {e*Cos(teta), L+e*Sin(teta), 0, lc};
+Point(8) = {0, L+e, 0, lc};
+Point(9) = {0, L2, 0, lc};
+Point(10) = {rc*Cos(teta), rc*Sin(teta), 0, lc};
+Point(11) = {0, -rc, 0, lc};
+
+Line(1) = {6, 7};
+Circle(2) = {7, 1, 8};
+Line(3) = {8, 1};
+Line(4) = {2, 1};
+Circle(5) = {3, 4, 2};
+Line(6) = {3, 5};
+Circle(7) = {5, 4, 6};
+Line(8) = {10,9};
+Line(9) = {9,8};
+Line(10) = {5,11};
+Circle(11) = {11,4,10};
+
+Line Loop(1) = {1, 2, 3, -4, -5, 6, 7};
+Line Loop(2) = {8, 9, -2, -1, -7, 10, 11};
+Plane Surface(1) = {1};
+Plane Surface(2) = {2};
+Extrude Surface {1, {0.0,1.0,0.0}, {0.0,0.0,0.0},
+2*Pi/3};
+Extrude Surface {38, {0.0,1.0,0.0}, {0.0,0.0,0.0},
+2*Pi/3};
+Extrude Surface {65, {0.0,1.0,0.0}, {0.0,0.0,0.0},
+2*Pi/3};
+Extrude Surface {2, {0.0,1.0,0.0}, {0.0,0.0,0.0},
+2*Pi/3};
+Extrude Surface {118, {0.0,1.0,0.0}, {0.0,0.0,0.0},
+2*Pi/3};
+Extrude Surface {145, {0.0,1.0,0.0}, {0.0,0.0,0.0},
+2*Pi/3};
diff --git a/benchmarks/3d/warning_half_circle.geo b/benchmarks/3d/warning_half_circle.geo
new file mode 100644
index 0000000000000000000000000000000000000000..a42a3fe8cb5a67f71075833a15c6677c0644b37a
--- /dev/null
+++ b/benchmarks/3d/warning_half_circle.geo
@@ -0,0 +1,13 @@
+Point(1) = {0.0,0.0,0.0,.08};
+Point(2) = {-.5,0.0,0.0,.08};
+Point(3) = {.5,0.0,0.0,.08};
+Point(4) = {.5,-.5,0.0,.08};
+Point(5) = {-.5,-.5,0.0,.08};
+Circle(1) = {3,1,2} Plane {0,0,1};
+Line(2) = {3,4};
+Line(3) = {4,5};
+Line(4) = {5,2};
+Line Loop(5) = {3,4,-1,2};
+Plane Surface(6) = {5};
+Extrude Surface {6, {0,0,.5}};
+Coherence;
diff --git a/benchmarks/bugs/bug_1element.geo b/benchmarks/bugs/bug_1element.geo
deleted file mode 100644
index ee183c0e7c6e3b1ea9d2400169c6ee73a7924331..0000000000000000000000000000000000000000
--- a/benchmarks/bugs/bug_1element.geo
+++ /dev/null
@@ -1,153 +0,0 @@
-maille=100;
-Point(1)={0,0,24.5,maille};
-Point(2)={0,0,-24.5,maille};
-Point(3)={0,24.5,0,maille};
-Point(4)={0,-24.5,0,maille};
-Point(5)={0,0,0,maille};
-Point(6)={100,-42.5,17.5,maille};
-Point(7)={100,42.5,17.5,maille};
-Point(8)={100,42.5,-17.5,maille};
-Point(9)={100,-42.5,-17.5,maille};
-Circle(1) = {1,5,3};
-Circle(2) = {3,5,2};
-Circle(3) = {2,5,4};
-Circle(4) = {4,5,1};
-Line(5) = {6,7};
-Line(6) = {7,8};
-Line(7) = {8,9};
-Line(8) = {9,6};
-Line(9) = {1,7};
-Line(10) = {1,6};
-Line(11) = {3,7};
-Line(12) = {3,8};
-Line(13) = {2,8};
-Line(14) = {2,9};
-Line(15) = {4,9};
-Line(16) = {4,6};
-Line Loop(17) = {5,-9,10};
-Plane Surface(18) = {17};
-Line Loop(19) = {11,6,-12};
-Plane Surface(20) = {19};
-Line Loop(21) = {13,7,-14};
-Plane Surface(22) = {21};
-Line Loop(23) = {16,-8,-15};
-Plane Surface(24) = {23};
-Line Loop(25) = {7,8,5,6};
-Line Loop(27) = {1,2,3,4};
-Plane Surface(28) = {27};
-Line Loop(29) = {9,-11,-1};
-Ruled Surface(30) = {29};
-Line Loop(31) = {12,-13,-2};
-Ruled Surface(32) = {31};
-Line Loop(33) = {14,-15,-3};
-Ruled Surface(34) = {33};
-Line Loop(35) = {16,-10,-4};
-Ruled Surface(36) = {35};
-Point(37)={420,-95,17.5,maille};
-Point(38)={420,95,17.5,maille};
-Point(39)={420,95,-17.5,maille};
-Point(40)={420,-95,-17.5,maille};
-Line(37) = {37,38};
-Line(38) = {38,39};
-Line(39) = {39,40};
-Line(40) = {40,37};
-Line(41) = {6,37};
-Line(42) = {7,38};
-Line(43) = {8,39};
-Line(44) = {9,40};
-Line Loop(45) = {37,-42,-5,41};
-Plane Surface(46) = {45};
-Line Loop(47) = {41,-40,-44,8};
-Plane Surface(48) = {47};
-Line Loop(49) = {42,38,-43,-6};
-Plane Surface(50) = {49};
-Line Loop(51) = {44,-39,-43,7};
-Plane Surface(52) = {51};
-Line Loop(53) = {37,38,39,40};
-Point(55)={720,-150,110,5};
-Point(56)={720,150,110,5};
-Point(57)={720,150,-110,5};
-Point(58)={720,-150,-110,5};
-Line(55) = {55,56};
-Line(56) = {56,57};
-Line(57) = {57,58};
-Line(58) = {58,55};
-Line(59) = {37,55};
-Line(60) = {38,56};
-Line(61) = {39,57};
-Line(62) = {40,58};
-Line Loop(63) = {59,-58,-62,40};
-Plane Surface(64) = {63};
-Line Loop(65) = {59,55,-60,-37};
-Plane Surface(66) = {65};
-Line Loop(67) = {62,-57,-61,39};
-Plane Surface(68) = {67};
-Line Loop(69) = {60,56,-61,-38};
-Plane Surface(70) = {69};
-Line Loop(71) = {55,56,57,58};
-Point(73)={880,-210,150,maille};
-Point(74)={880,210,150,maille};
-Point(75)={880,210,-150,maille};
-Point(76)={880,-210,-150,maille};
-Line(73) = {73,74};
-Line(74) = {74,75};
-Line(75) = {75,76};
-Line(76) = {76,73};
-Line(77) = {55,73};
-Line(78) = {56,74};
-Line(79) = {57,75};
-Line(80) = {58,76};
-Line Loop(81) = {77,73,-78,-55};
-Plane Surface(82) = {81};
-Line Loop(83) = {78,74,-79,-56};
-Plane Surface(84) = {83};
-Line Loop(85) = {79,75,-80,-57};
-Plane Surface(86) = {85};
-Line Loop(87) = {80,76,-77,-58};
-Plane Surface(88) = {87};
-Line Loop(89) = {73,74,75,76};
-Point(91)={1220,-330,290,maille};
-Point(92)={1220,330,290,maille};
-Point(93)={1220,330,-290,maille};
-Point(94)={1220,-330,-290,maille};
-Line(91) = {91,92};
-Line(92) = {92,93};
-Line(93) = {93,94};
-Line(94) = {94,91};
-Line(95) = {73,91};
-Line(96) = {76,94};
-Line(97) = {75,93};
-Line(98) = {74,92};
-Line Loop(99) = {95,91,-98,-73};
-Plane Surface(100) = {99};
-Line Loop(101) = {95,-94,-96,76};
-Plane Surface(102) = {101};
-Line Loop(103) = {96,-93,-97,75};
-Plane Surface(104) = {103};
-Line Loop(105) = {98,92,-97,-74};
-Plane Surface(106) = {105};
-Line Loop(107) = {91,92,93,94};
-Point(109)={1360,-390,380,maille};
-Point(110)={1360,390,380,maille};
-Point(111)={1360,390,-380,maille};
-Point(112)={1360,-390,-380,maille};
-Line(109) = {109,110};
-Line(110) = {110,111};
-Line(111) = {111,112};
-Line(112) = {112,109};
-Line(113) = {91,109};
-Line(114) = {92,110};
-Line(115) = {93,111};
-Line(116) = {94,112};
-Line Loop(117) = {109,-114,-91,113};
-Plane Surface(118) = {117};
-Line Loop(119) = {113,-112,-116,94};
-Plane Surface(120) = {119};
-Line Loop(121) = {116,-111,-115,93};
-Plane Surface(122) = {121};
-Line Loop(123) = {114,110,-115,-92};
-Plane Surface(124) = {123};
-Line Loop(125) = {110,111,112,109};
-Plane Surface(126) = {125};
-Surface Loop(127) = {126,-124,-118,-100,102,120,122,104,-106,-84,-82,-88,-86,68,64,-66,-70,-50,-46,-18,-30,-20,-32,-22,52,48,24,-36,-28,-34};
-Volume(128) = {127};
diff --git a/benchmarks/bugs/disk.geo b/benchmarks/bugs/disk.geo
deleted file mode 100644
index b7ec0322aa1c30f542e524a1a2d75848ed17ab54..0000000000000000000000000000000000000000
--- a/benchmarks/bugs/disk.geo
+++ /dev/null
@@ -1,45 +0,0 @@
-
-// proj. problem with angle=pi/2
-
-angle=Pi/2;
-
-mpi     = 0.0254;
-
-dia1    = 3.50 * mpi;
-rad1    = dia1 / 2.0;
-
-dia2    = 75.00 * mpi;
-rad2    = dia2 / 2.0;
-
-thick   = 1.0 * mpi;
-length1 = 1.5 * dia1;
-
-x0      = 0.0;
-y0      = 0.0;
-z0      = 0.0;
-
-y1  = y0 - 0.50 * length1 ;
-yr1 = y1 - 0.25 * length1 ;
-
-y2  = y1 + length1;
-yr2 = y2 + 0.25 * length1;
-
-lcart1  = 0.05 * rad1;
-// lcart2  = 0.100 * rad2;
-// lcart2  = 0.050 * rad2;
-lcart2  = 0.025 * rad2;
-
-Printf ( " %f %f ", lcart1, lcart2 );
-
-p01 = newp; Point(p01) = { x0 + rad1,  yr1,   z0, lcart1};
-p02 = newp; Point(p02) = { x0 + rad2,  yr1,   z0, lcart2};
-p03 = newp; Point(p03) = { x0 + rad2,  yr2,   z0, lcart2};
-p04 = newp; Point(p04) = { x0 + rad1,  yr2,   z0, lcart1};
-
-l01  = newreg; Line (l01) = { p01, p02 };
-l02  = newreg; Line (l02) = { p02, p03 };
-l03  = newreg; Line (l03) = { p03, p04 };
-l04  = newreg; Line (l04) = { p01, p04 };
-
-a1 = newreg; s1 = newreg; Line Loop ( a1 ) = { l01, l02, l03, -l04 } ;  Plane Surface ( s1 ) = { a1 };
-s11[] = Extrude Surface { s1, { 0, 1, 0 }, { 0.0, 0.0, 0.0 }, -angle  }; ;
diff --git a/benchmarks/bugs/nested_tramsforms.geo b/benchmarks/bugs/nested_tramsforms.geo
deleted file mode 100644
index ea4677c43fb776267f83e93b6acd710d822d57fd..0000000000000000000000000000000000000000
--- a/benchmarks/bugs/nested_tramsforms.geo
+++ /dev/null
@@ -1,59 +0,0 @@
-a = 0.004;
-b = 0.002;
-lc = 0.001;
-Point(1) = { 0, 0, 0, lc };
-Point(100) = { a, 0, 0, lc };
-Point(101) = { 0, b, 0, lc };
-Point(102) = {-a, 0, 0, lc };
-Point(103) = { 0,-b, 0, lc };
-
-Ellipse(100) = { 100, 1, 100, 101 };
-Ellipse(101) = { 101, 1, 102, 102 };
-Ellipse(102) = { 102, 1, 102, 103 };
-Ellipse(103) = { 103, 1, 100, 100 };
-/*
-Line(100) = { 100, 101 };
-Line(101) = { 101, 102 };
-Line(102) = { 102, 103 };
-Line(103) = { 103, 100 };
-*/
-Line Loop(4) = { 100, 101, 102, 103 };
-Plane Surface(4) = { 4 };
-
-to_rad = 3.141592654/180;
-
-// this is OK
-/*
-Geometry.AutoCoherence = 0;
-Translate { -0.01, 0.01, 0 } 
-{ 
-  Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad } 
-  { 
-    Duplicata { Surface {4}; } 
-  }
-}
-Coherence;
-*/
-
-// this does not work
-/*
-Translate { -0.01, 0.01, 0 } 
-{ 
-  Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad } 
-  { 
-    Duplicata { Surface {4}; } 
-  }
-}
-*/
-
-// this works with lines, but not with ellipses!!!!
-
-Rotate { {0, 0, 1}, {0, 0, 0}, 120*to_rad } 
-{ 
-  Duplicata { Surface {4}; } 
-}
-
-Translate { -0.01, 0.01, 0 } 
-{ 
-  Surface{104};
-}
diff --git a/benchmarks/bugs/p19-bug.geo b/benchmarks/bugs/p19-bug.geo
deleted file mode 100644
index 0f430b2726870814a88eaa68439608ae8e9b56cd..0000000000000000000000000000000000000000
--- a/benchmarks/bugs/p19-bug.geo
+++ /dev/null
@@ -1,109 +0,0 @@
-
-Mesh.CharacteristicLengthFactor = 2;
-
-fact     = 0.4 ;
-rondelle = fact * 0.01;
-iris     = fact * 0.004;
-size     = fact * 0.01;
-
-larg = 86.36e-3 / 2.0 ;
-long = 45.0e-3 ;
-l    = 16.e-3 / 2.0 ;
-re   = 90.e-3 / 2.0 ;
-re2  = re + 3.e-3 ;
-ri   = 8.e-3 / 2.0 ;
-ll   = 60.0e-3 / 2.0;
-a    = larg - ll;
-c45  = 0.5^0.5  ;
-
-hg   = 21.59e-3 ;
-hcav = 42.5e-3 ;
-
-x2   = long;
-y1   = ri * c45;
-y2   = ri ;
-y3   = l ;
-ss1  = l / re ;
-xtemp = re * ( ( 1.0 - ss1 * ss1 ) ^ 0.5 ) ;
-ss2  = ( 1.0 - ( xtemp / re2 ) * ( xtemp / re2 ) ) ^ 0.5 ;
-y4   = ss2 * xtemp ;
-ss3  = ll / re2;
-xtemp2 = re2 *  ( ( 1.0 - ss3 * ss3 ) ^ 0.5 ) ;
-x1   = long - ( xtemp - xtemp2 ) ;
-x6   = x1 + xtemp ;
-x3   = x6 - re * c45 ;
-x4   = x6 - ri ;
-x5   = x6 - ri * c45 ;
-x7   = x6 + ri * c45 ;
-x8   = x6 + ri ;
-x9   = x6 + re * c45 ;
-x10  = x6 + re ;
-y5   = ll ;
-y6   = re * c45 ;
-y7   = re ;
-y8   = larg ;
-
-
-Point(1) = {0.0,0.0,0.0,size};
-Point(2) = {0.0,y8,0.0,size};
-Point(3) = {x2,y8,0.0,size};
-Point(4) = {x2,y5,0.0,size};
-Point(5) = {x1,y4,0.0,size};
-Point(6) = {x1,y3,0.0,iris};
-Point(7) = {x1,0.0,0.0,iris};
-Point(8) = {x3,y6,0.0,size};
-Point(9) = {x6,y7,0.0,size};
-Point(10) = {x9,y6,0.0,size};
-Point(11) = {x10,0.0,0.0,size};
-Point(12) = {x8,0.0,0.0,rondelle};
-Point(13) = {x6,0.0,0.0,rondelle};
-Point(14) = {x4,0.0,0.0,rondelle};
-Point(15) = {x7,y1,0.0,rondelle};
-Point(16) = {x6,y2,0.0,rondelle};
-Point(17) = {x5,y1,0.0,rondelle};
-
-Line(1) = {1,2};
-Line(2) = {2,3};
-Line(3) = {3,4};
-Line(4) = {5,6};
-Line(5) = {1,7};
-Line(6) = {7,14};
-Line(10) = {6,7};
-Line(11) = {14,13};
-Line(12) = {13,12};
-Circle(16) = {11,13,10};
-Circle(17) = {10,13,9};
-Circle(18) = {9,13,8};
-Circle(19) = {8,13,6};
-Circle(20) = {4,13,5};
-Line(21) = {11,12};
-Circle(22) = {17,13,14};
-Circle(23) = {16,13,17};
-Circle(24) = {15,13,16};
-Circle(25) = {12,13,15};
-
-Line Loop(26) = {-5,1,2,3,20,4,10};
-Plane Surface(27) = {26};
-
-Line Loop(28) = {-6,-10,-19,-18,-17,-16,21,25,24,23,22};
-Plane Surface(29) = {28};
-
-Line Loop(30) = {11,12,25,24,23,22};
-Plane Surface(31) = {30};
-
-Extrude Surface{27, {0,0,hg} };
-Coherence;
-
-Extrude Surface{29, {0,0,hg} };
-Coherence;
-
-Extrude Surface{31, {0,0,hg} };
-Coherence;
-
-Extrude Surface {105, {0,0,hcav-hg} };
-Coherence;
-
-Extrude Surface {126, {0,0,hcav-hg} };
-Coherence;
-
-//Characteristic Length {58,71} = 0.01; 
diff --git a/benchmarks/bugs/piece-bad.geo b/benchmarks/bugs/piece-bad.geo
deleted file mode 100644
index 7936bd763fb4aa54486f5f12425aded798833720..0000000000000000000000000000000000000000
--- a/benchmarks/bugs/piece-bad.geo
+++ /dev/null
@@ -1,91 +0,0 @@
-/* 
-   Gmsh demo file (C) 2000 C. Geuzaine, J.-F. Remacle
-*/
-
-r1 = .1;
-l1 = 1.;
-l2 = .8;
-l3 = .1;
-r2 = 1.1;
-lc = .05;
-lc2 = .05;
-rint = .2;
-rext = .3;
-
-Point(1) = {0.0,0.0,0.0,lc};
-Point(2) = {l1,0.0,0.0,lc2};
-Point(3) = {l1-r1,0.0,0.0,lc2};
-Point(4) = {l1,r1,0.0,lc2};
-Point(5) = {l1,-r1,0.0,lc2};
-Point(6) = {l1+l2,r1,0.0,lc};
-Point(7) = {l1+l2,-r1,0.0,lc};
-Point(8) = {l1+l2,-r1-l3,0.0,lc};
-Point(9) = {l1+l2,r1+l3,0.0,lc};
-
-Line(1) = {4,6};
-Line(2) = {6,9};
-Line(3) = {7,8};
-Line(4) = {5,7};
-Circle(5) = {4,2,3};
-Circle(6) = {3,2,5};
-
-r = 2*3.14159/5;
-Point(10) = { (l1 + r2) * Cos(r/2) , (l1 + r2) * Sin(r/2), 0.0, lc};
-
-// Remember, all rotations are specified by the axis direction
-// ({0,0,1}), an axis point ({0,0,0}) and a rotation angle (r)
-
-i = 0 ;
-
-For(1:4)
-
-  i+=1 ; 
-
-  Rotate {{0.0,0.0,1.0},{0.0,0.0,0.0}, i*r} {
-    Duplicata {
-      Line{1}; Line{2}; Line{3}; 
-      Line{4}; Line{5}; Line{6}; 
-      Point{10};
-    }
-  }
-
-EndFor
-
-Point(newp) = {rint,0,0,lc};
-Point(newp) = {rext,0,0,lc};
-Point(newp) = {-rint,0,0,lc};
-Point(newp) = {-rext,0,0,lc};
-Point(newp) = {0,rint,0,lc};
-Point(newp) = {0,rext,0,lc};
-Point(newp) = {0,-rint,0,lc};
-Point(newp) = {0,-rext,0,lc};
-
-Circle(31) = {8,118,97};
-Circle(32) = {20,10,9};
-Circle(33) = {47,37,16};
-Circle(34) = {74,64,43};
-Circle(35) = {101,91,70};
-Circle(36) = {119,1,123};
-Circle(37) = {123,1,121};
-Circle(38) = {121,1,125};
-Circle(39) = {125,1,119};
-Circle(40) = {124,1,122};
-Circle(41) = {122,1,126};
-Circle(42) = {126,1,120};
-Circle(43) = {120,1,124};
-
-Line Loop(44) = {37,38,39,36};
-Line Loop(46) = {40,41,42,43};
-Plane Surface(47) = {46,44};
-
-Line Loop(48) = {-2,-1,5,6,4,3,31,-26,-25,29,30,28,27,35,-20,-19,
-  23,24,22,21,34,-14,-13,17,18,16,15,33,-8,-7,11,12,10,9,32};
-Plane Surface(49) = {48,46};
-
-Extrude Surface {47, {0,0,0.2}};
-Extrude Surface {49, {0,0,0.2}};
-Extrude Surface {91, {0,0,0.2}};
-Extrude Surface {47, {0,0,-0.2}};
-
-Physical Volume(1) = {1,2,3,4};
-Physical Surface(2) = {1:1000};
diff --git a/benchmarks/bugs/snake_ellipse_bug_optimize.geo b/benchmarks/bugs/snake_ellipse_bug_optimize.geo
new file mode 100644
index 0000000000000000000000000000000000000000..543a70c79792cbc57923e671c4afe78d859d3c1b
--- /dev/null
+++ b/benchmarks/bugs/snake_ellipse_bug_optimize.geo
@@ -0,0 +1,732 @@
+// CRASHES in OPTIMIZE NETGEN
+
+Point(    1 ) = {-0.30000000E+01,  0.00000000E+00,  0.87422780E-08,  0.69999999E+00 };
+Point(    2 ) = {-0.30000000E+01,  0.00000000E+00,  0.10000000E+01,  0.69999999E+00 };
+Point(    3 ) = {-0.30000000E+01, -0.20000000E+01,  0.87422780E-08,  0.69999999E+00 };
+Point(    4 ) = {-0.30000000E+01,  0.00000000E+00, -0.10000000E+01,  0.69999999E+00 };
+Point(    5 ) = {-0.30000000E+01,  0.20000000E+01,  0.87422780E-08,  0.69999999E+00 };
+Point(    6 ) = {-0.27000000E+01,  0.00000000E+00, -0.30901680E-01,  0.69999999E+00 };
+Point(    7 ) = {-0.27000000E+01,  0.00000000E+00,  0.96909833E+00,  0.69999999E+00 };
+Point(    8 ) = {-0.27000000E+01, -0.20000000E+01, -0.30901680E-01,  0.69999999E+00 };
+Point(    9 ) = {-0.27000000E+01,  0.00000000E+00, -0.10309017E+01,  0.69999999E+00 };
+Point(   10 ) = {-0.27000000E+01,  0.20000000E+01, -0.30901680E-01,  0.69999999E+00 };
+Point(   11 ) = {-0.24000001E+01,  0.00000000E+00, -0.58778521E-01,  0.69999999E+00 };
+Point(   12 ) = {-0.24000001E+01,  0.00000000E+00,  0.94122148E+00,  0.69999999E+00 };
+Point(   13 ) = {-0.24000001E+01, -0.20000000E+01, -0.58778521E-01,  0.69999999E+00 };
+Point(   14 ) = {-0.24000001E+01,  0.00000000E+00, -0.10587785E+01,  0.69999999E+00 };
+Point(   15 ) = {-0.24000001E+01,  0.20000000E+01, -0.58778521E-01,  0.69999999E+00 };
+Point(   16 ) = {-0.20999999E+01,  0.00000000E+00, -0.80901705E-01,  0.69999999E+00 };
+Point(   17 ) = {-0.20999999E+01,  0.00000000E+00,  0.91909832E+00,  0.69999999E+00 };
+Point(   18 ) = {-0.20999999E+01, -0.20000000E+01, -0.80901705E-01,  0.69999999E+00 };
+Point(   19 ) = {-0.20999999E+01,  0.00000000E+00, -0.10809017E+01,  0.69999999E+00 };
+Point(   20 ) = {-0.20999999E+01,  0.20000000E+01, -0.80901705E-01,  0.69999999E+00 };
+Point(   21 ) = {-0.18000000E+01,  0.00000000E+00, -0.95105648E-01,  0.69999999E+00 };
+Point(   22 ) = {-0.18000000E+01,  0.00000000E+00,  0.90489435E+00,  0.69999999E+00 };
+Point(   23 ) = {-0.18000000E+01, -0.20000000E+01, -0.95105648E-01,  0.69999999E+00 };
+Point(   24 ) = {-0.18000000E+01,  0.00000000E+00, -0.10951056E+01,  0.69999999E+00 };
+Point(   25 ) = {-0.18000000E+01,  0.20000000E+01, -0.95105648E-01,  0.69999999E+00 };
+Point(   26 ) = {-0.15000000E+01,  0.00000000E+00, -0.10000000E+00,  0.69999999E+00 };
+Point(   27 ) = {-0.15000000E+01,  0.00000000E+00,  0.89999998E+00,  0.69999999E+00 };
+Point(   28 ) = {-0.15000000E+01, -0.20000000E+01, -0.10000000E+00,  0.69999999E+00 };
+Point(   29 ) = {-0.15000000E+01,  0.00000000E+00, -0.11000000E+01,  0.69999999E+00 };
+Point(   30 ) = {-0.15000000E+01,  0.20000000E+01, -0.10000000E+00,  0.69999999E+00 };
+Point(   31 ) = {-0.11999999E+01,  0.00000000E+00, -0.95105648E-01,  0.69999999E+00 };
+Point(   32 ) = {-0.11999999E+01,  0.00000000E+00,  0.90489435E+00,  0.69999999E+00 };
+Point(   33 ) = {-0.11999999E+01, -0.20000000E+01, -0.95105648E-01,  0.69999999E+00 };
+Point(   34 ) = {-0.11999999E+01,  0.00000000E+00, -0.10951056E+01,  0.69999999E+00 };
+Point(   35 ) = {-0.11999999E+01,  0.20000000E+01, -0.95105648E-01,  0.69999999E+00 };
+Point(   36 ) = {-0.89999986E+00,  0.00000000E+00, -0.80901690E-01,  0.69999999E+00 };
+Point(   37 ) = {-0.89999986E+00,  0.00000000E+00,  0.91909832E+00,  0.69999999E+00 };
+Point(   38 ) = {-0.89999986E+00, -0.20000000E+01, -0.80901690E-01,  0.69999999E+00 };
+Point(   39 ) = {-0.89999986E+00,  0.00000000E+00, -0.10809017E+01,  0.69999999E+00 };
+Point(   40 ) = {-0.89999986E+00,  0.20000000E+01, -0.80901690E-01,  0.69999999E+00 };
+Point(   41 ) = {-0.59999990E+00,  0.00000000E+00, -0.58778521E-01,  0.69999999E+00 };
+Point(   42 ) = {-0.59999990E+00,  0.00000000E+00,  0.94122148E+00,  0.69999999E+00 };
+Point(   43 ) = {-0.59999990E+00, -0.20000000E+01, -0.58778521E-01,  0.69999999E+00 };
+Point(   44 ) = {-0.59999990E+00,  0.00000000E+00, -0.10587785E+01,  0.69999999E+00 };
+Point(   45 ) = {-0.59999990E+00,  0.20000000E+01, -0.58778521E-01,  0.69999999E+00 };
+Point(   46 ) = {-0.29999995E+00,  0.00000000E+00, -0.30901695E-01,  0.69999999E+00 };
+Point(   47 ) = {-0.29999995E+00,  0.00000000E+00,  0.96909833E+00,  0.69999999E+00 };
+Point(   48 ) = {-0.29999995E+00, -0.20000000E+01, -0.30901695E-01,  0.69999999E+00 };
+Point(   49 ) = {-0.29999995E+00,  0.00000000E+00, -0.10309017E+01,  0.69999999E+00 };
+Point(   50 ) = {-0.29999995E+00,  0.20000000E+01, -0.30901695E-01,  0.69999999E+00 };
+Point(   51 ) = { 0.00000000E+00,  0.00000000E+00,  0.00000000E+00,  0.69999999E+00 };
+Point(   52 ) = { 0.00000000E+00,  0.00000000E+00,  0.10000000E+01,  0.69999999E+00 };
+Point(   53 ) = { 0.00000000E+00, -0.20000000E+01,  0.00000000E+00,  0.69999999E+00 };
+Point(   54 ) = { 0.00000000E+00,  0.00000000E+00, -0.10000000E+01,  0.69999999E+00 };
+Point(   55 ) = { 0.00000000E+00,  0.20000000E+01,  0.00000000E+00,  0.69999999E+00 };
+Point(   56 ) = { 0.30000019E+00,  0.00000000E+00,  0.30901721E-01,  0.69999999E+00 };
+Point(   57 ) = { 0.30000019E+00,  0.00000000E+00,  0.10309017E+01,  0.69999999E+00 };
+Point(   58 ) = { 0.30000019E+00, -0.20000000E+01,  0.30901721E-01,  0.69999999E+00 };
+Point(   59 ) = { 0.30000019E+00,  0.00000000E+00, -0.96909827E+00,  0.69999999E+00 };
+Point(   60 ) = { 0.30000019E+00,  0.20000000E+01,  0.30901721E-01,  0.69999999E+00 };
+Point(   61 ) = { 0.60000014E+00,  0.00000000E+00,  0.58778543E-01,  0.69999999E+00 };
+Point(   62 ) = { 0.60000014E+00,  0.00000000E+00,  0.10587785E+01,  0.69999999E+00 };
+Point(   63 ) = { 0.60000014E+00, -0.20000000E+01,  0.58778543E-01,  0.69999999E+00 };
+Point(   64 ) = { 0.60000014E+00,  0.00000000E+00, -0.94122148E+00,  0.69999999E+00 };
+Point(   65 ) = { 0.60000014E+00,  0.20000000E+01,  0.58778543E-01,  0.69999999E+00 };
+Point(   66 ) = { 0.90000010E+00,  0.00000000E+00,  0.80901705E-01,  0.69999999E+00 };
+Point(   67 ) = { 0.90000010E+00,  0.00000000E+00,  0.10809017E+01,  0.69999999E+00 };
+Point(   68 ) = { 0.90000010E+00, -0.20000000E+01,  0.80901705E-01,  0.69999999E+00 };
+Point(   69 ) = { 0.90000010E+00,  0.00000000E+00, -0.91909832E+00,  0.69999999E+00 };
+Point(   70 ) = { 0.90000010E+00,  0.20000000E+01,  0.80901705E-01,  0.69999999E+00 };
+Point(   71 ) = { 0.12000003E+01,  0.00000000E+00,  0.95105670E-01,  0.69999999E+00 };
+Point(   72 ) = { 0.12000003E+01,  0.00000000E+00,  0.10951056E+01,  0.69999999E+00 };
+Point(   73 ) = { 0.12000003E+01, -0.20000000E+01,  0.95105670E-01,  0.69999999E+00 };
+Point(   74 ) = { 0.12000003E+01,  0.00000000E+00, -0.90489435E+00,  0.69999999E+00 };
+Point(   75 ) = { 0.12000003E+01,  0.20000000E+01,  0.95105670E-01,  0.69999999E+00 };
+Point(   76 ) = { 0.15000000E+01,  0.00000000E+00,  0.10000000E+00,  0.69999999E+00 };
+Point(   77 ) = { 0.15000000E+01,  0.00000000E+00,  0.11000000E+01,  0.69999999E+00 };
+Point(   78 ) = { 0.15000000E+01, -0.20000000E+01,  0.10000000E+00,  0.69999999E+00 };
+Point(   79 ) = { 0.15000000E+01,  0.00000000E+00, -0.89999998E+00,  0.69999999E+00 };
+Point(   80 ) = { 0.15000000E+01,  0.20000000E+01,  0.10000000E+00,  0.69999999E+00 };
+Point(   81 ) = { 0.18000002E+01,  0.00000000E+00,  0.95105641E-01,  0.69999999E+00 };
+Point(   82 ) = { 0.18000002E+01,  0.00000000E+00,  0.10951056E+01,  0.69999999E+00 };
+Point(   83 ) = { 0.18000002E+01, -0.20000000E+01,  0.95105641E-01,  0.69999999E+00 };
+Point(   84 ) = { 0.18000002E+01,  0.00000000E+00, -0.90489435E+00,  0.69999999E+00 };
+Point(   85 ) = { 0.18000002E+01,  0.20000000E+01,  0.95105641E-01,  0.69999999E+00 };
+Point(   86 ) = { 0.21000004E+01,  0.00000000E+00,  0.80901675E-01,  0.69999999E+00 };
+Point(   87 ) = { 0.21000004E+01,  0.00000000E+00,  0.10809016E+01,  0.69999999E+00 };
+Point(   88 ) = { 0.21000004E+01, -0.20000000E+01,  0.80901675E-01,  0.69999999E+00 };
+Point(   89 ) = { 0.21000004E+01,  0.00000000E+00, -0.91909832E+00,  0.69999999E+00 };
+Point(   90 ) = { 0.21000004E+01,  0.20000000E+01,  0.80901675E-01,  0.69999999E+00 };
+Point(   91 ) = { 0.24000001E+01,  0.00000000E+00,  0.58778521E-01,  0.69999999E+00 };
+Point(   92 ) = { 0.24000001E+01,  0.00000000E+00,  0.10587785E+01,  0.69999999E+00 };
+Point(   93 ) = { 0.24000001E+01, -0.20000000E+01,  0.58778521E-01,  0.69999999E+00 };
+Point(   94 ) = { 0.24000001E+01,  0.00000000E+00, -0.94122148E+00,  0.69999999E+00 };
+Point(   95 ) = { 0.24000001E+01,  0.20000000E+01,  0.58778521E-01,  0.69999999E+00 };
+Point(   96 ) = { 0.27000003E+01,  0.00000000E+00,  0.30901659E-01,  0.69999999E+00 };
+Point(   97 ) = { 0.27000003E+01,  0.00000000E+00,  0.10309017E+01,  0.69999999E+00 };
+Point(   98 ) = { 0.27000003E+01, -0.20000000E+01,  0.30901659E-01,  0.69999999E+00 };
+Point(   99 ) = { 0.27000003E+01,  0.00000000E+00, -0.96909833E+00,  0.69999999E+00 };
+Point(  100 ) = { 0.27000003E+01,  0.20000000E+01,  0.30901659E-01,  0.69999999E+00 };
+Point(  101 ) = { 0.30000000E+01,  0.00000000E+00, -0.87422780E-08,  0.69999999E+00 };
+Point(  102 ) = { 0.30000000E+01,  0.00000000E+00,  0.10000000E+01,  0.69999999E+00 };
+Point(  103 ) = { 0.30000000E+01, -0.20000000E+01, -0.87422780E-08,  0.69999999E+00 };
+Point(  104 ) = { 0.30000000E+01,  0.00000000E+00, -0.10000000E+01,  0.69999999E+00 };
+Point(  105 ) = { 0.30000000E+01,  0.20000000E+01, -0.87422780E-08,  0.69999999E+00 };
+Ellipse(    1 ) = {     2,      1,      3,      3 };
+Ellipse(    2 ) = {     3,      1,      3,      4 };
+Ellipse(    3 ) = {     4,      1,      3,      5 };
+Ellipse(    4 ) = {     5,      1,      3,      2 };
+Ellipse(    6 ) = {     7,      1,      7,      3 };
+Ellipse(    7 ) = {     8,      1,      8,      4 };
+Ellipse(    8 ) = {     9,      1,      9,      5 };
+Ellipse(    9 ) = {    10,      1,     10,      2 };
+Line(   10 ) = {     2,      7 };
+Line(   11 ) = {     3,      8 };
+Line(   12 ) = {     4,      9 };
+Line(   13 ) = {     5,     10 };
+Ellipse(   14 ) = {     7,      6,      8,      8 };
+Ellipse(   15 ) = {     8,      6,      8,      9 };
+Ellipse(   16 ) = {     9,      6,      8,     10 };
+Ellipse(   17 ) = {    10,      6,      8,      7 };
+Ellipse(   26 ) = {    12,      6,     12,      8 };
+Ellipse(   27 ) = {    13,      6,     13,      9 };
+Ellipse(   28 ) = {    14,      6,     14,     10 };
+Ellipse(   29 ) = {    15,      6,     15,      7 };
+Line(   30 ) = {     7,     12 };
+Line(   31 ) = {     8,     13 };
+Line(   32 ) = {     9,     14 };
+Line(   33 ) = {    10,     15 };
+Ellipse(   34 ) = {    12,     11,     13,     13 };
+Ellipse(   35 ) = {    13,     11,     13,     14 };
+Ellipse(   36 ) = {    14,     11,     13,     15 };
+Ellipse(   37 ) = {    15,     11,     13,     12 };
+Ellipse(   46 ) = {    17,     11,     17,     13 };
+Ellipse(   47 ) = {    18,     11,     18,     14 };
+Ellipse(   48 ) = {    19,     11,     19,     15 };
+Ellipse(   49 ) = {    20,     11,     20,     12 };
+Line(   50 ) = {    12,     17 };
+Line(   51 ) = {    13,     18 };
+Line(   52 ) = {    14,     19 };
+Line(   53 ) = {    15,     20 };
+Ellipse(   54 ) = {    17,     16,     18,     18 };
+Ellipse(   55 ) = {    18,     16,     18,     19 };
+Ellipse(   56 ) = {    19,     16,     18,     20 };
+Ellipse(   57 ) = {    20,     16,     18,     17 };
+Ellipse(   66 ) = {    22,     16,     22,     18 };
+Ellipse(   67 ) = {    23,     16,     23,     19 };
+Ellipse(   68 ) = {    24,     16,     24,     20 };
+Ellipse(   69 ) = {    25,     16,     25,     17 };
+Line(   70 ) = {    17,     22 };
+Line(   71 ) = {    18,     23 };
+Line(   72 ) = {    19,     24 };
+Line(   73 ) = {    20,     25 };
+Ellipse(   74 ) = {    22,     21,     23,     23 };
+Ellipse(   75 ) = {    23,     21,     23,     24 };
+Ellipse(   76 ) = {    24,     21,     23,     25 };
+Ellipse(   77 ) = {    25,     21,     23,     22 };
+Ellipse(   86 ) = {    27,     21,     27,     23 };
+Ellipse(   87 ) = {    28,     21,     28,     24 };
+Ellipse(   88 ) = {    29,     21,     29,     25 };
+Ellipse(   89 ) = {    30,     21,     30,     22 };
+Line(   90 ) = {    22,     27 };
+Line(   91 ) = {    23,     28 };
+Line(   92 ) = {    24,     29 };
+Line(   93 ) = {    25,     30 };
+Ellipse(   94 ) = {    27,     26,     28,     28 };
+Ellipse(   95 ) = {    28,     26,     28,     29 };
+Ellipse(   96 ) = {    29,     26,     28,     30 };
+Ellipse(   97 ) = {    30,     26,     28,     27 };
+Ellipse(  106 ) = {    32,     26,     32,     28 };
+Ellipse(  107 ) = {    33,     26,     33,     29 };
+Ellipse(  108 ) = {    34,     26,     34,     30 };
+Ellipse(  109 ) = {    35,     26,     35,     27 };
+Line(  110 ) = {    27,     32 };
+Line(  111 ) = {    28,     33 };
+Line(  112 ) = {    29,     34 };
+Line(  113 ) = {    30,     35 };
+Ellipse(  114 ) = {    32,     31,     33,     33 };
+Ellipse(  115 ) = {    33,     31,     33,     34 };
+Ellipse(  116 ) = {    34,     31,     33,     35 };
+Ellipse(  117 ) = {    35,     31,     33,     32 };
+Ellipse(  126 ) = {    37,     31,     37,     33 };
+Ellipse(  127 ) = {    38,     31,     38,     34 };
+Ellipse(  128 ) = {    39,     31,     39,     35 };
+Ellipse(  129 ) = {    40,     31,     40,     32 };
+Line(  130 ) = {    32,     37 };
+Line(  131 ) = {    33,     38 };
+Line(  132 ) = {    34,     39 };
+Line(  133 ) = {    35,     40 };
+Ellipse(  134 ) = {    37,     36,     38,     38 };
+Ellipse(  135 ) = {    38,     36,     38,     39 };
+Ellipse(  136 ) = {    39,     36,     38,     40 };
+Ellipse(  137 ) = {    40,     36,     38,     37 };
+Ellipse(  146 ) = {    42,     36,     42,     38 };
+Ellipse(  147 ) = {    43,     36,     43,     39 };
+Ellipse(  148 ) = {    44,     36,     44,     40 };
+Ellipse(  149 ) = {    45,     36,     45,     37 };
+Line(  150 ) = {    37,     42 };
+Line(  151 ) = {    38,     43 };
+Line(  152 ) = {    39,     44 };
+Line(  153 ) = {    40,     45 };
+Ellipse(  154 ) = {    42,     41,     43,     43 };
+Ellipse(  155 ) = {    43,     41,     43,     44 };
+Ellipse(  156 ) = {    44,     41,     43,     45 };
+Ellipse(  157 ) = {    45,     41,     43,     42 };
+Ellipse(  166 ) = {    47,     41,     47,     43 };
+Ellipse(  167 ) = {    48,     41,     48,     44 };
+Ellipse(  168 ) = {    49,     41,     49,     45 };
+Ellipse(  169 ) = {    50,     41,     50,     42 };
+Line(  170 ) = {    42,     47 };
+Line(  171 ) = {    43,     48 };
+Line(  172 ) = {    44,     49 };
+Line(  173 ) = {    45,     50 };
+Ellipse(  174 ) = {    47,     46,     48,     48 };
+Ellipse(  175 ) = {    48,     46,     48,     49 };
+Ellipse(  176 ) = {    49,     46,     48,     50 };
+Ellipse(  177 ) = {    50,     46,     48,     47 };
+Ellipse(  186 ) = {    52,     46,     52,     48 };
+Ellipse(  187 ) = {    53,     46,     53,     49 };
+Ellipse(  188 ) = {    54,     46,     54,     50 };
+Ellipse(  189 ) = {    55,     46,     55,     47 };
+Line(  190 ) = {    47,     52 };
+Line(  191 ) = {    48,     53 };
+Line(  192 ) = {    49,     54 };
+Line(  193 ) = {    50,     55 };
+Ellipse(  194 ) = {    52,     51,     53,     53 };
+Ellipse(  195 ) = {    53,     51,     53,     54 };
+Ellipse(  196 ) = {    54,     51,     53,     55 };
+Ellipse(  197 ) = {    55,     51,     53,     52 };
+Ellipse(  206 ) = {    57,     51,     57,     53 };
+Ellipse(  207 ) = {    58,     51,     58,     54 };
+Ellipse(  208 ) = {    59,     51,     59,     55 };
+Ellipse(  209 ) = {    60,     51,     60,     52 };
+Line(  210 ) = {    52,     57 };
+Line(  211 ) = {    53,     58 };
+Line(  212 ) = {    54,     59 };
+Line(  213 ) = {    55,     60 };
+Ellipse(  214 ) = {    57,     56,     58,     58 };
+Ellipse(  215 ) = {    58,     56,     58,     59 };
+Ellipse(  216 ) = {    59,     56,     58,     60 };
+Ellipse(  217 ) = {    60,     56,     58,     57 };
+Ellipse(  226 ) = {    62,     56,     62,     58 };
+Ellipse(  227 ) = {    63,     56,     63,     59 };
+Ellipse(  228 ) = {    64,     56,     64,     60 };
+Ellipse(  229 ) = {    65,     56,     65,     57 };
+Line(  230 ) = {    57,     62 };
+Line(  231 ) = {    58,     63 };
+Line(  232 ) = {    59,     64 };
+Line(  233 ) = {    60,     65 };
+Ellipse(  234 ) = {    62,     61,     63,     63 };
+Ellipse(  235 ) = {    63,     61,     63,     64 };
+Ellipse(  236 ) = {    64,     61,     63,     65 };
+Ellipse(  237 ) = {    65,     61,     63,     62 };
+Ellipse(  246 ) = {    67,     61,     67,     63 };
+Ellipse(  247 ) = {    68,     61,     68,     64 };
+Ellipse(  248 ) = {    69,     61,     69,     65 };
+Ellipse(  249 ) = {    70,     61,     70,     62 };
+Line(  250 ) = {    62,     67 };
+Line(  251 ) = {    63,     68 };
+Line(  252 ) = {    64,     69 };
+Line(  253 ) = {    65,     70 };
+Ellipse(  254 ) = {    67,     66,     68,     68 };
+Ellipse(  255 ) = {    68,     66,     68,     69 };
+Ellipse(  256 ) = {    69,     66,     68,     70 };
+Ellipse(  257 ) = {    70,     66,     68,     67 };
+Ellipse(  266 ) = {    72,     66,     72,     68 };
+Ellipse(  267 ) = {    73,     66,     73,     69 };
+Ellipse(  268 ) = {    74,     66,     74,     70 };
+Ellipse(  269 ) = {    75,     66,     75,     67 };
+Line(  270 ) = {    67,     72 };
+Line(  271 ) = {    68,     73 };
+Line(  272 ) = {    69,     74 };
+Line(  273 ) = {    70,     75 };
+Ellipse(  274 ) = {    72,     71,     73,     73 };
+Ellipse(  275 ) = {    73,     71,     73,     74 };
+Ellipse(  276 ) = {    74,     71,     73,     75 };
+Ellipse(  277 ) = {    75,     71,     73,     72 };
+Ellipse(  286 ) = {    77,     71,     77,     73 };
+Ellipse(  287 ) = {    78,     71,     78,     74 };
+Ellipse(  288 ) = {    79,     71,     79,     75 };
+Ellipse(  289 ) = {    80,     71,     80,     72 };
+Line(  290 ) = {    72,     77 };
+Line(  291 ) = {    73,     78 };
+Line(  292 ) = {    74,     79 };
+Line(  293 ) = {    75,     80 };
+Ellipse(  294 ) = {    77,     76,     78,     78 };
+Ellipse(  295 ) = {    78,     76,     78,     79 };
+Ellipse(  296 ) = {    79,     76,     78,     80 };
+Ellipse(  297 ) = {    80,     76,     78,     77 };
+Ellipse(  306 ) = {    82,     76,     82,     78 };
+Ellipse(  307 ) = {    83,     76,     83,     79 };
+Ellipse(  308 ) = {    84,     76,     84,     80 };
+Ellipse(  309 ) = {    85,     76,     85,     77 };
+Line(  310 ) = {    77,     82 };
+Line(  311 ) = {    78,     83 };
+Line(  312 ) = {    79,     84 };
+Line(  313 ) = {    80,     85 };
+Ellipse(  314 ) = {    82,     81,     83,     83 };
+Ellipse(  315 ) = {    83,     81,     83,     84 };
+Ellipse(  316 ) = {    84,     81,     83,     85 };
+Ellipse(  317 ) = {    85,     81,     83,     82 };
+Ellipse(  326 ) = {    87,     81,     87,     83 };
+Ellipse(  327 ) = {    88,     81,     88,     84 };
+Ellipse(  328 ) = {    89,     81,     89,     85 };
+Ellipse(  329 ) = {    90,     81,     90,     82 };
+Line(  330 ) = {    82,     87 };
+Line(  331 ) = {    83,     88 };
+Line(  332 ) = {    84,     89 };
+Line(  333 ) = {    85,     90 };
+Ellipse(  334 ) = {    87,     86,     88,     88 };
+Ellipse(  335 ) = {    88,     86,     88,     89 };
+Ellipse(  336 ) = {    89,     86,     88,     90 };
+Ellipse(  337 ) = {    90,     86,     88,     87 };
+Ellipse(  346 ) = {    92,     86,     92,     88 };
+Ellipse(  347 ) = {    93,     86,     93,     89 };
+Ellipse(  348 ) = {    94,     86,     94,     90 };
+Ellipse(  349 ) = {    95,     86,     95,     87 };
+Line(  350 ) = {    87,     92 };
+Line(  351 ) = {    88,     93 };
+Line(  352 ) = {    89,     94 };
+Line(  353 ) = {    90,     95 };
+Ellipse(  354 ) = {    92,     91,     93,     93 };
+Ellipse(  355 ) = {    93,     91,     93,     94 };
+Ellipse(  356 ) = {    94,     91,     93,     95 };
+Ellipse(  357 ) = {    95,     91,     93,     92 };
+Ellipse(  366 ) = {    97,     91,     97,     93 };
+Ellipse(  367 ) = {    98,     91,     98,     94 };
+Ellipse(  368 ) = {    99,     91,     99,     95 };
+Ellipse(  369 ) = {   100,     91,    100,     92 };
+Line(  370 ) = {    92,     97 };
+Line(  371 ) = {    93,     98 };
+Line(  372 ) = {    94,     99 };
+Line(  373 ) = {    95,    100 };
+Ellipse(  374 ) = {    97,     96,     98,     98 };
+Ellipse(  375 ) = {    98,     96,     98,     99 };
+Ellipse(  376 ) = {    99,     96,     98,    100 };
+Ellipse(  377 ) = {   100,     96,     98,     97 };
+Ellipse(  386 ) = {   102,     96,    102,     98 };
+Ellipse(  387 ) = {   103,     96,    103,     99 };
+Ellipse(  388 ) = {   104,     96,    104,    100 };
+Ellipse(  389 ) = {   105,     96,    105,     97 };
+Line(  390 ) = {    97,    102 };
+Line(  391 ) = {    98,    103 };
+Line(  392 ) = {    99,    104 };
+Line(  393 ) = {   100,    105 };
+Ellipse(  394 ) = {   102,    101,    103,    103 };
+Ellipse(  395 ) = {   103,    101,    103,    104 };
+Ellipse(  396 ) = {   104,    101,    103,    105 };
+Ellipse(  397 ) = {   105,    101,    103,    102 };
+Line Loop(   18 ) = {     6,     11,    -14 };
+Ruled Surface(    2 ) = {    18 };
+Line Loop(   19 ) = {     1,     -6,    -10 };
+Ruled Surface(    3 ) = {    19 };
+Line Loop(   20 ) = {     7,     12,    -15 };
+Ruled Surface(    4 ) = {    20 };
+Line Loop(   21 ) = {     2,     -7,    -11 };
+Ruled Surface(    5 ) = {    21 };
+Line Loop(   22 ) = {     8,     13,    -16 };
+Ruled Surface(    6 ) = {    22 };
+Line Loop(   23 ) = {     3,     -8,    -12 };
+Ruled Surface(    7 ) = {    23 };
+Line Loop(   24 ) = {     9,     10,    -17 };
+Ruled Surface(    8 ) = {    24 };
+Line Loop(   25 ) = {     4,     -9,    -13 };
+Ruled Surface(    9 ) = {    25 };
+Line Loop(   38 ) = {    26,     31,    -34 };
+Ruled Surface(   10 ) = {    38 };
+Line Loop(   39 ) = {    14,    -26,    -30 };
+Ruled Surface(   11 ) = {    39 };
+Line Loop(   40 ) = {    27,     32,    -35 };
+Ruled Surface(   12 ) = {    40 };
+Line Loop(   41 ) = {    15,    -27,    -31 };
+Ruled Surface(   13 ) = {    41 };
+Line Loop(   42 ) = {    28,     33,    -36 };
+Ruled Surface(   14 ) = {    42 };
+Line Loop(   43 ) = {    16,    -28,    -32 };
+Ruled Surface(   15 ) = {    43 };
+Line Loop(   44 ) = {    29,     30,    -37 };
+Ruled Surface(   16 ) = {    44 };
+Line Loop(   45 ) = {    17,    -29,    -33 };
+Ruled Surface(   17 ) = {    45 };
+Line Loop(   58 ) = {    46,     51,    -54 };
+Ruled Surface(   18 ) = {    58 };
+Line Loop(   59 ) = {    34,    -46,    -50 };
+Ruled Surface(   19 ) = {    59 };
+Line Loop(   60 ) = {    47,     52,    -55 };
+Ruled Surface(   20 ) = {    60 };
+Line Loop(   61 ) = {    35,    -47,    -51 };
+Ruled Surface(   21 ) = {    61 };
+Line Loop(   62 ) = {    48,     53,    -56 };
+Ruled Surface(   22 ) = {    62 };
+Line Loop(   63 ) = {    36,    -48,    -52 };
+Ruled Surface(   23 ) = {    63 };
+Line Loop(   64 ) = {    49,     50,    -57 };
+Ruled Surface(   24 ) = {    64 };
+Line Loop(   65 ) = {    37,    -49,    -53 };
+Ruled Surface(   25 ) = {    65 };
+Line Loop(   78 ) = {    66,     71,    -74 };
+Ruled Surface(   26 ) = {    78 };
+Line Loop(   79 ) = {    54,    -66,    -70 };
+Ruled Surface(   27 ) = {    79 };
+Line Loop(   80 ) = {    67,     72,    -75 };
+Ruled Surface(   28 ) = {    80 };
+Line Loop(   81 ) = {    55,    -67,    -71 };
+Ruled Surface(   29 ) = {    81 };
+Line Loop(   82 ) = {    68,     73,    -76 };
+Ruled Surface(   30 ) = {    82 };
+Line Loop(   83 ) = {    56,    -68,    -72 };
+Ruled Surface(   31 ) = {    83 };
+Line Loop(   84 ) = {    69,     70,    -77 };
+Ruled Surface(   32 ) = {    84 };
+Line Loop(   85 ) = {    57,    -69,    -73 };
+Ruled Surface(   33 ) = {    85 };
+Line Loop(   98 ) = {    86,     91,    -94 };
+Ruled Surface(   34 ) = {    98 };
+Line Loop(   99 ) = {    74,    -86,    -90 };
+Ruled Surface(   35 ) = {    99 };
+Line Loop(  100 ) = {    87,     92,    -95 };
+Ruled Surface(   36 ) = {   100 };
+Line Loop(  101 ) = {    75,    -87,    -91 };
+Ruled Surface(   37 ) = {   101 };
+Line Loop(  102 ) = {    88,     93,    -96 };
+Ruled Surface(   38 ) = {   102 };
+Line Loop(  103 ) = {    76,    -88,    -92 };
+Ruled Surface(   39 ) = {   103 };
+Line Loop(  104 ) = {    89,     90,    -97 };
+Ruled Surface(   40 ) = {   104 };
+Line Loop(  105 ) = {    77,    -89,    -93 };
+Ruled Surface(   41 ) = {   105 };
+Line Loop(  118 ) = {   106,    111,   -114 };
+Ruled Surface(   42 ) = {   118 };
+Line Loop(  119 ) = {    94,   -106,   -110 };
+Ruled Surface(   43 ) = {   119 };
+Line Loop(  120 ) = {   107,    112,   -115 };
+Ruled Surface(   44 ) = {   120 };
+Line Loop(  121 ) = {    95,   -107,   -111 };
+Ruled Surface(   45 ) = {   121 };
+Line Loop(  122 ) = {   108,    113,   -116 };
+Ruled Surface(   46 ) = {   122 };
+Line Loop(  123 ) = {    96,   -108,   -112 };
+Ruled Surface(   47 ) = {   123 };
+Line Loop(  124 ) = {   109,    110,   -117 };
+Ruled Surface(   48 ) = {   124 };
+Line Loop(  125 ) = {    97,   -109,   -113 };
+Ruled Surface(   49 ) = {   125 };
+Line Loop(  138 ) = {   126,    131,   -134 };
+Ruled Surface(   50 ) = {   138 };
+Line Loop(  139 ) = {   114,   -126,   -130 };
+Ruled Surface(   51 ) = {   139 };
+Line Loop(  140 ) = {   127,    132,   -135 };
+Ruled Surface(   52 ) = {   140 };
+Line Loop(  141 ) = {   115,   -127,   -131 };
+Ruled Surface(   53 ) = {   141 };
+Line Loop(  142 ) = {   128,    133,   -136 };
+Ruled Surface(   54 ) = {   142 };
+Line Loop(  143 ) = {   116,   -128,   -132 };
+Ruled Surface(   55 ) = {   143 };
+Line Loop(  144 ) = {   129,    130,   -137 };
+Ruled Surface(   56 ) = {   144 };
+Line Loop(  145 ) = {   117,   -129,   -133 };
+Ruled Surface(   57 ) = {   145 };
+Line Loop(  158 ) = {   146,    151,   -154 };
+Ruled Surface(   58 ) = {   158 };
+Line Loop(  159 ) = {   134,   -146,   -150 };
+Ruled Surface(   59 ) = {   159 };
+Line Loop(  160 ) = {   147,    152,   -155 };
+Ruled Surface(   60 ) = {   160 };
+Line Loop(  161 ) = {   135,   -147,   -151 };
+Ruled Surface(   61 ) = {   161 };
+Line Loop(  162 ) = {   148,    153,   -156 };
+Ruled Surface(   62 ) = {   162 };
+Line Loop(  163 ) = {   136,   -148,   -152 };
+Ruled Surface(   63 ) = {   163 };
+Line Loop(  164 ) = {   149,    150,   -157 };
+Ruled Surface(   64 ) = {   164 };
+Line Loop(  165 ) = {   137,   -149,   -153 };
+Ruled Surface(   65 ) = {   165 };
+Line Loop(  178 ) = {   166,    171,   -174 };
+Ruled Surface(   66 ) = {   178 };
+Line Loop(  179 ) = {   154,   -166,   -170 };
+Ruled Surface(   67 ) = {   179 };
+Line Loop(  180 ) = {   167,    172,   -175 };
+Ruled Surface(   68 ) = {   180 };
+Line Loop(  181 ) = {   155,   -167,   -171 };
+Ruled Surface(   69 ) = {   181 };
+Line Loop(  182 ) = {   168,    173,   -176 };
+Ruled Surface(   70 ) = {   182 };
+Line Loop(  183 ) = {   156,   -168,   -172 };
+Ruled Surface(   71 ) = {   183 };
+Line Loop(  184 ) = {   169,    170,   -177 };
+Ruled Surface(   72 ) = {   184 };
+Line Loop(  185 ) = {   157,   -169,   -173 };
+Ruled Surface(   73 ) = {   185 };
+Line Loop(  198 ) = {   186,    191,   -194 };
+Ruled Surface(   74 ) = {   198 };
+Line Loop(  199 ) = {   174,   -186,   -190 };
+Ruled Surface(   75 ) = {   199 };
+Line Loop(  200 ) = {   187,    192,   -195 };
+Ruled Surface(   76 ) = {   200 };
+Line Loop(  201 ) = {   175,   -187,   -191 };
+Ruled Surface(   77 ) = {   201 };
+Line Loop(  202 ) = {   188,    193,   -196 };
+Ruled Surface(   78 ) = {   202 };
+Line Loop(  203 ) = {   176,   -188,   -192 };
+Ruled Surface(   79 ) = {   203 };
+Line Loop(  204 ) = {   189,    190,   -197 };
+Ruled Surface(   80 ) = {   204 };
+Line Loop(  205 ) = {   177,   -189,   -193 };
+Ruled Surface(   81 ) = {   205 };
+Line Loop(  218 ) = {   206,    211,   -214 };
+Ruled Surface(   82 ) = {   218 };
+Line Loop(  219 ) = {   194,   -206,   -210 };
+Ruled Surface(   83 ) = {   219 };
+Line Loop(  220 ) = {   207,    212,   -215 };
+Ruled Surface(   84 ) = {   220 };
+Line Loop(  221 ) = {   195,   -207,   -211 };
+Ruled Surface(   85 ) = {   221 };
+Line Loop(  222 ) = {   208,    213,   -216 };
+Ruled Surface(   86 ) = {   222 };
+Line Loop(  223 ) = {   196,   -208,   -212 };
+Ruled Surface(   87 ) = {   223 };
+Line Loop(  224 ) = {   209,    210,   -217 };
+Ruled Surface(   88 ) = {   224 };
+Line Loop(  225 ) = {   197,   -209,   -213 };
+Ruled Surface(   89 ) = {   225 };
+Line Loop(  238 ) = {   226,    231,   -234 };
+Ruled Surface(   90 ) = {   238 };
+Line Loop(  239 ) = {   214,   -226,   -230 };
+Ruled Surface(   91 ) = {   239 };
+Line Loop(  240 ) = {   227,    232,   -235 };
+Ruled Surface(   92 ) = {   240 };
+Line Loop(  241 ) = {   215,   -227,   -231 };
+Ruled Surface(   93 ) = {   241 };
+Line Loop(  242 ) = {   228,    233,   -236 };
+Ruled Surface(   94 ) = {   242 };
+Line Loop(  243 ) = {   216,   -228,   -232 };
+Ruled Surface(   95 ) = {   243 };
+Line Loop(  244 ) = {   229,    230,   -237 };
+Ruled Surface(   96 ) = {   244 };
+Line Loop(  245 ) = {   217,   -229,   -233 };
+Ruled Surface(   97 ) = {   245 };
+Line Loop(  258 ) = {   246,    251,   -254 };
+Ruled Surface(   98 ) = {   258 };
+Line Loop(  259 ) = {   234,   -246,   -250 };
+Ruled Surface(   99 ) = {   259 };
+Line Loop(  260 ) = {   247,    252,   -255 };
+Ruled Surface(  100 ) = {   260 };
+Line Loop(  261 ) = {   235,   -247,   -251 };
+Ruled Surface(  101 ) = {   261 };
+Line Loop(  262 ) = {   248,    253,   -256 };
+Ruled Surface(  102 ) = {   262 };
+Line Loop(  263 ) = {   236,   -248,   -252 };
+Ruled Surface(  103 ) = {   263 };
+Line Loop(  264 ) = {   249,    250,   -257 };
+Ruled Surface(  104 ) = {   264 };
+Line Loop(  265 ) = {   237,   -249,   -253 };
+Ruled Surface(  105 ) = {   265 };
+Line Loop(  278 ) = {   266,    271,   -274 };
+Ruled Surface(  106 ) = {   278 };
+Line Loop(  279 ) = {   254,   -266,   -270 };
+Ruled Surface(  107 ) = {   279 };
+Line Loop(  280 ) = {   267,    272,   -275 };
+Ruled Surface(  108 ) = {   280 };
+Line Loop(  281 ) = {   255,   -267,   -271 };
+Ruled Surface(  109 ) = {   281 };
+Line Loop(  282 ) = {   268,    273,   -276 };
+Ruled Surface(  110 ) = {   282 };
+Line Loop(  283 ) = {   256,   -268,   -272 };
+Ruled Surface(  111 ) = {   283 };
+Line Loop(  284 ) = {   269,    270,   -277 };
+Ruled Surface(  112 ) = {   284 };
+Line Loop(  285 ) = {   257,   -269,   -273 };
+Ruled Surface(  113 ) = {   285 };
+Line Loop(  298 ) = {   286,    291,   -294 };
+Ruled Surface(  114 ) = {   298 };
+Line Loop(  299 ) = {   274,   -286,   -290 };
+Ruled Surface(  115 ) = {   299 };
+Line Loop(  300 ) = {   287,    292,   -295 };
+Ruled Surface(  116 ) = {   300 };
+Line Loop(  301 ) = {   275,   -287,   -291 };
+Ruled Surface(  117 ) = {   301 };
+Line Loop(  302 ) = {   288,    293,   -296 };
+Ruled Surface(  118 ) = {   302 };
+Line Loop(  303 ) = {   276,   -288,   -292 };
+Ruled Surface(  119 ) = {   303 };
+Line Loop(  304 ) = {   289,    290,   -297 };
+Ruled Surface(  120 ) = {   304 };
+Line Loop(  305 ) = {   277,   -289,   -293 };
+Ruled Surface(  121 ) = {   305 };
+Line Loop(  318 ) = {   306,    311,   -314 };
+Ruled Surface(  122 ) = {   318 };
+Line Loop(  319 ) = {   294,   -306,   -310 };
+Ruled Surface(  123 ) = {   319 };
+Line Loop(  320 ) = {   307,    312,   -315 };
+Ruled Surface(  124 ) = {   320 };
+Line Loop(  321 ) = {   295,   -307,   -311 };
+Ruled Surface(  125 ) = {   321 };
+Line Loop(  322 ) = {   308,    313,   -316 };
+Ruled Surface(  126 ) = {   322 };
+Line Loop(  323 ) = {   296,   -308,   -312 };
+Ruled Surface(  127 ) = {   323 };
+Line Loop(  324 ) = {   309,    310,   -317 };
+Ruled Surface(  128 ) = {   324 };
+Line Loop(  325 ) = {   297,   -309,   -313 };
+Ruled Surface(  129 ) = {   325 };
+Line Loop(  338 ) = {   326,    331,   -334 };
+Ruled Surface(  130 ) = {   338 };
+Line Loop(  339 ) = {   314,   -326,   -330 };
+Ruled Surface(  131 ) = {   339 };
+Line Loop(  340 ) = {   327,    332,   -335 };
+Ruled Surface(  132 ) = {   340 };
+Line Loop(  341 ) = {   315,   -327,   -331 };
+Ruled Surface(  133 ) = {   341 };
+Line Loop(  342 ) = {   328,    333,   -336 };
+Ruled Surface(  134 ) = {   342 };
+Line Loop(  343 ) = {   316,   -328,   -332 };
+Ruled Surface(  135 ) = {   343 };
+Line Loop(  344 ) = {   329,    330,   -337 };
+Ruled Surface(  136 ) = {   344 };
+Line Loop(  345 ) = {   317,   -329,   -333 };
+Ruled Surface(  137 ) = {   345 };
+Line Loop(  358 ) = {   346,    351,   -354 };
+Ruled Surface(  138 ) = {   358 };
+Line Loop(  359 ) = {   334,   -346,   -350 };
+Ruled Surface(  139 ) = {   359 };
+Line Loop(  360 ) = {   347,    352,   -355 };
+Ruled Surface(  140 ) = {   360 };
+Line Loop(  361 ) = {   335,   -347,   -351 };
+Ruled Surface(  141 ) = {   361 };
+Line Loop(  362 ) = {   348,    353,   -356 };
+Ruled Surface(  142 ) = {   362 };
+Line Loop(  363 ) = {   336,   -348,   -352 };
+Ruled Surface(  143 ) = {   363 };
+Line Loop(  364 ) = {   349,    350,   -357 };
+Ruled Surface(  144 ) = {   364 };
+Line Loop(  365 ) = {   337,   -349,   -353 };
+Ruled Surface(  145 ) = {   365 };
+Line Loop(  378 ) = {   366,    371,   -374 };
+Ruled Surface(  146 ) = {   378 };
+Line Loop(  379 ) = {   354,   -366,   -370 };
+Ruled Surface(  147 ) = {   379 };
+Line Loop(  380 ) = {   367,    372,   -375 };
+Ruled Surface(  148 ) = {   380 };
+Line Loop(  381 ) = {   355,   -367,   -371 };
+Ruled Surface(  149 ) = {   381 };
+Line Loop(  382 ) = {   368,    373,   -376 };
+Ruled Surface(  150 ) = {   382 };
+Line Loop(  383 ) = {   356,   -368,   -372 };
+Ruled Surface(  151 ) = {   383 };
+Line Loop(  384 ) = {   369,    370,   -377 };
+Ruled Surface(  152 ) = {   384 };
+Line Loop(  385 ) = {   357,   -369,   -373 };
+Ruled Surface(  153 ) = {   385 };
+Line Loop(  399 ) = {   386,    391,   -394 };
+Ruled Surface(  155 ) = {   399 };
+Line Loop(  400 ) = {   374,   -386,   -390 };
+Ruled Surface(  156 ) = {   400 };
+Line Loop(  401 ) = {   387,    392,   -395 };
+Ruled Surface(  157 ) = {   401 };
+Line Loop(  402 ) = {   375,   -387,   -391 };
+Ruled Surface(  158 ) = {   402 };
+Line Loop(  403 ) = {   388,    393,   -396 };
+Ruled Surface(  159 ) = {   403 };
+Line Loop(  404 ) = {   376,   -388,   -392 };
+Ruled Surface(  160 ) = {   404 };
+Line Loop(  405 ) = {   389,    390,   -397 };
+Ruled Surface(  161 ) = {   405 };
+Line Loop(  406 ) = {   377,   -389,   -393 };
+Ruled Surface(  162 ) = {   406 };
+Line Loop(    5) = {      1,      2,      3,      4 };
+Plane Surface(    1) = {     -5 };
+Line Loop(  398) = {    394,    395,    396,    397 };
+Plane Surface(  154) = {    398 };
+Point(  106 ) = {-0.30000000E+01, -0.30000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  107 ) = {-0.30000000E+01,  0.30000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  108 ) = { 0.30000000E+01,  0.30000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  109 ) = { 0.30000000E+01, -0.30000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  110 ) = {-0.30000000E+01, -0.30000000E+01,  0.30000000E+01,  0.69999999E+00 };
+Point(  111 ) = { 0.30000000E+01, -0.30000000E+01,  0.30000000E+01,  0.69999999E+00 };
+Point(  112 ) = { 0.30000000E+01,  0.30000000E+01,  0.30000000E+01,  0.69999999E+00 };
+Point(  113 ) = {-0.30000000E+01,  0.30000000E+01,  0.30000000E+01,  0.69999999E+00 };
+Point(  114 ) = {-0.25000000E+01, -0.25000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  115 ) = {-0.25000000E+01,  0.25000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  116 ) = { 0.25000000E+01,  0.25000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Point(  117 ) = { 0.25000000E+01, -0.25000000E+01, -0.25000000E+01,  0.69999999E+00 };
+Line(  407 ) = {   106,    107 };
+Line(  408 ) = {   107,    108 };
+Line(  409 ) = {   108,    109 };
+Line(  410 ) = {   109,    106 };
+Line(  411 ) = {   110,    111 };
+Line(  412 ) = {   111,    112 };
+Line(  413 ) = {   112,    113 };
+Line(  414 ) = {   113,    110 };
+Line(  415 ) = {   106,    110 };
+Line(  416 ) = {   107,    113 };
+Line(  417 ) = {   108,    112 };
+Line(  418 ) = {   109,    111 };
+Line(  419 ) = {   114,    115 };
+Line(  420 ) = {   115,    116 };
+Line(  421 ) = {   116,    117 };
+Line(  422 ) = {   117,    114 };
+Line Loop(  423 ) = {   407,    408,    409,    410 };
+Line Loop(  424 ) = {   411,    412,    413,    414 };
+Line Loop(  425 ) = {  -407,    415,   -414,   -416 };
+Line Loop(  426 ) = {  -408,    416,   -413,   -417 };
+Line Loop(  427 ) = {  -409,    417,   -412,   -418 };
+Line Loop(  428 ) = {  -410,    418,   -411,   -415 };
+Line Loop(  429 ) = {   419,    420,    421,    422 };
+Plane Surface(  163 ) = {   423,   -429 };
+Plane Surface(  164 ) = {   424 };
+Plane Surface(  165 ) = {   425,      5 };
+Plane Surface(  167 ) = {   426 };
+Plane Surface(  166 ) = {   427,   -398 };
+Plane Surface(  168 ) = {   428 };
+Plane Surface(  169 ) = {   429 };
+Physical Surface(1)={   163};
+Physical Surface(2)={   164};
+Physical Surface(3)={   165};
+Physical Surface(4)={   167};
+Physical Surface(5)={   166};
+Physical Surface(6)={   168};
+Physical Surface(7)={   169};
+Surface Loop(    0) = {    163,    164,    165,    167,    166,    168,    169 };
+Surface Loop(    1) = {      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     56,     57,     58,     59,     60,     61,     62,     63,     64,     65,     66,     67,     68,     69,     70,     71,     72,     73,     74,     75,     76,     77,     78,     79,     80,     81,     82,     83,     84,     85,     86,     87,     88,     89,     90,     91,     92,     93,     94,     95,     96,     97,     98,     99,    100,    101,    102,    103,    104,    105,    106,    107,    108,    109,    110,    111,    112,    113,    114,    115,    116,    117,    118,    119,    120,    121,    122,    123,    124,    125,    126,    127,    128,    129,    130,    131,    132,    133,    134,    135,    136,    137,    138,    139,    140,    141,    142,    143,    144,    145,    146,    147,    148,    149,    150,    151,    152,    153,    155,    156,    157,    158,    159,    160,    161,    162 };Surface Loop(    2) = {      1,      2,      3,      4,      5,      6,      7,      8,      9,     10,     11,     12,     13,     14,     15,     16,     17,     18,     19,     20,     21,     22,     23,     24,     25,     26,     27,     28,     29,     30,     31,     32,     33,     34,     35,     36,     37,     38,     39,     40,     41,     42,     43,     44,     45,     46,     47,     48,     49,     50,     51,     52,     53,     54,     55,     56,     57,     58,     59,     60,     61,     62,     63,     64,     65,     66,     67,     68,     69,     70,     71,     72,     73,     74,     75,     76,     77,     78,     79,     80,     81,     82,     83,     84,     85,     86,     87,     88,     89,     90,     91,     92,     93,     94,     95,     96,     97,     98,     99,    100,    101,    102,    103,    104,    105,    106,    107,    108,    109,    110,    111,    112,    113,    114,    115,    116,    117,    118,    119,    120,    121,    122,    123,    124,    125,    126,    127,    128,    129,    130,    131,    132,    133,    134,    135,    136,    137,    138,    139,    140,    141,    142,    143,    144,    145,    146,    147,    148,    149,    150,    151,    152,    153,    155,    156,    157,    158,    159,    160,    161,    162,    154 };
+Volume(    3) = {     0,     1 };
+Volume(    4) = {     2 };
+Physical Volume(1) = {     3 };
+Physical Volume(2) = {      4 };
+
+
diff --git a/benchmarks/bugs/xytouv2.geo b/benchmarks/bugs/xytouv2.geo
deleted file mode 100644
index ca94668a4c762e37202ddf912d6ecc1d1114c658..0000000000000000000000000000000000000000
--- a/benchmarks/bugs/xytouv2.geo
+++ /dev/null
@@ -1,27 +0,0 @@
-// A shell
-rc=0.025;
-Point(1) = {5.908, 2.821, 0, rc};
-Point(2) = {5.936, 2.661, 0, rc};
-Point(3) = {5.956, 2.479, 0, rc};
-Point(4) = {5.986, 1.869, 0, rc};
-Point(5) = {5.996, 0.744, 0, rc};
-Point(6) = {5.856, 2.611, 1.175, rc};
-Point(7) = {5.876, 2.439, 1.191, rc};
-Point(8) = {5.915, 1.798, 1.238, rc};
-Point(9) = {5.903, 2.816, 0.291, rc};
-Point(10) = {5.891, 2.801, 0.583, rc};
-Point(11) = {5.869, 2.776, 0.874, rc};
-Point(12) = {5.838, 2.741, 1.166, rc};
-Point(13) = {5.992, 0.744, 0.321, rc};
-Point(14) = {5.979, 0.744, 0.641, rc};
-Point(15) = {5.957, 0.744, 0.962, rc};
-Point(16) = {5.926, 0.744, 1.282, rc};
-
-Spline(1) = {1,2,3,4,5};
-Spline(2) = {5,13,14,15,16};
-Spline(3) = {16,8,7,6,12};
-Spline(4) = {12,11,10,9,1};
-Line Loop(1)={1,2,3,4};
-Ruled Surface(1) = {1};
-
-Physical Surface(1) = {1};